You've already forked go-semantic-release
feat(changelog): add a function in the funcMap to return commit URL
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user