@@ -139,13 +139,13 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
139
139
DockerRepository : c .config .Changelog .Docker .Repository ,
140
140
}
141
141
142
- template := defaultCommitListSubTemplate + defaultChangelog
142
+ chglogTemplate := defaultCommitListSubTemplate + defaultChangelog
143
143
if c .config .Changelog .TemplatePath != "" {
144
144
content , err := ioutil .ReadFile (c .config .Changelog .TemplatePath )
145
145
if err != nil {
146
146
return nil , err
147
147
}
148
- template = string (content )
148
+ chglogTemplate = string (content )
149
149
}
150
150
151
151
templateTitle := defaultChangelogTitle
@@ -154,27 +154,30 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
154
154
}
155
155
156
156
log .Debugf ("Render title" )
157
- renderedTitle , err := generateTemplate (templateTitle , changelogContent )
157
+ renderedTitle , err := generateTemplate (templateTitle , changelogContent , nil )
158
158
if err != nil {
159
159
return nil , err
160
160
}
161
161
162
162
log .Debugf ("Render commits" )
163
- renderedCommitList , err := generateTemplate (defaultCommitList , commitsContent )
163
+ renderedCommitList , err := generateTemplate (defaultCommitList , commitsContent , nil )
164
164
if err != nil {
165
165
return nil , err
166
166
}
167
167
168
168
log .Tracef ("Commits %s" , renderedCommitList )
169
169
changelogContent .Commits = renderedCommitList
170
170
171
+ extraFuncMap := template.FuncMap {
172
+ "commitUrl" : func () string {return templateConfig .CommitURL },
173
+ }
171
174
log .Debugf ("Render changelog" )
172
- renderedContent , err := generateTemplate (template , changelogContent )
175
+ renderedContent , err := generateTemplate (chglogTemplate , changelogContent , extraFuncMap )
173
176
174
177
return & shared.GeneratedChangelog {Title : renderedTitle , Content : renderedContent }, err
175
178
}
176
179
177
- func generateTemplate (text string , values interface {}) (string , error ) {
180
+ func generateTemplate (text string , values interface {}, extraFuncMap template. FuncMap ) (string , error ) {
178
181
179
182
funcMap := template.FuncMap {
180
183
"replace" : replace ,
@@ -184,6 +187,10 @@ func generateTemplate(text string, values interface{}) (string, error) {
184
187
"addPrefixToLines" : addPrefixToLines ,
185
188
}
186
189
190
+ for k , v := range extraFuncMap {
191
+ funcMap [k ] = v
192
+ }
193
+
187
194
var tpl bytes.Buffer
188
195
tmpl , err := template .New ("template" ).Funcs (funcMap ).Parse (text )
189
196
if err != nil {
0 commit comments