mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-31 11:52:10 +00:00
Move issue milestone assign to issue service and move webhook to notification (#8780)
This commit is contained in:
parent
f518fe6662
commit
8f26397928
9 changed files with 70 additions and 68 deletions
|
@ -20,7 +20,7 @@ type Notifier interface {
|
|||
|
||||
NotifyNewIssue(*models.Issue)
|
||||
NotifyIssueChangeStatus(*models.User, *models.Issue, bool)
|
||||
NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue)
|
||||
NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue, oldMilestoneID int64)
|
||||
NotifyIssueChangeAssignee(doer *models.User, issue *models.Issue, assignee *models.User, removed bool, comment *models.Comment)
|
||||
NotifyIssueChangeContent(doer *models.User, issue *models.Issue, oldContent string)
|
||||
NotifyIssueClearLabels(doer *models.User, issue *models.Issue)
|
||||
|
|
|
@ -75,7 +75,7 @@ func (*NullNotifier) NotifyDeleteRelease(doer *models.User, rel *models.Release)
|
|||
}
|
||||
|
||||
// NotifyIssueChangeMilestone places a place holder function
|
||||
func (*NullNotifier) NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue) {
|
||||
func (*NullNotifier) NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue, oldMilestoneID int64) {
|
||||
}
|
||||
|
||||
// NotifyIssueChangeContent places a place holder function
|
||||
|
|
|
@ -128,9 +128,9 @@ func NotifyDeleteRelease(doer *models.User, rel *models.Release) {
|
|||
}
|
||||
|
||||
// NotifyIssueChangeMilestone notifies change milestone to notifiers
|
||||
func NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue) {
|
||||
func NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue, oldMilestoneID int64) {
|
||||
for _, notifier := range notifiers {
|
||||
notifier.NotifyIssueChangeMilestone(doer, issue)
|
||||
notifier.NotifyIssueChangeMilestone(doer, issue, oldMilestoneID)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -419,3 +419,45 @@ func (m *webhookNotifier) NotifyIssueChangeLabels(doer *models.User, issue *mode
|
|||
log.Error("PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *webhookNotifier) NotifyIssueChangeMilestone(doer *models.User, issue *models.Issue, oldMilestoneID int64) {
|
||||
var hookAction api.HookIssueAction
|
||||
var err error
|
||||
if issue.MilestoneID > 0 {
|
||||
hookAction = api.HookIssueMilestoned
|
||||
} else {
|
||||
hookAction = api.HookIssueDemilestoned
|
||||
}
|
||||
|
||||
if err = issue.LoadAttributes(); err != nil {
|
||||
log.Error("issue.LoadAttributes failed: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
mode, _ := models.AccessLevel(doer, issue.Repo)
|
||||
if issue.IsPull {
|
||||
err = issue.PullRequest.LoadIssue()
|
||||
if err != nil {
|
||||
log.Error("LoadIssue: %v", err)
|
||||
return
|
||||
}
|
||||
err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventPullRequest, &api.PullRequestPayload{
|
||||
Action: hookAction,
|
||||
Index: issue.Index,
|
||||
PullRequest: issue.PullRequest.APIFormat(),
|
||||
Repository: issue.Repo.APIFormat(mode),
|
||||
Sender: doer.APIFormat(),
|
||||
})
|
||||
} else {
|
||||
err = webhook_module.PrepareWebhooks(issue.Repo, models.HookEventIssues, &api.IssuePayload{
|
||||
Action: hookAction,
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue