aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorJimmy Praet <jimmy.praet@telenet.be>2021-06-23 06:14:22 +0200
committerGitHub <noreply@github.com>2021-06-23 00:14:22 -0400
commit17030ced75059ec21f6fb1945a751c3ebef29a32 (patch)
tree6d7d79c766335728961e02eb80da4ae08fbf7d9b /models
parent66f8da538a8b1bd63ea1a0f97202ee0d46c15c4f (diff)
downloadgitea-17030ced75059ec21f6fb1945a751c3ebef29a32.tar.gz
gitea-17030ced75059ec21f6fb1945a751c3ebef29a32.zip
Improve notifications for WIP draft PR's (#14663)
* #14559 Reduce amount of email notifications for WIP draft PR's don't notify repo watchers of WIP draft PR's * #13190 Notification when WIP Pull Request is ready for review * Send email notification to repo watchers when WIP PR is created * Send ui notification to repo watchers when WIP PR is created * send specific email notification when PR is marked ready for review instead of reusing the CreatePullRequest action * Fix lint error Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'models')
-rw-r--r--models/action.go51
-rw-r--r--models/notification.go15
-rw-r--r--models/pull.go6
3 files changed, 39 insertions, 33 deletions
diff --git a/models/action.go b/models/action.go
index f6170005c7..3462a5e3f0 100644
--- a/models/action.go
+++ b/models/action.go
@@ -26,31 +26,32 @@ type ActionType int
// Possible action types.
const (
- ActionCreateRepo ActionType = iota + 1 // 1
- ActionRenameRepo // 2
- ActionStarRepo // 3
- ActionWatchRepo // 4
- ActionCommitRepo // 5
- ActionCreateIssue // 6
- ActionCreatePullRequest // 7
- ActionTransferRepo // 8
- ActionPushTag // 9
- ActionCommentIssue // 10
- ActionMergePullRequest // 11
- ActionCloseIssue // 12
- ActionReopenIssue // 13
- ActionClosePullRequest // 14
- ActionReopenPullRequest // 15
- ActionDeleteTag // 16
- ActionDeleteBranch // 17
- ActionMirrorSyncPush // 18
- ActionMirrorSyncCreate // 19
- ActionMirrorSyncDelete // 20
- ActionApprovePullRequest // 21
- ActionRejectPullRequest // 22
- ActionCommentPull // 23
- ActionPublishRelease // 24
- ActionPullReviewDismissed // 25
+ ActionCreateRepo ActionType = iota + 1 // 1
+ ActionRenameRepo // 2
+ ActionStarRepo // 3
+ ActionWatchRepo // 4
+ ActionCommitRepo // 5
+ ActionCreateIssue // 6
+ ActionCreatePullRequest // 7
+ ActionTransferRepo // 8
+ ActionPushTag // 9
+ ActionCommentIssue // 10
+ ActionMergePullRequest // 11
+ ActionCloseIssue // 12
+ ActionReopenIssue // 13
+ ActionClosePullRequest // 14
+ ActionReopenPullRequest // 15
+ ActionDeleteTag // 16
+ ActionDeleteBranch // 17
+ ActionMirrorSyncPush // 18
+ ActionMirrorSyncCreate // 19
+ ActionMirrorSyncDelete // 20
+ ActionApprovePullRequest // 21
+ ActionRejectPullRequest // 22
+ ActionCommentPull // 23
+ ActionPublishRelease // 24
+ ActionPullReviewDismissed // 25
+ ActionPullRequestReadyForReview // 26
)
// Action represents user operation type and other information to
diff --git a/models/notification.go b/models/notification.go
index 56abd0ed83..c4c7728ad9 100644
--- a/models/notification.go
+++ b/models/notification.go
@@ -207,13 +207,14 @@ func createOrUpdateIssueNotifications(e Engine, issueID, commentID, notification
for _, id := range issueWatches {
toNotify[id] = struct{}{}
}
-
- repoWatches, err := getRepoWatchersIDs(e, issue.RepoID)
- if err != nil {
- return err
- }
- for _, id := range repoWatches {
- toNotify[id] = struct{}{}
+ if !(issue.IsPull && HasWorkInProgressPrefix(issue.Title)) {
+ repoWatches, err := getRepoWatchersIDs(e, issue.RepoID)
+ if err != nil {
+ return err
+ }
+ for _, id := range repoWatches {
+ toNotify[id] = struct{}{}
+ }
}
issueParticipants, err := issue.getParticipantIDsByIssue(e)
if err != nil {
diff --git a/models/pull.go b/models/pull.go
index 1abe9fcce7..3717878f42 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -595,9 +595,13 @@ func (pr *PullRequest) IsWorkInProgress() bool {
log.Error("LoadIssue: %v", err)
return false
}
+ return HasWorkInProgressPrefix(pr.Issue.Title)
+}
+// HasWorkInProgressPrefix determines if the given PR title has a Work In Progress prefix
+func HasWorkInProgressPrefix(title string) bool {
for _, prefix := range setting.Repository.PullRequest.WorkInProgressPrefixes {
- if strings.HasPrefix(strings.ToUpper(pr.Issue.Title), prefix) {
+ if strings.HasPrefix(strings.ToUpper(title), prefix) {
return true
}
}