diff --git a/internal/pipe/scoop/scoop.go b/internal/pipe/scoop/scoop.go index 387ac9e17..35f26c728 100644 --- a/internal/pipe/scoop/scoop.go +++ b/internal/pipe/scoop/scoop.go @@ -54,6 +54,10 @@ func (Pipe) Default(ctx *context.Context) error { ctx.Config.Scoop.CommitAuthor.Email = "goreleaser@carlosbecker.com" } + if ctx.Config.Scoop.CommitMessageTemplate == "" { + ctx.Config.Scoop.CommitMessageTemplate = "Scoop update for {{ .ProjectName }} version {{ .Tag }}" + } + return nil } @@ -104,13 +108,20 @@ func doRun(ctx *context.Context, client client.Client) error { if ctx.Config.Release.Disable { return pipe.Skip("release is disabled") } + + commitMessage, err := tmpl.New(ctx). + Apply(ctx.Config.Scoop.CommitMessageTemplate) + if err != nil { + return err + } + return client.CreateFile( ctx, ctx.Config.Scoop.CommitAuthor, ctx.Config.Scoop.Bucket, content.Bytes(), path, - fmt.Sprintf("Scoop update for %s version %s", ctx.Config.ProjectName, ctx.Git.CurrentTag), + commitMessage, ) } diff --git a/internal/pipe/scoop/scoop_test.go b/internal/pipe/scoop/scoop_test.go index 6c901a886..7e4d62753 100644 --- a/internal/pipe/scoop/scoop_test.go +++ b/internal/pipe/scoop/scoop_test.go @@ -57,6 +57,7 @@ func TestDefault(t *testing.T) { assert.Equal(t, ctx.Config.ProjectName, ctx.Config.Scoop.Name) assert.NotEmpty(t, ctx.Config.Scoop.CommitAuthor.Name) assert.NotEmpty(t, ctx.Config.Scoop.CommitAuthor.Email) + assert.NotEmpty(t, ctx.Config.Scoop.CommitMessageTemplate) } func Test_doRun(t *testing.T) { @@ -736,6 +737,7 @@ func Test_doRun(t *testing.T) { ctx.Artifacts.Add(a) } require.NoError(t, Pipe{}.Default(ctx)) + tt.assertError(t, doRun(ctx, tt.args.client)) }) } @@ -819,10 +821,11 @@ func Test_buildManifest(t *testing.T) { Owner: "test", Name: "test", }, - Description: "A run pipe test formula", - Homepage: "https://github.com/goreleaser", - URLTemplate: "http://github.mycompany.com/foo/bar/{{ .Tag }}/{{ .ArtifactName }}", - Persist: []string{"data.cfg", "etc"}, + Description: "A run pipe test formula", + Homepage: "https://github.com/goreleaser", + URLTemplate: "http://github.mycompany.com/foo/bar/{{ .Tag }}/{{ .ArtifactName }}", + CommitMessageTemplate: "chore(scoop): update {{ .ProjectName }} version {{ .Tag }}", + Persist: []string{"data.cfg", "etc"}, }, }, }, @@ -859,10 +862,11 @@ func Test_buildManifest(t *testing.T) { Owner: "test", Name: "test", }, - Description: "A run pipe test formula", - Homepage: "https://gitlab.com/goreleaser", - URLTemplate: "http://gitlab.mycompany.com/foo/bar/uploads/{{ .ArtifactUploadHash }}/{{ .ArtifactName }}", - Persist: []string{"data.cfg", "etc"}, + Description: "A run pipe test formula", + Homepage: "https://gitlab.com/goreleaser", + URLTemplate: "http://gitlab.mycompany.com/foo/bar/uploads/{{ .ArtifactUploadHash }}/{{ .ArtifactName }}", + CommitMessageTemplate: "chore(scoop): update {{ .ProjectName }} version {{ .Tag }}", + Persist: []string{"data.cfg", "etc"}, }, }, }, @@ -958,10 +962,11 @@ func TestWrapInDirectory(t *testing.T) { Owner: "test", Name: "test", }, - Description: "A run pipe test formula", - Homepage: "https://gitlab.com/goreleaser", - URLTemplate: "http://gitlab.mycompany.com/foo/bar/uploads/{{ .ArtifactUploadHash }}/{{ .ArtifactName }}", - Persist: []string{"data.cfg", "etc"}, + Description: "A run pipe test formula", + Homepage: "https://gitlab.com/goreleaser", + URLTemplate: "http://gitlab.mycompany.com/foo/bar/uploads/{{ .ArtifactUploadHash }}/{{ .ArtifactName }}", + CommitMessageTemplate: "chore(scoop): update {{ .ProjectName }} version {{ .Tag }}", + Persist: []string{"data.cfg", "etc"}, }, }, } diff --git a/pkg/config/config.go b/pkg/config/config.go index 53715ef45..8e937c10f 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -73,15 +73,16 @@ type Homebrew struct { // Scoop contains the scoop.sh section type Scoop struct { - Name string `yaml:",omitempty"` - Bucket Repo `yaml:",omitempty"` - CommitAuthor CommitAuthor `yaml:"commit_author,omitempty"` - Homepage string `yaml:",omitempty"` - Description string `yaml:",omitempty"` - License string `yaml:",omitempty"` - URLTemplate string `yaml:"url_template,omitempty"` - Persist []string `yaml:"persist,omitempty"` - SkipUpload string `yaml:"skip_upload,omitempty"` + Name string `yaml:",omitempty"` + Bucket Repo `yaml:",omitempty"` + CommitAuthor CommitAuthor `yaml:"commit_author,omitempty"` + CommitMessageTemplate string `yaml:"commit_msg_template,omitempty"` + Homepage string `yaml:",omitempty"` + Description string `yaml:",omitempty"` + License string `yaml:",omitempty"` + URLTemplate string `yaml:"url_template,omitempty"` + Persist []string `yaml:"persist,omitempty"` + SkipUpload string `yaml:"skip_upload,omitempty"` } // CommitAuthor is the author of a Git commit diff --git a/www/content/scoop.md b/www/content/scoop.md index 401bfbe0d..e443e00e6 100644 --- a/www/content/scoop.md +++ b/www/content/scoop.md @@ -31,6 +31,9 @@ scoop: name: goreleaserbot email: goreleaser@carlosbecker.com + # The project name and current git tag are used in the format string. + commit_msg_template: "Scoop update for {{ .ProjectName }} version {{ .Tag }}" + # Your app's homepage. # Default is empty. homepage: "https://example.com/"