mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	#3274 fix can't get webhook detail of organization
This commit is contained in:
		@@ -174,8 +174,8 @@ func CreateWebhook(w *Webhook) error {
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetWebhookByID returns webhook of repository by given ID.
 | 
			
		||||
func GetWebhookByID(repoID, id int64) (*Webhook, error) {
 | 
			
		||||
// GetWebhookByRepoID returns webhook of repository by given ID.
 | 
			
		||||
func GetWebhookByRepoID(repoID, id int64) (*Webhook, error) {
 | 
			
		||||
	w := new(Webhook)
 | 
			
		||||
	has, err := x.Id(id).And("repo_id=?", repoID).Get(w)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -186,6 +186,18 @@ func GetWebhookByID(repoID, id int64) (*Webhook, error) {
 | 
			
		||||
	return w, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetWebhookByOrgID returns webhook of organization by given ID.
 | 
			
		||||
func GetWebhookByOrgID(orgID, id int64) (*Webhook, error) {
 | 
			
		||||
	w := new(Webhook)
 | 
			
		||||
	has, err := x.Id(id).And("org_id=?", orgID).Get(w)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	} else if !has {
 | 
			
		||||
		return nil, ErrWebhookNotExist{id}
 | 
			
		||||
	}
 | 
			
		||||
	return w, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetActiveWebhooksByRepoID returns all active webhooks of repository.
 | 
			
		||||
func GetActiveWebhooksByRepoID(repoID int64) (ws []*Webhook, err error) {
 | 
			
		||||
	err = x.Where("repo_id=?", repoID).And("is_active=?", true).Find(&ws)
 | 
			
		||||
@@ -221,8 +233,8 @@ func DeleteWebhook(id int64) (err error) {
 | 
			
		||||
	return sess.Commit()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetWebhooksByOrgId returns all webhooks for an organization.
 | 
			
		||||
func GetWebhooksByOrgId(orgID int64) (ws []*Webhook, err error) {
 | 
			
		||||
// GetWebhooksByOrgID returns all webhooks for an organization.
 | 
			
		||||
func GetWebhooksByOrgID(orgID int64) (ws []*Webhook, err error) {
 | 
			
		||||
	err = x.Find(&ws, &Webhook{OrgID: orgID})
 | 
			
		||||
	return ws, err
 | 
			
		||||
}
 | 
			
		||||
@@ -548,7 +560,7 @@ func (t *HookTask) deliver() {
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Update webhook last delivery status.
 | 
			
		||||
		w, err := GetWebhookByID(t.RepoID, t.HookID)
 | 
			
		||||
		w, err := GetWebhookByRepoID(t.RepoID, t.HookID)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			log.Error(5, "GetWebhookByID: %v", err)
 | 
			
		||||
			return
 | 
			
		||||
 
 | 
			
		||||
@@ -98,7 +98,7 @@ func CreateHook(ctx *context.APIContext, form api.CreateHookOption) {
 | 
			
		||||
 | 
			
		||||
// https://github.com/gogits/go-gogs-client/wiki/Repositories#edit-a-hook
 | 
			
		||||
func EditHook(ctx *context.APIContext, form api.EditHookOption) {
 | 
			
		||||
	w, err := models.GetWebhookByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
 | 
			
		||||
	w, err := models.GetWebhookByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if models.IsErrWebhookNotExist(err) {
 | 
			
		||||
			ctx.Status(404)
 | 
			
		||||
 
 | 
			
		||||
@@ -154,7 +154,7 @@ func Webhooks(ctx *context.Context) {
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ws, err := models.GetWebhooksByOrgId(ctx.Org.Organization.Id)
 | 
			
		||||
	ws, err := models.GetWebhooksByOrgID(ctx.Org.Organization.Id)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.Handle(500, "GetWebhooksByOrgId", err)
 | 
			
		||||
		return
 | 
			
		||||
 
 | 
			
		||||
@@ -220,7 +220,12 @@ func checkWebhook(ctx *context.Context) (*OrgRepoCtx, *models.Webhook) {
 | 
			
		||||
	}
 | 
			
		||||
	ctx.Data["BaseLink"] = orCtx.Link
 | 
			
		||||
 | 
			
		||||
	w, err := models.GetWebhookByID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
 | 
			
		||||
	var w *models.Webhook
 | 
			
		||||
	if orCtx.RepoID > 0 {
 | 
			
		||||
		w, err = models.GetWebhookByRepoID(ctx.Repo.Repository.ID, ctx.ParamsInt64(":id"))
 | 
			
		||||
	} else {
 | 
			
		||||
		w, err = models.GetWebhookByOrgID(ctx.Org.Organization.Id, ctx.ParamsInt64(":id"))
 | 
			
		||||
	}
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if models.IsErrWebhookNotExist(err) {
 | 
			
		||||
			ctx.Handle(404, "GetWebhookByID", nil)
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
		<div class="ui secondary menu">
 | 
			
		||||
			{{if .PullRequestCtx.Allowed}}
 | 
			
		||||
				<div class="fitted item">
 | 
			
		||||
					<a href="{{.BaseRepo.RepoLink}}/compare/{{.BaseRepo.DefaultBranch}}...{{.PullRequestCtx.HeadInfo}}">
 | 
			
		||||
					<a href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch}}...{{.PullRequestCtx.HeadInfo}}">
 | 
			
		||||
						<button class="ui green small button"><i class="octicon octicon-git-compare"></i></button>
 | 
			
		||||
					</a>
 | 
			
		||||
				</div>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user