diff options
author | 赵智超 <1012112796@qq.com> | 2020-05-20 20:47:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-20 09:47:24 -0300 |
commit | 0903b1ac8c7b64bb571d02cdd69fa671cc1c18c1 (patch) | |
tree | eaa680114a5a0d736ff7b71baf526fe2bb1f2966 /services | |
parent | 9e0e2a9fcfae4336958dc3e93d4beacfc7a2f642 (diff) | |
download | gitea-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.go | 2 | ||||
-rw-r--r-- | services/pull/pull.go | 44 |
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) |