github.com/triarius/goreleaser@v1.12.5/internal/pipe/release/body.go (about) 1 package release 2 3 import ( 4 "bytes" 5 "text/template" 6 7 "github.com/triarius/goreleaser/internal/tmpl" 8 "github.com/triarius/goreleaser/pkg/context" 9 ) 10 11 const bodyTemplateText = `{{ with .Header }}{{ . }}{{ "\n" }}{{ end }} 12 {{- .ReleaseNotes }} 13 {{- with .Footer }}{{ "\n" }}{{ . }}{{ end }} 14 ` 15 16 func describeBody(ctx *context.Context) (bytes.Buffer, error) { 17 var out bytes.Buffer 18 t := tmpl.New(ctx) 19 20 header, err := t.Apply(ctx.Config.Release.Header) 21 if err != nil { 22 return out, err 23 } 24 footer, err := t.Apply(ctx.Config.Release.Footer) 25 if err != nil { 26 return out, err 27 } 28 29 bodyTemplate := template.Must(template.New("release").Parse(bodyTemplateText)) 30 err = bodyTemplate.Execute(&out, struct { 31 Header string 32 Footer string 33 ReleaseNotes string 34 }{ 35 Header: header, 36 Footer: footer, 37 ReleaseNotes: ctx.ReleaseNotes, 38 }) 39 return out, err 40 }