diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-11-02 09:49:57 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-02 09:49:57 +0800 |
commit | 4b8d9e58c58b8952e86e7e5f90a0a8e0480e1de1 (patch) | |
tree | fc78aeb806eadd5bf3852612172c407d5b760dc0 /modules | |
parent | 484edb75836acdc0ea9c5e16737f0f1815c0a2b7 (diff) | |
download | gitea-4b8d9e58c58b8952e86e7e5f90a0a8e0480e1de1.tar.gz gitea-4b8d9e58c58b8952e86e7e5f90a0a8e0480e1de1.zip |
Move labels webhooks to notification (#8749)
* Move webhooks to notification
* fix notification
Diffstat (limited to 'modules')
-rw-r--r-- | modules/notification/webhook/webhook.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/modules/notification/webhook/webhook.go b/modules/notification/webhook/webhook.go index e2874fae73..8d98ff0f9e 100644 --- a/modules/notification/webhook/webhook.go +++ b/modules/notification/webhook/webhook.go @@ -399,3 +399,50 @@ func (m *webhookNotifier) NotifyDeleteComment(doer *models.User, comment *models go webhook_module.HookQueue.Add(comment.Issue.Repo.ID) } } + +func (m *webhookNotifier) NotifyIssueChangeLabels(doer *models.User, issue *models.Issue, + addedLabels []*models.Label, removedLabels []*models.Label) { + var err error + + if err = issue.LoadRepo(); err != nil { + log.Error("LoadRepo: %v", err) + return + } + + if err = issue.LoadPoster(); err != nil { + log.Error("LoadPoster: %v", err) + return + } + + mode, _ := models.AccessLevel(issue.Poster, issue.Repo) + if issue.IsPull { + if err = issue.LoadPullRequest(); err != nil { + log.Error("loadPullRequest: %v", err) + return + } + if err = issue.PullRequest.LoadIssue(); err != nil { + log.Error("LoadIssue: %v", err) + return + } + err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ + Action: api.HookIssueLabelUpdated, + Index: issue.Index, + PullRequest: issue.PullRequest.APIFormat(), + Repository: issue.Repo.APIFormat(models.AccessModeNone), + Sender: doer.APIFormat(), + }) + } else { + err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventIssues, &api.IssuePayload{ + Action: api.HookIssueLabelUpdated, + Index: issue.Index, + Issue: issue.APIFormat(), + Repository: issue.Repo.APIFormat(mode), + Sender: doer.APIFormat(), + }) + } + if err != nil { + log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) + } else { + go webhook_module.HookQueue.Add(issue.RepoID) + } +} |