summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
author赵智超 <1012112796@qq.com>2020-05-20 20:47:24 +0800
committerGitHub <noreply@github.com>2020-05-20 09:47:24 -0300
commit0903b1ac8c7b64bb571d02cdd69fa671cc1c18c1 (patch)
treeeaa680114a5a0d736ff7b71baf526fe2bb1f2966 /services
parent9e0e2a9fcfae4336958dc3e93d4beacfc7a2f642 (diff)
downloadgitea-0903b1ac8c7b64bb571d02cdd69fa671cc1c18c1.tar.gz
gitea-0903b1ac8c7b64bb571d02cdd69fa671cc1c18c1.zip
Add push commits history comment on PR time-line (#11167)
* Add push commits history comment on PR time-line * Add notify by email and ui of this comment type also Signed-off-by: a1012112796 <1012112796@qq.com> * Add migrations for IsForcePush * fix wrong force-push judgement * Apply suggestions from code review * Remove commit number check * add own notify fun * fix some typo Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> * fix lint * fix style again, I forgot something before * Change email notify way * fix api * add number check if It's force-push * Add repo commit link fuction remove unnecessary check skip show push commits comment which not have commits alive * Update issue_comment.go * Apply suggestions from code review Co-authored-by: mrsdizzie <info@mrsdizzie.com> * Apply suggestions from code review * fix ui view Co-authored-by: silverwind <me@silverwind.io> * fix height * remove unnecessary style define * simplify GetBranchName * Apply suggestions from code review * save commit ids and isForce push by json * simplify GetBranchName * fix bug Co-authored-by: guillep2k <18600385+guillep2k@users.noreply.github.com> Co-authored-by: mrsdizzie <info@mrsdizzie.com> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'services')
-rw-r--r--services/mailer/mail.go2
-rw-r--r--services/pull/pull.go44
2 files changed, 46 insertions, 0 deletions
diff --git a/services/mailer/mail.go b/services/mailer/mail.go
index dd5af445bf..b4217c0466 100644
--- a/services/mailer/mail.go
+++ b/services/mailer/mail.go
@@ -319,6 +319,8 @@ func actionToTemplate(issue *models.Issue, actionType models.ActionType,
name = "code"
case models.CommentTypeAssignees:
name = "assigned"
+ case models.CommentTypePullPush:
+ name = "push"
default:
name = "default"
}
diff --git a/services/pull/pull.go b/services/pull/pull.go
index fb4af06372..c051641a5b 100644
--- a/services/pull/pull.go
+++ b/services/pull/pull.go
@@ -8,6 +8,7 @@ import (
"bufio"
"bytes"
"context"
+ "encoding/json"
"fmt"
"os"
"path"
@@ -57,6 +58,43 @@ func NewPullRequest(repo *models.Repository, pull *models.Issue, labelIDs []int6
notification.NotifyNewPullRequest(pr)
+ // add first push codes comment
+ baseGitRepo, err := git.OpenRepository(pr.BaseRepo.RepoPath())
+ if err != nil {
+ return err
+ }
+ defer baseGitRepo.Close()
+
+ compareInfo, err := baseGitRepo.GetCompareInfo(pr.BaseRepo.RepoPath(),
+ pr.BaseBranch, pr.GetGitRefName())
+ if err != nil {
+ return err
+ }
+
+ if compareInfo.Commits.Len() > 0 {
+ data := models.PushActionContent{IsForcePush: false}
+ data.CommitIDs = make([]string, 0, compareInfo.Commits.Len())
+ for e := compareInfo.Commits.Back(); e != nil; e = e.Prev() {
+ data.CommitIDs = append(data.CommitIDs, e.Value.(*git.Commit).ID.String())
+ }
+
+ dataJSON, err := json.Marshal(data)
+ if err != nil {
+ return err
+ }
+
+ ops := &models.CreateCommentOptions{
+ Type: models.CommentTypePullPush,
+ Doer: pull.Poster,
+ Repo: repo,
+ Issue: pr.Issue,
+ IsForcePush: false,
+ Content: string(dataJSON),
+ }
+
+ _, _ = models.CreateComment(ops)
+ }
+
return nil
}
@@ -237,6 +275,12 @@ func AddTestPullRequestTask(doer *models.User, repoID int64, branch string, isSy
}
addHeadRepoTasks(prs)
+ for _, pr := range prs {
+ comment, err := models.CreatePushPullComment(doer, pr, oldCommitID, newCommitID)
+ if err == nil && comment != nil {
+ notification.NotifyPullRequestPushCommits(doer, pr, comment)
+ }
+ }
log.Trace("AddTestPullRequestTask [base_repo_id: %d, base_branch: %s]: finding pull requests", repoID, branch)
prs, err = models.GetUnmergedPullRequestsByBaseInfo(repoID, branch)