|
|
|
@ -230,7 +230,7 @@ func (issue *Issue) sendLabelUpdatedWebhook(doer *User) {
|
|
|
|
|
if issue.IsPull { |
|
|
|
|
err = issue.PullRequest.LoadIssue() |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "LoadIssue: %v", err) |
|
|
|
|
log.Error(2, "LoadIssue: %v", err) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_PULL_REQUEST, &api.PullRequestPayload{ |
|
|
|
@ -240,9 +240,17 @@ func (issue *Issue) sendLabelUpdatedWebhook(doer *User) {
|
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_ISSUES, &api.IssuesPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_LABEL_UPDATED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
log.Error(2, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
} else { |
|
|
|
|
go HookQueue.Add(issue.RepoID) |
|
|
|
|
} |
|
|
|
@ -334,7 +342,7 @@ func (issue *Issue) ClearLabels(doer *User) (err error) {
|
|
|
|
|
if issue.IsPull { |
|
|
|
|
err = issue.PullRequest.LoadIssue() |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "LoadIssue: %v", err) |
|
|
|
|
log.Error(2, "LoadIssue: %v", err) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_PULL_REQUEST, &api.PullRequestPayload{ |
|
|
|
@ -344,9 +352,17 @@ func (issue *Issue) ClearLabels(doer *User) (err error) {
|
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_ISSUES, &api.IssuesPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_LABEL_CLEARED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
log.Error(2, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
} else { |
|
|
|
|
go HookQueue.Add(issue.RepoID) |
|
|
|
|
} |
|
|
|
@ -470,9 +486,22 @@ func (issue *Issue) ChangeStatus(doer *User, repo *Repository, isClosed bool) (e
|
|
|
|
|
apiPullRequest.Action = api.HOOK_ISSUE_REOPENED |
|
|
|
|
} |
|
|
|
|
err = PrepareWebhooks(repo, HOOK_EVENT_PULL_REQUEST, apiPullRequest) |
|
|
|
|
} else { |
|
|
|
|
apiIssues := &api.IssuesPayload{ |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Repository: repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
} |
|
|
|
|
if isClosed { |
|
|
|
|
apiIssues.Action = api.HOOK_ISSUE_CLOSED |
|
|
|
|
} else { |
|
|
|
|
apiIssues.Action = api.HOOK_ISSUE_REOPENED |
|
|
|
|
} |
|
|
|
|
err = PrepareWebhooks(repo, HOOK_EVENT_ISSUES, apiIssues) |
|
|
|
|
} |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "PrepareWebhooks [is_pull: %v, is_closed: %v]: %v", issue.IsPull, isClosed, err) |
|
|
|
|
log.Error(2, "PrepareWebhooks [is_pull: %v, is_closed: %v]: %v", issue.IsPull, isClosed, err) |
|
|
|
|
} else { |
|
|
|
|
go HookQueue.Add(repo.ID) |
|
|
|
|
} |
|
|
|
@ -490,20 +519,33 @@ func (issue *Issue) ChangeTitle(doer *User, title string) (err error) {
|
|
|
|
|
if issue.IsPull { |
|
|
|
|
issue.PullRequest.Issue = issue |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_PULL_REQUEST, &api.PullRequestPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_EDITED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
PullRequest: issue.PullRequest.APIFormat(), |
|
|
|
|
Changes: &api.ChangesPayload{ |
|
|
|
|
Title: &api.ChangesFromPayload{ |
|
|
|
|
From: oldTitle, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_ISSUES, &api.IssuesPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_EDITED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Changes: &api.ChangesPayload{ |
|
|
|
|
Title: &api.ChangesFromPayload{ |
|
|
|
|
From: oldTitle, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
PullRequest: issue.PullRequest.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
log.Error(2, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
} else { |
|
|
|
|
go HookQueue.Add(issue.RepoID) |
|
|
|
|
} |
|
|
|
@ -521,20 +563,33 @@ func (issue *Issue) ChangeContent(doer *User, content string) (err error) {
|
|
|
|
|
if issue.IsPull { |
|
|
|
|
issue.PullRequest.Issue = issue |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_PULL_REQUEST, &api.PullRequestPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_EDITED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
PullRequest: issue.PullRequest.APIFormat(), |
|
|
|
|
Changes: &api.ChangesPayload{ |
|
|
|
|
Body: &api.ChangesFromPayload{ |
|
|
|
|
From: oldContent, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_ISSUES, &api.IssuesPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_EDITED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Changes: &api.ChangesPayload{ |
|
|
|
|
Body: &api.ChangesFromPayload{ |
|
|
|
|
From: oldContent, |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
PullRequest: issue.PullRequest.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
log.Error(2, "PrepareWebhooks [is_pull: %v]: %v", issue.IsPull, err) |
|
|
|
|
} else { |
|
|
|
|
go HookQueue.Add(issue.RepoID) |
|
|
|
|
} |
|
|
|
@ -570,6 +625,19 @@ func (issue *Issue) ChangeAssignee(doer *User, assigneeID int64) (err error) {
|
|
|
|
|
apiPullRequest.Action = api.HOOK_ISSUE_ASSIGNED |
|
|
|
|
} |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_PULL_REQUEST, apiPullRequest) |
|
|
|
|
} else { |
|
|
|
|
apiIssues := &api.IssuesPayload{ |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Repository: issue.Repo.APIFormat(nil), |
|
|
|
|
Sender: doer.APIFormat(), |
|
|
|
|
} |
|
|
|
|
if isRemoveAssignee { |
|
|
|
|
apiIssues.Action = api.HOOK_ISSUE_UNASSIGNED |
|
|
|
|
} else { |
|
|
|
|
apiIssues.Action = api.HOOK_ISSUE_ASSIGNED |
|
|
|
|
} |
|
|
|
|
err = PrepareWebhooks(issue.Repo, HOOK_EVENT_ISSUES, apiIssues) |
|
|
|
|
} |
|
|
|
|
if err != nil { |
|
|
|
|
log.Error(4, "PrepareWebhooks [is_pull: %v, remove_assignee: %v]: %v", issue.IsPull, isRemoveAssignee, err) |
|
|
|
@ -715,10 +783,20 @@ func NewIssue(repo *Repository, issue *Issue, labelIDs []int64, uuids []string)
|
|
|
|
|
RepoName: repo.Name, |
|
|
|
|
IsPrivate: repo.IsPrivate, |
|
|
|
|
}); err != nil { |
|
|
|
|
log.Error(4, "NotifyWatchers: %v", err) |
|
|
|
|
log.Error(2, "NotifyWatchers: %v", err) |
|
|
|
|
} |
|
|
|
|
if err = issue.MailParticipants(); err != nil { |
|
|
|
|
log.Error(4, "MailParticipants: %v", err) |
|
|
|
|
log.Error(2, "MailParticipants: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if err = PrepareWebhooks(repo, HOOK_EVENT_ISSUES, &api.IssuesPayload{ |
|
|
|
|
Action: api.HOOK_ISSUE_OPENED, |
|
|
|
|
Index: issue.Index, |
|
|
|
|
Issue: issue.APIFormat(), |
|
|
|
|
Repository: repo.APIFormat(nil), |
|
|
|
|
Sender: issue.Poster.APIFormat(), |
|
|
|
|
}); err != nil { |
|
|
|
|
log.Error(2, "PrepareWebhooks: %v", err) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return nil |
|
|
|
|