From 0903b1ac8c7b64bb571d02cdd69fa671cc1c18c1 Mon Sep 17 00:00:00 2001 From: 赵智超 <1012112796@qq.com> Date: Wed, 20 May 2020 20:47:24 +0800 Subject: 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 * Apply suggestions from code review * fix ui view Co-authored-by: silverwind * 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 Co-authored-by: Lauris BH Co-authored-by: silverwind --- modules/git/commit.go | 8 ++++---- modules/git/repo_commit.go | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'modules/git') diff --git a/modules/git/commit.go b/modules/git/commit.go index 5e492e27ea..8c7732a26b 100644 --- a/modules/git/commit.go +++ b/modules/git/commit.go @@ -466,15 +466,15 @@ func (c *Commit) GetSubModule(entryname string) (*SubModule, error) { return nil, nil } -// GetBranchName gets the closes branch name (as returned by 'git name-rev') +// GetBranchName gets the closes branch name (as returned by 'git name-rev --name-only') func (c *Commit) GetBranchName() (string, error) { - data, err := NewCommand("name-rev", c.ID.String()).RunInDirBytes(c.repo.Path) + data, err := NewCommand("name-rev", "--name-only", c.ID.String()).RunInDir(c.repo.Path) if err != nil { return "", err } - // name-rev commitID output will be "COMMIT_ID master" or "COMMIT_ID master~12" - return strings.Split(strings.Split(string(data), " ")[1], "~")[0], nil + // name-rev commitID output will be "master" or "master~12" + return strings.SplitN(strings.TrimSpace(data), "~", 2)[0], nil } // CommitFileStatus represents status of files in a commit. diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index c5f6d6cdd6..397c390e84 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -454,3 +454,21 @@ func (repo *Repository) getBranches(commit *Commit, limit int) ([]string, error) } return branches, nil } + +// GetCommitsFromIDs get commits from commit IDs +func (repo *Repository) GetCommitsFromIDs(commitIDs []string) (commits *list.List) { + if len(commitIDs) == 0 { + return nil + } + + commits = list.New() + + for _, commitID := range commitIDs { + commit, err := repo.GetCommit(commitID) + if err == nil && commit != nil { + commits.PushBack(commit) + } + } + + return commits +} -- cgit v1.2.3