diff options
author | Mura Li <2606021+typeless@users.noreply.github.com> | 2020-12-22 00:46:14 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-21 17:46:14 +0100 |
commit | 09304db9a5d88c035a96f74a4544572bc8c5dac0 (patch) | |
tree | 19d4c329b6f6e5aa7ebce73af6b51d267e527c31 | |
parent | 34df4e5df558e7ec648efe083696687be6f8c8a8 (diff) | |
download | gitea-09304db9a5d88c035a96f74a4544572bc8c5dac0.tar.gz gitea-09304db9a5d88c035a96f74a4544572bc8c5dac0.zip |
Use the text of pull-request as the squash commit's message (#13071)
Originally, it was filled by the commit messages of the involved
commits. In this change, we use the headline comment of the pull
request as the commit message when it is a squash merge.
Thanks to @zeripath for suggesting the idea.
Fixes #12365
Co-authored-by: Mura Li <typeless@users.noreply.github.com>
-rw-r--r-- | routers/repo/pull.go | 2 | ||||
-rw-r--r-- | services/pull/pull.go | 30 |
2 files changed, 10 insertions, 22 deletions
diff --git a/routers/repo/pull.go b/routers/repo/pull.go index 442379c43b..b3a1478884 100644 --- a/routers/repo/pull.go +++ b/routers/repo/pull.go @@ -440,7 +440,7 @@ func PrepareViewPullInfo(ctx *context.Context, issue *models.Issue) *git.Compare ctx.ServerError("IsUserAllowedToUpdate", err) return nil } - ctx.Data["GetCommitMessages"] = pull_service.GetCommitMessages(pull) + ctx.Data["GetCommitMessages"] = pull_service.GetSquashMergeCommitMessages(pull) } sha, err := baseGitRepo.GetRefCommitID(pull.GetGitRefName()) diff --git a/services/pull/pull.go b/services/pull/pull.go index 499bafff1e..99db078420 100644 --- a/services/pull/pull.go +++ b/services/pull/pull.go @@ -502,8 +502,8 @@ func CloseRepoBranchesPulls(doer *models.User, repo *models.Repository) error { return nil } -// GetCommitMessages returns the commit messages between head and merge base (if there is one) -func GetCommitMessages(pr *models.PullRequest) string { +// GetSquashMergeCommitMessages returns the commit messages between head and merge base (if there is one) +func GetSquashMergeCommitMessages(pr *models.PullRequest) string { if err := pr.LoadIssue(); err != nil { log.Error("Cannot load issue %d for PR id %d: Error: %v", pr.IssueID, pr.ID, err) return "" @@ -550,34 +550,22 @@ func GetCommitMessages(pr *models.PullRequest) string { return "" } - maxSize := setting.Repository.PullRequest.DefaultMergeMessageSize - posterSig := pr.Issue.Poster.NewGitSig().String() authorsMap := map[string]bool{} authors := make([]string, 0, list.Len()) stringBuilder := strings.Builder{} + + stringBuilder.WriteString(pr.Issue.Content) + if stringBuilder.Len() > 0 { + stringBuilder.WriteRune('\n') + stringBuilder.WriteRune('\n') + } + // commits list is in reverse chronological order element := list.Back() for element != nil { commit := element.Value.(*git.Commit) - - if maxSize < 0 || stringBuilder.Len() < maxSize { - toWrite := []byte(commit.CommitMessage) - if len(toWrite) > maxSize-stringBuilder.Len() && maxSize > -1 { - toWrite = append(toWrite[:maxSize-stringBuilder.Len()], "..."...) - } - if _, err := stringBuilder.Write(toWrite); err != nil { - log.Error("Unable to write commit message Error: %v", err) - return "" - } - - if _, err := stringBuilder.WriteRune('\n'); err != nil { - log.Error("Unable to write commit message Error: %v", err) - return "" - } - } - authorString := commit.Author.String() if !authorsMap[authorString] && authorString != posterSig { authors = append(authors, authorString) |