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  }