feat(changelog): add a function in the funcMap to return commit URL

This commit is contained in:
maulik13
2021-02-22 21:59:07 +01:00
committed by Felix Wiedmann
parent deed3a630e
commit 47a54436f5

View File

@@ -139,13 +139,13 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
DockerRepository: c.config.Changelog.Docker.Repository, DockerRepository: c.config.Changelog.Docker.Repository,
} }
template := defaultCommitListSubTemplate + defaultChangelog chglogTemplate := defaultCommitListSubTemplate + defaultChangelog
if c.config.Changelog.TemplatePath != "" { if c.config.Changelog.TemplatePath != "" {
content, err := ioutil.ReadFile(c.config.Changelog.TemplatePath) content, err := ioutil.ReadFile(c.config.Changelog.TemplatePath)
if err != nil { if err != nil {
return nil, err return nil, err
} }
template = string(content) chglogTemplate = string(content)
} }
templateTitle := defaultChangelogTitle templateTitle := defaultChangelogTitle
@@ -154,13 +154,13 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
} }
log.Debugf("Render title") log.Debugf("Render title")
renderedTitle, err := generateTemplate(templateTitle, changelogContent) renderedTitle, err := generateTemplate(templateTitle, changelogContent, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
log.Debugf("Render commits") log.Debugf("Render commits")
renderedCommitList, err := generateTemplate(defaultCommitList, commitsContent) renderedCommitList, err := generateTemplate(defaultCommitList, commitsContent, nil)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -168,13 +168,16 @@ func (c *Changelog) GenerateChangelog(templateConfig shared.ChangelogTemplateCon
log.Tracef("Commits %s", renderedCommitList) log.Tracef("Commits %s", renderedCommitList)
changelogContent.Commits = renderedCommitList changelogContent.Commits = renderedCommitList
extraFuncMap := template.FuncMap {
"commitUrl": func() string {return templateConfig.CommitURL},
}
log.Debugf("Render changelog") log.Debugf("Render changelog")
renderedContent, err := generateTemplate(template, changelogContent) renderedContent, err := generateTemplate(chglogTemplate, changelogContent, extraFuncMap)
return &shared.GeneratedChangelog{Title: renderedTitle, Content: renderedContent}, err return &shared.GeneratedChangelog{Title: renderedTitle, Content: renderedContent}, err
} }
func generateTemplate(text string, values interface{}) (string, error) { func generateTemplate(text string, values interface{}, extraFuncMap template.FuncMap) (string, error) {
funcMap := template.FuncMap{ funcMap := template.FuncMap{
"replace": replace, "replace": replace,
@@ -184,6 +187,10 @@ func generateTemplate(text string, values interface{}) (string, error) {
"addPrefixToLines": addPrefixToLines, "addPrefixToLines": addPrefixToLines,
} }
for k, v := range extraFuncMap {
funcMap[k] = v
}
var tpl bytes.Buffer var tpl bytes.Buffer
tmpl, err := template.New("template").Funcs(funcMap).Parse(text) tmpl, err := template.New("template").Funcs(funcMap).Parse(text)
if err != nil { if err != nil {