Skip to content

Commit c511c71

Browse files
committed
add issue delete notifier
1 parent 0d50b75 commit c511c71

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

modules/structs/hook.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,8 @@ const (
306306
HookIssueReviewRequested HookIssueAction = "review_requested"
307307
// HookIssueReviewRequestRemoved is an issue action for removing a review request to someone on a pull request.
308308
HookIssueReviewRequestRemoved HookIssueAction = "review_request_removed"
309+
// HookIssueDeleted is an issue action for deleting an issue
310+
HookIssueDeleted HookIssueAction = "deleted"
309311
)
310312

311313
// IssuePayload represents the payload information that is sent along with an issue event.

services/webhook/notifier.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,28 @@ func (m *webhookNotifier) NewIssue(ctx context.Context, issue *issues_model.Issu
295295
}
296296
}
297297

298+
func (m *webhookNotifier) DeleteIssue(ctx context.Context, doer *user_model.User, issue *issues_model.Issue) {
299+
if err := issue.LoadRepo(ctx); err != nil {
300+
log.Error("issue.LoadRepo: %v", err)
301+
return
302+
}
303+
if err := issue.LoadPoster(ctx); err != nil {
304+
log.Error("issue.LoadPoster: %v", err)
305+
return
306+
}
307+
308+
permission, _ := access_model.GetUserRepoPermission(ctx, issue.Repo, issue.Poster)
309+
if err := PrepareWebhooks(ctx, EventSource{Repository: issue.Repo}, webhook_module.HookEventIssues, &api.IssuePayload{
310+
Action: api.HookIssueDeleted,
311+
Index: issue.Index,
312+
Issue: convert.ToAPIIssue(ctx, issue.Poster, issue),
313+
Repository: convert.ToRepo(ctx, issue.Repo, permission),
314+
Sender: convert.ToUser(ctx, doer, nil),
315+
}); err != nil {
316+
log.Error("PrepareWebhooks: %v", err)
317+
}
318+
}
319+
298320
func (m *webhookNotifier) NewPullRequest(ctx context.Context, pull *issues_model.PullRequest, mentions []*user_model.User) {
299321
if err := pull.LoadIssue(ctx); err != nil {
300322
log.Error("pull.LoadIssue: %v", err)

0 commit comments

Comments
 (0)