| @@ -174,8 +174,8 @@ func CreateWebhook(w *Webhook) error { | |||||
| return err | 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) | w := new(Webhook) | ||||
| has, err := x.Id(id).And("repo_id=?", repoID).Get(w) | has, err := x.Id(id).And("repo_id=?", repoID).Get(w) | ||||
| if err != nil { | if err != nil { | ||||
| @@ -186,6 +186,18 @@ func GetWebhookByID(repoID, id int64) (*Webhook, error) { | |||||
| return w, nil | 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. | // GetActiveWebhooksByRepoID returns all active webhooks of repository. | ||||
| func GetActiveWebhooksByRepoID(repoID int64) (ws []*Webhook, err error) { | func GetActiveWebhooksByRepoID(repoID int64) (ws []*Webhook, err error) { | ||||
| err = x.Where("repo_id=?", repoID).And("is_active=?", true).Find(&ws) | 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() | 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}) | err = x.Find(&ws, &Webhook{OrgID: orgID}) | ||||
| return ws, err | return ws, err | ||||
| } | } | ||||
| @@ -548,7 +560,7 @@ func (t *HookTask) deliver() { | |||||
| } | } | ||||
| // Update webhook last delivery status. | // Update webhook last delivery status. | ||||
| w, err := GetWebhookByID(t.RepoID, t.HookID) | |||||
| w, err := GetWebhookByRepoID(t.RepoID, t.HookID) | |||||
| if err != nil { | if err != nil { | ||||
| log.Error(5, "GetWebhookByID: %v", err) | log.Error(5, "GetWebhookByID: %v", err) | ||||
| return | 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 | // https://github.com/gogits/go-gogs-client/wiki/Repositories#edit-a-hook | ||||
| func EditHook(ctx *context.APIContext, form api.EditHookOption) { | 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 err != nil { | ||||
| if models.IsErrWebhookNotExist(err) { | if models.IsErrWebhookNotExist(err) { | ||||
| ctx.Status(404) | ctx.Status(404) | ||||
| @@ -154,7 +154,7 @@ func Webhooks(ctx *context.Context) { | |||||
| return | return | ||||
| } | } | ||||
| ws, err := models.GetWebhooksByOrgId(ctx.Org.Organization.Id) | |||||
| ws, err := models.GetWebhooksByOrgID(ctx.Org.Organization.Id) | |||||
| if err != nil { | if err != nil { | ||||
| ctx.Handle(500, "GetWebhooksByOrgId", err) | ctx.Handle(500, "GetWebhooksByOrgId", err) | ||||
| return | return | ||||
| @@ -220,7 +220,12 @@ func checkWebhook(ctx *context.Context) (*OrgRepoCtx, *models.Webhook) { | |||||
| } | } | ||||
| ctx.Data["BaseLink"] = orCtx.Link | 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 err != nil { | ||||
| if models.IsErrWebhookNotExist(err) { | if models.IsErrWebhookNotExist(err) { | ||||
| ctx.Handle(404, "GetWebhookByID", nil) | ctx.Handle(404, "GetWebhookByID", nil) | ||||
| @@ -9,7 +9,7 @@ | |||||
| <div class="ui secondary menu"> | <div class="ui secondary menu"> | ||||
| {{if .PullRequestCtx.Allowed}} | {{if .PullRequestCtx.Allowed}} | ||||
| <div class="fitted item"> | <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> | <button class="ui green small button"><i class="octicon octicon-git-compare"></i></button> | ||||
| </a> | </a> | ||||
| </div> | </div> | ||||