diff options
Diffstat (limited to 'routers/repo/setting.go')
-rw-r--r-- | routers/repo/setting.go | 50 |
1 files changed, 47 insertions, 3 deletions
diff --git a/routers/repo/setting.go b/routers/repo/setting.go index c3087392..d49c9337 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -199,18 +199,62 @@ func CollaborationPost(ctx *middleware.Context) { func WebHooks(ctx *middleware.Context) { ctx.Data["IsRepoToolbarWebHooks"] = true - ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Web Hooks" + ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhooks" + + ws, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.Id) + if err != nil { + ctx.Handle(500, "repo.WebHooks(GetWebhooksByRepoId)", err) + return + } + + ctx.Data["Webhooks"] = ws ctx.HTML(200, "repo/hooks") } func WebHooksAdd(ctx *middleware.Context) { ctx.Data["IsRepoToolbarWebHooks"] = true - ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Web Hook" + ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Webhook" ctx.HTML(200, "repo/hooks_add") } +func WebHooksAddPost(ctx *middleware.Context, form auth.NewWebhookForm) { + ctx.Data["IsRepoToolbarWebHooks"] = true + ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Webhook" + + if ctx.HasError() { + ctx.HTML(200, "repo/hooks_add") + return + } + + ct := models.CT_JSON + if form.ContentType == "form" { + ct = models.CT_FORM + } + + w := &models.Webhook{ + RepoId: ctx.Repo.Repository.Id, + Payload: form.Url, + ContentType: ct, + Secret: form.Secret, + IsActive: form.Active, + } + h := &models.HookEvent{ + PushOnly: form.PushOnly, + } + if err := w.SaveEvent(h); err != nil { + ctx.Handle(500, "repo.WebHooksAddPost(SaveEvent)", err) + return + } else if err := models.CreateWebhook(w); err != nil { + ctx.Handle(500, "repo.WebHooksAddPost(CreateWebhook)", err) + return + } + + ctx.Flash.Success("New webhook has been added.") + ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks") +} + func WebHooksEdit(ctx *middleware.Context) { ctx.Data["IsRepoToolbarWebHooks"] = true - ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Web Hook Name" + ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhook" ctx.HTML(200, "repo/hooks_edit") } |