@@ -39,19 +39,19 @@ import (
3939)
4040
4141// GetDefaultMergeMessage returns default message used when merging pull request
42- func GetDefaultMergeMessage (ctx context.Context , baseGitRepo * git.Repository , pr * issues_model.PullRequest , mergeStyle repo_model.MergeStyle ) (string , error ) {
42+ func GetDefaultMergeMessage (ctx context.Context , baseGitRepo * git.Repository , pr * issues_model.PullRequest , mergeStyle repo_model.MergeStyle ) (message , body string , err error ) {
4343 if err := pr .LoadHeadRepo (ctx ); err != nil {
44- return "" , err
44+ return "" , "" , err
4545 }
4646 if err := pr .LoadBaseRepo (ctx ); err != nil {
47- return "" , err
47+ return "" , "" , err
4848 }
4949 if pr .BaseRepo == nil {
50- return "" , repo_model.ErrRepoNotExist {ID : pr .BaseRepoID }
50+ return "" , "" , repo_model.ErrRepoNotExist {ID : pr .BaseRepoID }
5151 }
5252
5353 if err := pr .LoadIssue (ctx ); err != nil {
54- return "" , err
54+ return "" , "" , err
5555 }
5656
5757 isExternalTracker := pr .BaseRepo .UnitEnabled (ctx , unit .TypeExternalTracker )
@@ -64,12 +64,12 @@ func GetDefaultMergeMessage(ctx context.Context, baseGitRepo *git.Repository, pr
6464 templateFilepath := fmt .Sprintf (".gitea/default_merge_message/%s_TEMPLATE.md" , strings .ToUpper (string (mergeStyle )))
6565 commit , err := baseGitRepo .GetBranchCommit (pr .BaseRepo .DefaultBranch )
6666 if err != nil {
67- return "" , err
67+ return "" , "" , err
6868 }
6969 templateContent , err := commit .GetFileContent (templateFilepath , setting .Repository .PullRequest .DefaultMergeMessageSize )
7070 if err != nil {
7171 if ! git .IsErrNotExist (err ) {
72- return "" , err
72+ return "" , "" , err
7373 }
7474 } else {
7575 vars := map [string ]string {
@@ -107,27 +107,35 @@ func GetDefaultMergeMessage(ctx context.Context, baseGitRepo *git.Repository, pr
107107 vars ["ClosingIssues" ] = ""
108108 }
109109 }
110-
111- return os .Expand (templateContent , func (s string ) string {
112- return vars [s ]
113- }), nil
110+ message , body = expandDefaultMergeMessage (templateContent , vars )
111+ return message , body , nil
114112 }
115113 }
116114
117115 // Squash merge has a different from other styles.
118116 if mergeStyle == repo_model .MergeStyleSquash {
119- return fmt .Sprintf ("%s (%s%d)" , pr .Issue .Title , issueReference , pr .Issue .Index ), nil
117+ return fmt .Sprintf ("%s (%s%d)" , pr .Issue .Title , issueReference , pr .Issue .Index ), "" , nil
120118 }
121119
122120 if pr .BaseRepoID == pr .HeadRepoID {
123- return fmt .Sprintf ("Merge pull request '%s' (%s%d) from %s into %s" , pr .Issue .Title , issueReference , pr .Issue .Index , pr .HeadBranch , pr .BaseBranch ), nil
121+ return fmt .Sprintf ("Merge pull request '%s' (%s%d) from %s into %s" , pr .Issue .Title , issueReference , pr .Issue .Index , pr .HeadBranch , pr .BaseBranch ), "" , nil
124122 }
125123
126124 if pr .HeadRepo == nil {
127- return fmt .Sprintf ("Merge pull request '%s' (%s%d) from <deleted>:%s into %s" , pr .Issue .Title , issueReference , pr .Issue .Index , pr .HeadBranch , pr .BaseBranch ), nil
125+ return fmt .Sprintf ("Merge pull request '%s' (%s%d) from <deleted>:%s into %s" , pr .Issue .Title , issueReference , pr .Issue .Index , pr .HeadBranch , pr .BaseBranch ), "" , nil
128126 }
129127
130- return fmt .Sprintf ("Merge pull request '%s' (%s%d) from %s:%s into %s" , pr .Issue .Title , issueReference , pr .Issue .Index , pr .HeadRepo .FullName (), pr .HeadBranch , pr .BaseBranch ), nil
128+ return fmt .Sprintf ("Merge pull request '%s' (%s%d) from %s:%s into %s" , pr .Issue .Title , issueReference , pr .Issue .Index , pr .HeadRepo .FullName (), pr .HeadBranch , pr .BaseBranch ), "" , nil
129+ }
130+
131+ func expandDefaultMergeMessage (template string , vars map [string ]string ) (message , body string ) {
132+ message = strings .TrimSpace (template )
133+ if splits := strings .SplitN (message , "\n " , 2 ); len (splits ) == 2 {
134+ message = splits [0 ]
135+ body = strings .TrimSpace (splits [1 ])
136+ }
137+ mapping := func (s string ) string { return vars [s ] }
138+ return os .Expand (message , mapping ), os .Expand (body , mapping )
131139}
132140
133141// Merge merges pull request to base repository.
0 commit comments