summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
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)