@@ -39,19 +39,19 @@ import (
39
39
)
40
40
41
41
// 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 ) {
43
43
if err := pr .LoadHeadRepo (ctx ); err != nil {
44
- return "" , err
44
+ return "" , "" , err
45
45
}
46
46
if err := pr .LoadBaseRepo (ctx ); err != nil {
47
- return "" , err
47
+ return "" , "" , err
48
48
}
49
49
if pr .BaseRepo == nil {
50
- return "" , repo_model.ErrRepoNotExist {ID : pr .BaseRepoID }
50
+ return "" , "" , repo_model.ErrRepoNotExist {ID : pr .BaseRepoID }
51
51
}
52
52
53
53
if err := pr .LoadIssue (ctx ); err != nil {
54
- return "" , err
54
+ return "" , "" , err
55
55
}
56
56
57
57
isExternalTracker := pr .BaseRepo .UnitEnabled (ctx , unit .TypeExternalTracker )
@@ -64,12 +64,12 @@ func GetDefaultMergeMessage(ctx context.Context, baseGitRepo *git.Repository, pr
64
64
templateFilepath := fmt .Sprintf (".gitea/default_merge_message/%s_TEMPLATE.md" , strings .ToUpper (string (mergeStyle )))
65
65
commit , err := baseGitRepo .GetBranchCommit (pr .BaseRepo .DefaultBranch )
66
66
if err != nil {
67
- return "" , err
67
+ return "" , "" , err
68
68
}
69
69
templateContent , err := commit .GetFileContent (templateFilepath , setting .Repository .PullRequest .DefaultMergeMessageSize )
70
70
if err != nil {
71
71
if ! git .IsErrNotExist (err ) {
72
- return "" , err
72
+ return "" , "" , err
73
73
}
74
74
} else {
75
75
vars := map [string ]string {
@@ -107,27 +107,35 @@ func GetDefaultMergeMessage(ctx context.Context, baseGitRepo *git.Repository, pr
107
107
vars ["ClosingIssues" ] = ""
108
108
}
109
109
}
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
114
112
}
115
113
}
116
114
117
115
// Squash merge has a different from other styles.
118
116
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
120
118
}
121
119
122
120
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
124
122
}
125
123
126
124
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
128
126
}
129
127
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 )
131
139
}
132
140
133
141
// Merge merges pull request to base repository.
0 commit comments