From 616ea9925fb7a28f1594694665ca89462bcbd461 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Tue, 19 Mar 2024 18:42:13 -0700 Subject: [PATCH] Add a dont_notify option to the issue create api yolo --- modules/structs/issue.go | 1 + routers/api/v1/repo/issue.go | 2 +- routers/web/repo/issue.go | 2 +- services/issue/issue.go | 6 +++++- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/structs/issue.go b/modules/structs/issue.go index e2b49e94c5..09d239cdb7 100644 --- a/modules/structs/issue.go +++ b/modules/structs/issue.go @@ -97,6 +97,7 @@ type CreateIssueOption struct { // list of label ids Labels []int64 `json:"labels"` Closed bool `json:"closed"` + DontNotify bool `json:"dont_notify"` } // EditIssueOption options for editing an issue diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go index 0d304dd66d..d9431ef201 100644 --- a/routers/api/v1/repo/issue.go +++ b/routers/api/v1/repo/issue.go @@ -708,7 +708,7 @@ func CreateIssue(ctx *context.APIContext) { form.Labels = make([]int64, 0) } - if err := issue_service.NewIssue(ctx, ctx.Repo.Repository, issue, form.Labels, nil, assigneeIDs); err != nil { + if err := issue_service.NewIssue(ctx, ctx.Repo.Repository, issue, form.Labels, nil, assigneeIDs, !form.DontNotify); err != nil { if errors.Is(err, user_model.ErrBlockedByUser) { ctx.Error(http.StatusForbidden, "BlockedByUser", err) return diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index afa6160d42..dbc500819e 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -1249,7 +1249,7 @@ func NewIssuePost(ctx *context.Context) { Ref: form.Ref, } - if err := issue_service.NewIssue(ctx, repo, issue, labelIDs, attachments, assigneeIDs); err != nil { + if err := issue_service.NewIssue(ctx, repo, issue, labelIDs, attachments, assigneeIDs, true); err != nil { if errors.Is(err, user_model.ErrBlockedByUser) { ctx.RenderWithErr(ctx.Tr("repo.issues.blocked_by_user"), tplIssueNew, form) return diff --git a/services/issue/issue.go b/services/issue/issue.go index 5e726176d0..cdb2f69828 100644 --- a/services/issue/issue.go +++ b/services/issue/issue.go @@ -24,7 +24,7 @@ import ( ) // NewIssue creates new issue with labels for repository. -func NewIssue(ctx context.Context, repo *repo_model.Repository, issue *issues_model.Issue, labelIDs []int64, uuids []string, assigneeIDs []int64) error { +func NewIssue(ctx context.Context, repo *repo_model.Repository, issue *issues_model.Issue, labelIDs []int64, uuids []string, assigneeIDs []int64, notify bool) error { // Check if the user is not blocked by the repo's owner. if user_model.IsBlocked(ctx, repo.OwnerID, issue.PosterID) { return user_model.ErrBlockedByUser @@ -45,7 +45,11 @@ func NewIssue(ctx context.Context, repo *repo_model.Repository, issue *issues_mo return err } + if !notify { + return nil + } notify_service.NewIssue(ctx, issue, mentions) + if len(issue.Labels) > 0 { notify_service.IssueChangeLabels(ctx, issue.Poster, issue, issue.Labels, nil) } -- 2.44.0