blob: 265aeb63592aa310d9527a26be185d8211f7e7be [file] [log] [blame]
package commit_msg
import "text/template"
const (
// TmplNameDefault is the name of the default commit message template which
// is suitable for most rollers.
TmplNameDefault = "default"
)
var (
// tmplNameCommitMsg is the name of the overall commit message template.
tmplNameCommitMsg = "commitMsg"
// tmplCommitMsg utilizes the skeleton with the default block definitions.
// It is the primary entry point which is executed for every commit message.
// Custom commit messages may modify it by overriding any of the blocks
// defined above, including the commitMsg itself for a completely custom
// message.
tmplCommitMsg = template.Must(parseCommitMsgTemplate(tmplFooterDefault, tmplNameCommitMsg, `
{{- define "subject" }}{{ template "defaultSubject" . }}{{ end -}}
{{- define "revisions" }}{{ template "defaultRevisions" . }}{{ end -}}
{{- define "boilerplate" }}{{ template "defaultBoilerplate" . }}{{ end -}}
{{- define "footer" }}{{ template "defaultFooter" . }}{{ end -}}
{{ template "skeleton" . }}`))
tmplNameSkeleton = "skeleton"
// tmplSkeleton defines the basic structure for all commit messages.
tmplSkeleton = template.Must(parseCommitMsgTemplate(nil, tmplNameSkeleton,
`{{ template "subject" . }}
{{ template "revisions" . }}
{{ template "boilerplate" . }}
{{ template "footer" . }}
`))
tmplNameSubjectDefault = "defaultSubject"
tmplSubjectDefault = template.Must(parseCommitMsgTemplate(tmplSkeleton, tmplNameSubjectDefault,
`Roll {{ .ChildName }} from {{ .RollingFrom }} to {{ .RollingTo }}{{ if .IncludeRevisionCount}} ({{ len .Revisions }} revision{{ if gt (len .Revisions) 1 }}s{{ end }}){{ end }}`))
tmplNameRevisionsDefault = "defaultRevisions"
tmplRevisionsDefault = template.Must(parseCommitMsgTemplate(tmplSubjectDefault, tmplNameRevisionsDefault,
`{{ if .ChildLogURL }}{{ .ChildLogURL }}
{{ end -}}
{{- if .IncludeLog -}}
{{ range .Revisions }}{{ .Timestamp.Format "2006-01-02" }} {{ .Author }} {{ .Description }}
{{ end }}
{{ end -}}
{{ if len .TransitiveDeps -}}
Also rolling transitive DEPS:
{{ range .TransitiveDeps }} {{ .Dep }} from {{ substr .RollingFrom 0 12 }} to {{ substr .RollingTo 0 12 }}
{{ end }}
{{- end }}`))
tmplNameBoilerplateDefault = "defaultBoilerplate"
tmplBoilerplateDefault = template.Must(parseCommitMsgTemplate(tmplRevisionsDefault, tmplNameBoilerplateDefault,
`If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
{{.ServerURL}}
Please CC {{stringsJoin .Reviewers ","}} on the revert to ensure that a human
is aware of the problem.
{{ if .ChildBugLink -}}To file a bug in {{ .ChildName }}: {{ .ChildBugLink }}{{ end }}
{{ if .ParentBugLink -}}To file a bug in {{ .ParentName }}: {{ .ParentBugLink }}{{ end }}
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md`))
tmplNameFooterDefault = "defaultFooter"
tmplFooterDefault = template.Must(parseCommitMsgTemplate(tmplBoilerplateDefault, tmplNameFooterDefault,
`{{ if .CqExtraTrybots -}}
Cq-Include-Trybots: {{ stringsJoin .CqExtraTrybots ";" }}
{{ end -}}
{{ if .CqDoNotCancelTrybots -}}
Cq-Do-Not-Cancel-Tryjobs: true
{{ end -}}
{{ if .BugProject -}}
Bug: {{ if .Bugs }}{{ stringsJoin .Bugs "," }}{{ else }}None{{ end }}
{{ end -}}
{{ if .IncludeTbrLine -}}
Tbr: {{ stringsJoin .Reviewers "," }}
{{ end -}}
{{ if .IncludeTests -}}
{{ range .Tests }}Test: {{.}}
{{ end -}}
{{- end -}}
{{ if .ExtraFooters -}}
{{ range .ExtraFooters }}{{.}}
{{ end -}}
{{- end -}}
`))
)