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