forked from goreleaser/goreleaser
/
body.go
43 lines (35 loc) · 896 Bytes
/
body.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package release
import (
"bytes"
"text/template"
"github.com/goreleaser/goreleaser/context"
"github.com/goreleaser/goreleaser/internal/artifact"
)
const bodyTemplateText = `{{ .ReleaseNotes }}
{{- with .DockerImages }}
## Docker images
{{ range $element := . }}
- ` + "`docker pull {{ . -}}`" + `
{{- end -}}
{{- end }}
`
var bodyTemplate *template.Template
func init() {
bodyTemplate = template.Must(template.New("release").Parse(bodyTemplateText))
}
func describeBody(ctx *context.Context) (bytes.Buffer, error) {
var out bytes.Buffer
// nolint:prealloc
var dockers []string
for _, a := range ctx.Artifacts.Filter(artifact.ByType(artifact.DockerImage)).List() {
dockers = append(dockers, a.Name)
}
err := bodyTemplate.Execute(&out, struct {
ReleaseNotes string
DockerImages []string
}{
ReleaseNotes: ctx.ReleaseNotes,
DockerImages: dockers,
})
return out, err
}