diff options
-rw-r--r-- | modules/notification/webhook/webhook.go | 27 | ||||
-rw-r--r-- | modules/repofiles/action.go | 4 | ||||
-rw-r--r-- | modules/webhook/deliver.go | 4 | ||||
-rw-r--r-- | modules/webhook/webhook.go | 18 | ||||
-rw-r--r-- | routers/api/v1/repo/hook.go | 2 | ||||
-rw-r--r-- | routers/repo/pull.go | 2 | ||||
-rw-r--r-- | routers/repo/webhook.go | 1 | ||||
-rw-r--r-- | services/milestone/milestone.go | 2 | ||||
-rw-r--r-- | services/mirror/sync.go | 4 | ||||
-rw-r--r-- | services/pull/merge.go | 2 | ||||
-rw-r--r-- | services/pull/pull.go | 3 | ||||
-rw-r--r-- | services/pull/review.go | 9 | ||||
-rw-r--r-- | services/release/release.go | 6 |
13 files changed, 19 insertions, 65 deletions
diff --git a/modules/notification/webhook/webhook.go b/modules/notification/webhook/webhook.go index 8d98ff0f9e..259b6352ab 100644 --- a/modules/notification/webhook/webhook.go +++ b/modules/notification/webhook/webhook.go @@ -62,8 +62,6 @@ func (m *webhookNotifier) NotifyIssueClearLabels(doer *models.User, issue *model } if err != nil { log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) - } else { - go webhook_module.HookQueue.Add(issue.RepoID) } } @@ -78,8 +76,6 @@ func (m *webhookNotifier) NotifyForkRepository(doer *models.User, oldRepo, repo Sender: doer.APIFormat(), }); err != nil { log.Error("PrepareWebhooks [repo_id: %d]: %v", oldRepo.ID, err) - } else { - go webhook_module.HookQueue.Add(oldRepo.ID) } u := repo.MustOwner() @@ -93,8 +89,6 @@ func (m *webhookNotifier) NotifyForkRepository(doer *models.User, oldRepo, repo Sender: doer.APIFormat(), }); err != nil { log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err) - } else { - go webhook_module.HookQueue.Add(repo.ID) } } } @@ -109,8 +103,6 @@ func (m *webhookNotifier) NotifyCreateRepository(doer *models.User, u *models.Us Sender: doer.APIFormat(), }); err != nil { log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err) - } else { - go webhook_module.HookQueue.Add(repo.ID) } } } @@ -127,7 +119,6 @@ func (m *webhookNotifier) NotifyDeleteRepository(doer *models.User, repo *models }); err != nil { log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err) } - go webhook_module.HookQueue.Add(repo.ID) } } @@ -175,8 +166,6 @@ func (m *webhookNotifier) NotifyIssueChangeAssignee(doer *models.User, issue *mo return } } - - go webhook_module.HookQueue.Add(issue.RepoID) } func (m *webhookNotifier) NotifyIssueChangeTitle(doer *models.User, issue *models.Issue, oldTitle string) { @@ -217,8 +206,6 @@ func (m *webhookNotifier) NotifyIssueChangeTitle(doer *models.User, issue *model if err != nil { log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) - } else { - go webhook_module.HookQueue.Add(issue.RepoID) } } @@ -259,8 +246,6 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(doer *models.User, issue *mode } if err != nil { log.Error("PrepareWebhooks [is_pull: %v, is_closed: %v]: %v", issue.IsPull, isClosed, err) - } else { - go webhook_module.HookQueue.Add(issue.Repo.ID) } } @@ -274,8 +259,6 @@ func (m *webhookNotifier) NotifyNewIssue(issue *models.Issue) { Sender: issue.Poster.APIFormat(), }); err != nil { log.Error("PrepareWebhooks: %v", err) - } else { - go webhook_module.HookQueue.Add(issue.RepoID) } } @@ -312,8 +295,6 @@ func (m *webhookNotifier) NotifyIssueChangeContent(doer *models.User, issue *mod } if err != nil { log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) - } else { - go webhook_module.HookQueue.Add(issue.RepoID) } } @@ -347,8 +328,6 @@ func (m *webhookNotifier) NotifyUpdateComment(doer *models.User, c *models.Comme IsPull: c.Issue.IsPull, }); err != nil { log.Error("PrepareWebhooks [comment_id: %d]: %v", c.ID, err) - } else { - go webhook_module.HookQueue.Add(c.Issue.Repo.ID) } } @@ -364,8 +343,6 @@ func (m *webhookNotifier) NotifyCreateIssueComment(doer *models.User, repo *mode IsPull: issue.IsPull, }); err != nil { log.Error("PrepareWebhooks [comment_id: %d]: %v", comment.ID, err) - } else { - go webhook_module.HookQueue.Add(repo.ID) } } @@ -395,8 +372,6 @@ func (m *webhookNotifier) NotifyDeleteComment(doer *models.User, comment *models IsPull: comment.Issue.IsPull, }); err != nil { log.Error("PrepareWebhooks [comment_id: %d]: %v", comment.ID, err) - } else { - go webhook_module.HookQueue.Add(comment.Issue.Repo.ID) } } @@ -442,7 +417,5 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(doer *models.User, issue *mode } if err != nil { log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) - } else { - go webhook_module.HookQueue.Add(issue.RepoID) } } diff --git a/modules/repofiles/action.go b/modules/repofiles/action.go index addbdb464c..79f6406c53 100644 --- a/modules/repofiles/action.go +++ b/modules/repofiles/action.go @@ -112,10 +112,6 @@ func CommitRepoAction(opts CommitRepoActionOptions) error { return fmt.Errorf("NotifyWatchers: %v", err) } - defer func() { - go webhook.HookQueue.Add(repo.ID) - }() - apiPusher := pusher.APIFormat() apiRepo := repo.APIFormat(models.AccessModeNone) diff --git a/modules/webhook/deliver.go b/modules/webhook/deliver.go index 1b3da25d5e..54f20171fa 100644 --- a/modules/webhook/deliver.go +++ b/modules/webhook/deliver.go @@ -159,9 +159,9 @@ func DeliverHooks() { } // Start listening on new hook requests. - for repoIDStr := range HookQueue.Queue() { + for repoIDStr := range hookQueue.Queue() { log.Trace("DeliverHooks [repo_id: %v]", repoIDStr) - HookQueue.Remove(repoIDStr) + hookQueue.Remove(repoIDStr) repoID, err := com.StrTo(repoIDStr).Int64() if err != nil { diff --git a/modules/webhook/webhook.go b/modules/webhook/webhook.go index da88c58c88..623a475df9 100644 --- a/modules/webhook/webhook.go +++ b/modules/webhook/webhook.go @@ -20,8 +20,8 @@ import ( "github.com/gobwas/glob" ) -// HookQueue is a global queue of web hooks -var HookQueue = sync.NewUniqueQueue(setting.Webhook.QueueLength) +// hookQueue is a global queue of web hooks +var hookQueue = sync.NewUniqueQueue(setting.Webhook.QueueLength) // getPayloadBranch returns branch for hook event, if applicable. func getPayloadBranch(p api.Payloader) string { @@ -44,7 +44,12 @@ func getPayloadBranch(p api.Payloader) string { // PrepareWebhook adds special webhook to task queue for given payload. func PrepareWebhook(w *models.Webhook, repo *models.Repository, event models.HookEventType, p api.Payloader) error { - return prepareWebhook(w, repo, event, p) + if err := prepareWebhook(w, repo, event, p); err != nil { + return err + } + + go hookQueue.Add(repo.ID) + return nil } func checkBranch(w *models.Webhook, branch string) bool { @@ -147,7 +152,12 @@ func prepareWebhook(w *models.Webhook, repo *models.Repository, event models.Hoo // PrepareWebhooks adds new webhooks to task queue for given payload. func PrepareWebhooks(repo *models.Repository, event models.HookEventType, p api.Payloader) error { - return prepareWebhooks(repo, event, p) + if err := prepareWebhooks(repo, event, p); err != nil { + return err + } + + go hookQueue.Add(repo.ID) + return nil } func prepareWebhooks(repo *models.Repository, event models.HookEventType, p api.Payloader) error { diff --git a/routers/api/v1/repo/hook.go b/routers/api/v1/repo/hook.go index 56fc514508..18f1fba056 100644 --- a/routers/api/v1/repo/hook.go +++ b/routers/api/v1/repo/hook.go @@ -137,7 +137,7 @@ func TestHook(ctx *context.APIContext) { ctx.Error(500, "PrepareWebhook: ", err) return } - go webhook.HookQueue.Add(ctx.Repo.Repository.ID) + ctx.Status(204) } diff --git a/routers/repo/pull.go b/routers/repo/pull.go index d28ee0cfaf..cb9c7c1164 100644 --- a/routers/repo/pull.go +++ b/routers/repo/pull.go @@ -23,7 +23,6 @@ import ( "code.gitea.io/gitea/modules/notification" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/util" - "code.gitea.io/gitea/modules/webhook" "code.gitea.io/gitea/services/gitdiff" pull_service "code.gitea.io/gitea/services/pull" repo_service "code.gitea.io/gitea/services/repository" @@ -824,7 +823,6 @@ func TriggerTask(ctx *context.Context) { log.Trace("TriggerTask '%s/%s' by %s", repo.Name, branch, pusher.Name) - go webhook.HookQueue.Add(repo.ID) go pull_service.AddTestPullRequestTask(pusher, repo.ID, branch, true) ctx.Status(202) } diff --git a/routers/repo/webhook.go b/routers/repo/webhook.go index f89bce8190..a6bd3af264 100644 --- a/routers/repo/webhook.go +++ b/routers/repo/webhook.go @@ -869,7 +869,6 @@ func TestWebhook(ctx *context.Context) { ctx.Flash.Error("PrepareWebhook: " + err.Error()) ctx.Status(500) } else { - go webhook.HookQueue.Add(ctx.Repo.Repository.ID) ctx.Flash.Info(ctx.Tr("repo.settings.webhook.test_delivery_success")) ctx.Status(200) } diff --git a/services/milestone/milestone.go b/services/milestone/milestone.go index d6d18ad985..84e7fb30e2 100644 --- a/services/milestone/milestone.go +++ b/services/milestone/milestone.go @@ -53,8 +53,6 @@ func ChangeMilestoneAssign(issue *models.Issue, doer *models.User, oldMilestoneI } if err != nil { log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) - } else { - go webhook.HookQueue.Add(issue.RepoID) } return nil } diff --git a/services/mirror/sync.go b/services/mirror/sync.go index 1bf36f5760..a9ce189c03 100644 --- a/services/mirror/sync.go +++ b/services/mirror/sync.go @@ -28,10 +28,6 @@ func syncAction(opType models.ActionType, repo *models.Repository, refName strin return fmt.Errorf("notifyWatchers: %v", err) } - defer func() { - go webhook.HookQueue.Add(repo.ID) - }() - return nil } diff --git a/services/pull/merge.go b/services/pull/merge.go index f13638c292..4a2f4511c4 100644 --- a/services/pull/merge.go +++ b/services/pull/merge.go @@ -369,8 +369,6 @@ func Merge(pr *models.PullRequest, doer *models.User, baseGitRepo *git.Repositor Sender: doer.APIFormat(), }); err != nil { log.Error("PrepareWebhooks: %v", err) - } else { - go webhook.HookQueue.Add(pr.Issue.Repo.ID) } return nil diff --git a/services/pull/pull.go b/services/pull/pull.go index 65b78f4101..0a4c4a7eee 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -50,8 +50,6 @@ func NewPullRequest(repo *models.Repository, pull *models.Issue, labelIDs []int6 Sender: pull.Poster.APIFormat(), }); err != nil { log.Error("PrepareWebhooks: %v", err) - } else { - go webhook.HookQueue.Add(repo.ID) } return nil @@ -125,7 +123,6 @@ func AddTestPullRequestTask(doer *models.User, repoID int64, branch string, isSy log.Error("PrepareWebhooks [pull_id: %v]: %v", pr.ID, err) continue } - go webhook.HookQueue.Add(pr.Issue.Repo.ID) } } diff --git a/services/pull/review.go b/services/pull/review.go index cffe5da4dd..ffb7be82b2 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -56,7 +56,7 @@ func reviewHook(review *models.Review) error { if err != nil { return err } - if err := webhook.PrepareWebhooks(review.Issue.Repo, reviewHookType, &api.PullRequestPayload{ + return webhook.PrepareWebhooks(review.Issue.Repo, reviewHookType, &api.PullRequestPayload{ Action: api.HookIssueSynchronized, Index: review.Issue.Index, PullRequest: pr.APIFormat(), @@ -66,10 +66,5 @@ func reviewHook(review *models.Review) error { Type: string(reviewHookType), Content: review.Content, }, - }); err != nil { - return err - } - go webhook.HookQueue.Add(review.Issue.Repo.ID) - - return nil + }) } diff --git a/services/release/release.go b/services/release/release.go index 42db1f3417..a3f027c949 100644 --- a/services/release/release.go +++ b/services/release/release.go @@ -92,8 +92,6 @@ func CreateRelease(gitRepo *git.Repository, rel *models.Release, attachmentUUIDs Sender: rel.Publisher.APIFormat(), }); err != nil { log.Error("PrepareWebhooks: %v", err) - } else { - go webhook.HookQueue.Add(rel.Repo.ID) } } } @@ -129,8 +127,6 @@ func UpdateRelease(doer *models.User, gitRepo *git.Repository, rel *models.Relea Sender: doer.APIFormat(), }); err1 != nil { log.Error("PrepareWebhooks: %v", err) - } else { - go webhook.HookQueue.Add(rel.Repo.ID) } return err @@ -195,8 +191,6 @@ func DeleteReleaseByID(id int64, doer *models.User, delTag bool) error { Sender: doer.APIFormat(), }); err != nil { log.Error("PrepareWebhooks: %v", err) - } else { - go webhook.HookQueue.Add(rel.Repo.ID) } return nil |