Co-Authored-By: edef <edef@edef.eu> Co-Authored-by: Ryan Lahfa <raito@lix.systems> Change-Id: Ica1cda177a236814de900f50a8a61d288f58f519
79 lines
3.1 KiB
Diff
79 lines
3.1 KiB
Diff
From 616ea9925fb7a28f1594694665ca89462bcbd461 Mon Sep 17 00:00:00 2001
|
|
From: Jade Lovelace <software@lfcode.ca>
|
|
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
|
|
|