Skip to content

Commit 485a27c

Browse files
committed
Update
1 parent 11c3f7f commit 485a27c

File tree

3 files changed

+39
-44
lines changed

3 files changed

+39
-44
lines changed

routers/web/repo/issue_view.go

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,6 @@ func ViewIssue(ctx *context.Context) {
391391
preparePullViewReviewAndMerge,
392392
}
393393

394-
if issue.IsPull {
395-
prepareFuncs = append(prepareFuncs, preparePullViewSquashMergeMsg)
396-
}
397-
398394
for _, prepareFunc := range prepareFuncs {
399395
prepareFunc(ctx, issue)
400396
if ctx.Written() {
@@ -446,7 +442,6 @@ func ViewPullMergeBox(ctx *context.Context) {
446442
}
447443
preparePullViewPullInfo(ctx, issue)
448444
preparePullViewReviewAndMerge(ctx, issue)
449-
preparePullViewSquashMergeMsg(ctx, issue)
450445
ctx.Data["PullMergeBoxReloading"] = issue.PullRequest.IsChecking()
451446

452447
// TODO: it should use a dedicated struct to render the pull merge box, to make sure all data is prepared correctly
@@ -933,6 +928,24 @@ func preparePullViewReviewAndMerge(ctx *context.Context, issue *issues_model.Iss
933928
ctx.Data["DefaultMergeMessage"] = defaultMergeMessage
934929
ctx.Data["DefaultMergeBody"] = defaultMergeBody
935930

931+
defaultSquashMergeMessage, defaultSquashMergeBody, err := pull_service.GetDefaultMergeMessage(ctx, ctx.Repo.GitRepo, pull, repo_model.MergeStyleSquash)
932+
if err != nil {
933+
ctx.ServerError("GetDefaultSquashMergeMessage", err)
934+
return
935+
}
936+
_, coAuthors := pull_service.GetSquashMergeCommitMessages(ctx, pull)
937+
938+
defaultSquashMergeBody += fmt.Sprintf("\n%s", coAuthors)
939+
940+
commitsMsg, err := getPullViewSquashMergeCommits(ctx, issue)
941+
if err != nil {
942+
ctx.ServerError("getIssueViewSquashMergeCommits", err)
943+
return
944+
}
945+
946+
ctx.Data["DefaultSquashMergeMessage"] = defaultSquashMergeMessage
947+
ctx.Data["DefaultSquashMergeBody"] = fmt.Sprintf("--------------------\n%s\n%s", commitsMsg, defaultSquashMergeBody)
948+
936949
pb, err := git_model.GetFirstMatchProtectedBranchRule(ctx, pull.BaseRepoID, pull.BaseBranch)
937950
if err != nil {
938951
ctx.ServerError("LoadProtectedBranch", err)
@@ -1023,22 +1036,3 @@ func getPullViewSquashMergeCommits(ctx *context.Context, issue *issues_model.Iss
10231036

10241037
return commits, nil
10251038
}
1026-
1027-
func preparePullViewSquashMergeMsg(ctx *context.Context, issue *issues_model.Issue) {
1028-
pull := issue.PullRequest
1029-
1030-
defaultSquashMergeMessage, defaultSquashMergeBody, err := pull_service.GetDefaultMergeMessage(ctx, ctx.Repo.GitRepo, pull, repo_model.MergeStyleSquash)
1031-
if err != nil {
1032-
ctx.ServerError("GetDefaultSquashMergeMessage", err)
1033-
return
1034-
}
1035-
1036-
commitsMsg, err := getPullViewSquashMergeCommits(ctx, issue)
1037-
if err != nil {
1038-
ctx.ServerError("getIssueViewSquashMergeCommits", err)
1039-
return
1040-
}
1041-
1042-
ctx.Data["DefaultSquashMergeMessage"] = defaultSquashMergeMessage
1043-
ctx.Data["DefaultSquashMergeBody"] = fmt.Sprintf("--------------------\n%s\n%s", commitsMsg, defaultSquashMergeBody)
1044-
}

routers/web/repo/pull.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ func prepareViewPullInfo(ctx *context.Context, issue *issues_model.Issue) *git.C
430430
ctx.ServerError("IsUserAllowedToUpdate", err)
431431
return nil
432432
}
433-
ctx.Data["GetCommitMessages"] = pull_service.GetSquashMergeCommitMessages(ctx, pull)
433+
ctx.Data["GetCommitMessages"], _ = pull_service.GetSquashMergeCommitMessages(ctx, pull)
434434
} else {
435435
ctx.Data["GetCommitMessages"] = ""
436436
}

services/pull/pull.go

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -784,30 +784,30 @@ func CloseRepoBranchesPulls(ctx context.Context, doer *user_model.User, repo *re
784784
var commitMessageTrailersPattern = regexp.MustCompile(`(?:^|\n\n)(?:[\w-]+[ \t]*:[^\n]+\n*(?:[ \t]+[^\n]+\n*)*)+$`)
785785

786786
// GetSquashMergeCommitMessages returns the commit messages between head and merge base (if there is one)
787-
func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequest) string {
787+
func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequest) (string, string) {
788788
if err := pr.LoadIssue(ctx); err != nil {
789789
log.Error("Cannot load issue %d for PR id %d: Error: %v", pr.IssueID, pr.ID, err)
790-
return ""
790+
return "", ""
791791
}
792792

793793
if err := pr.Issue.LoadPoster(ctx); err != nil {
794794
log.Error("Cannot load poster %d for pr id %d, index %d Error: %v", pr.Issue.PosterID, pr.ID, pr.Index, err)
795-
return ""
795+
return "", ""
796796
}
797797

798798
if pr.HeadRepo == nil {
799799
var err error
800800
pr.HeadRepo, err = repo_model.GetRepositoryByID(ctx, pr.HeadRepoID)
801801
if err != nil {
802802
log.Error("GetRepositoryByIdCtx[%d]: %v", pr.HeadRepoID, err)
803-
return ""
803+
return "", ""
804804
}
805805
}
806806

807807
gitRepo, closer, err := gitrepo.RepositoryFromContextOrOpen(ctx, pr.HeadRepo)
808808
if err != nil {
809809
log.Error("Unable to open head repository: Error: %v", err)
810-
return ""
810+
return "", ""
811811
}
812812
defer closer.Close()
813813

@@ -818,34 +818,35 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ
818818
pr.HeadCommitID, err = gitRepo.GetRefCommitID(pr.GetGitHeadRefName())
819819
if err != nil {
820820
log.Error("Unable to get head commit: %s Error: %v", pr.GetGitHeadRefName(), err)
821-
return ""
821+
return "", ""
822822
}
823823
headCommit, err = gitRepo.GetCommit(pr.HeadCommitID)
824824
}
825825
if err != nil {
826826
log.Error("Unable to get head commit: %s Error: %v", pr.HeadBranch, err)
827-
return ""
827+
return "", ""
828828
}
829829

830830
mergeBase, err := gitRepo.GetCommit(pr.MergeBase)
831831
if err != nil {
832832
log.Error("Unable to get merge base commit: %s Error: %v", pr.MergeBase, err)
833-
return ""
833+
return "", ""
834834
}
835835

836836
limit := setting.Repository.PullRequest.DefaultMergeMessageCommitsLimit
837837

838838
commits, err := gitRepo.CommitsBetweenLimit(headCommit, mergeBase, limit, 0)
839839
if err != nil {
840840
log.Error("Unable to get commits between: %s %s Error: %v", pr.HeadBranch, pr.MergeBase, err)
841-
return ""
841+
return "", ""
842842
}
843843

844844
posterSig := pr.Issue.Poster.NewGitSig().String()
845845

846846
uniqueAuthors := make(container.Set[string])
847847
authors := make([]string, 0, len(commits))
848848
stringBuilder := strings.Builder{}
849+
coAuthorStringBuilder := strings.Builder{}
849850

850851
if !setting.Repository.PullRequest.PopulateSquashCommentWithCommitMessages {
851852
message := strings.TrimSpace(pr.Issue.Content)
@@ -879,12 +880,12 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ
879880
}
880881
if _, err := stringBuilder.Write(toWrite); err != nil {
881882
log.Error("Unable to write commit message Error: %v", err)
882-
return ""
883+
return "", ""
883884
}
884885

885886
if _, err := stringBuilder.WriteRune('\n'); err != nil {
886887
log.Error("Unable to write commit message Error: %v", err)
887-
return ""
888+
return "", ""
888889
}
889890
}
890891
}
@@ -908,7 +909,7 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ
908909
commits, err := gitRepo.CommitsBetweenLimit(headCommit, mergeBase, limit, skip)
909910
if err != nil {
910911
log.Error("Unable to get commits between: %s %s Error: %v", pr.HeadBranch, pr.MergeBase, err)
911-
return ""
912+
return "", ""
912913
}
913914
if len(commits) == 0 {
914915
break
@@ -927,21 +928,21 @@ func GetSquashMergeCommitMessages(ctx context.Context, pr *issues_model.PullRequ
927928
}
928929

929930
for _, author := range authors {
930-
if _, err := stringBuilder.WriteString("Co-authored-by: "); err != nil {
931+
if _, err := coAuthorStringBuilder.WriteString("Co-authored-by: "); err != nil {
931932
log.Error("Unable to write to string builder Error: %v", err)
932-
return ""
933+
return "", ""
933934
}
934-
if _, err := stringBuilder.WriteString(author); err != nil {
935+
if _, err := coAuthorStringBuilder.WriteString(author); err != nil {
935936
log.Error("Unable to write to string builder Error: %v", err)
936-
return ""
937+
return "", ""
937938
}
938-
if _, err := stringBuilder.WriteRune('\n'); err != nil {
939+
if _, err := coAuthorStringBuilder.WriteRune('\n'); err != nil {
939940
log.Error("Unable to write to string builder Error: %v", err)
940-
return ""
941+
return "", ""
941942
}
942943
}
943944

944-
return stringBuilder.String()
945+
return stringBuilder.String(), coAuthorStringBuilder.String()
945946
}
946947

947948
// GetIssuesAllCommitStatus returns a map of issue ID to a list of all statuses for the most recent commit as well as a map of issue ID to only the commit's latest status

0 commit comments

Comments
 (0)