diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2019-11-04 04:59:09 +0800 |
---|---|---|
committer | zeripath <art27@cantab.net> | 2019-11-03 20:59:09 +0000 |
commit | 491887d44132b8103ed0d753f95ecd43d600adba (patch) | |
tree | 5b8f7e7584f914ba0bed06369ecfbaea37db44ae /modules/notification/webhook/webhook.go | |
parent | 7971b05d2b96e45a4ee3954a39a7db9b9bbb807f (diff) | |
download | gitea-491887d44132b8103ed0d753f95ecd43d600adba.tar.gz gitea-491887d44132b8103ed0d753f95ecd43d600adba.zip |
Move actions to notification (#8785)
Diffstat (limited to 'modules/notification/webhook/webhook.go')
-rw-r--r-- | modules/notification/webhook/webhook.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/notification/webhook/webhook.go b/modules/notification/webhook/webhook.go index 13d33e1011..7d28c1c8b9 100644 --- a/modules/notification/webhook/webhook.go +++ b/modules/notification/webhook/webhook.go @@ -10,6 +10,7 @@ import ( "code.gitea.io/gitea/modules/notification/base" "code.gitea.io/gitea/modules/setting" api "code.gitea.io/gitea/modules/structs" + "code.gitea.io/gitea/modules/webhook" webhook_module "code.gitea.io/gitea/modules/webhook" ) @@ -251,6 +252,15 @@ func (m *webhookNotifier) NotifyIssueChangeStatus(doer *models.User, issue *mode } func (m *webhookNotifier) NotifyNewIssue(issue *models.Issue) { + if err := issue.LoadRepo(); err != nil { + log.Error("issue.LoadRepo: %v", err) + return + } + if err := issue.LoadPoster(); err != nil { + log.Error("issue.LoadPoster: %v", err) + return + } + mode, _ := models.AccessLevel(issue.Poster, issue.Repo) if err := webhook_module.PrepareWebhooks(issue.Repo, models.HookEventIssues, &api.IssuePayload{ Action: api.HookIssueOpened, @@ -263,6 +273,32 @@ func (m *webhookNotifier) NotifyNewIssue(issue *models.Issue) { } } +func (m *webhookNotifier) NotifyNewPullRequest(pull *models.PullRequest) { + if err := pull.LoadIssue(); err != nil { + log.Error("pull.LoadIssue: %v", err) + return + } + if err := pull.Issue.LoadRepo(); err != nil { + log.Error("pull.Issue.LoadRepo: %v", err) + return + } + if err := pull.Issue.LoadPoster(); err != nil { + log.Error("pull.Issue.LoadPoster: %v", err) + return + } + + mode, _ := models.AccessLevel(pull.Issue.Poster, pull.Issue.Repo) + if err := webhook.PrepareWebhooks(pull.Issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{ + Action: api.HookIssueOpened, + Index: pull.Issue.Index, + PullRequest: pull.APIFormat(), + Repository: pull.Issue.Repo.APIFormat(mode), + Sender: pull.Issue.Poster.APIFormat(), + }); err != nil { + log.Error("PrepareWebhooks: %v", err) + } +} + func (m *webhookNotifier) NotifyIssueChangeContent(doer *models.User, issue *models.Issue, oldContent string) { mode, _ := models.AccessLevel(issue.Poster, issue.Repo) var err error |