Skip to content

Commit 47a5443

Browse files
maulik13fwiedmann
authored andcommitted
feat(changelog): add a function in the funcMap to return commit URL
1 parent deed3a6 commit 47a5443

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

internal/changelog/changelog.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
139139
DockerRepository: c.config.Changelog.Docker.Repository,
140140
}
141141

142-
template := defaultCommitListSubTemplate + defaultChangelog
142+
chglogTemplate := defaultCommitListSubTemplate + defaultChangelog
143143
if c.config.Changelog.TemplatePath != "" {
144144
content, err := ioutil.ReadFile(c.config.Changelog.TemplatePath)
145145
if err != nil {
146146
return nil, err
147147
}
148-
template = string(content)
148+
chglogTemplate = string(content)
149149
}
150150

151151
templateTitle := defaultChangelogTitle
@@ -154,27 +154,30 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
154154
}
155155

156156
log.Debugf("Render title")
157-
renderedTitle, err := generateTemplate(templateTitle, changelogContent)
157+
renderedTitle, err := generateTemplate(templateTitle, changelogContent, nil)
158158
if err != nil {
159159
return nil, err
160160
}
161161

162162
log.Debugf("Render commits")
163-
renderedCommitList, err := generateTemplate(defaultCommitList, commitsContent)
163+
renderedCommitList, err := generateTemplate(defaultCommitList, commitsContent, nil)
164164
if err != nil {
165165
return nil, err
166166
}
167167

168168
log.Tracef("Commits %s", renderedCommitList)
169169
changelogContent.Commits = renderedCommitList
170170

171+
extraFuncMap := template.FuncMap {
172+
"commitUrl": func() string {return templateConfig.CommitURL},
173+
}
171174
log.Debugf("Render changelog")
172-
renderedContent, err := generateTemplate(template, changelogContent)
175+
renderedContent, err := generateTemplate(chglogTemplate, changelogContent, extraFuncMap)
173176

174177
return &shared.GeneratedChangelog{Title: renderedTitle, Content: renderedContent}, err
175178
}
176179

177-
func generateTemplate(text string, values interface{}) (string, error) {
180+
func generateTemplate(text string, values interface{}, extraFuncMap template.FuncMap) (string, error) {
178181

179182
funcMap := template.FuncMap{
180183
"replace": replace,
@@ -184,6 +187,10 @@ func generateTemplate(text string, values interface{}) (string, error) {
184187
"addPrefixToLines": addPrefixToLines,
185188
}
186189

190+
for k, v := range extraFuncMap {
191+
funcMap[k] = v
192+
}
193+
187194
var tpl bytes.Buffer
188195
tmpl, err := template.New("template").Funcs(funcMap).Parse(text)
189196
if err != nil {

0 commit comments

Comments
 (0)