1
0
mirror of https://github.com/goreleaser/goreleaser.git synced 2025-04-13 11:50:34 +02:00

refactor: improve scmChangeloger

Signed-off-by: Carlos A Becker <caarlos0@gmail.com>
This commit is contained in:
Carlos A Becker 2021-10-04 23:35:28 -03:00
parent bdab7f0ac9
commit ced5347388
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
2 changed files with 28 additions and 14 deletions

View File

@ -185,16 +185,30 @@ func getChangeloger(ctx *context.Context) (changeloger, error) {
case "":
return gitChangeloger{}, nil
case "github":
client, err := client.New(ctx)
if err != nil {
return nil, err
}
return &scmChangeloger{client: client}, nil
return newGitHubChangeloger(ctx)
default:
return nil, fmt.Errorf("invalid changelog.use: %q", ctx.Config.Changelog.Use)
}
}
func newGitHubChangeloger(ctx *context.Context) (changeloger, error) {
cli, err := client.New(ctx)
if err != nil {
return nil, err
}
repo, err := git.ExtractRepoFromConfig()
if err != nil {
return nil, err
}
return &scmChangeloger{
client: cli,
repo: client.Repo{
Owner: repo.Owner,
Name: repo.Name,
},
}, nil
}
func previous(tag string) (result string, err error) {
if tag := os.Getenv("GORELEASER_PREVIOUS_TAG"); tag != "" {
return tag, nil
@ -245,15 +259,9 @@ func (g gitChangeloger) Log(ctx *context.Context, prev, current string) (string,
type scmChangeloger struct {
client client.Client
repo client.Repo
}
func (c *scmChangeloger) Log(ctx *context.Context, prev, current string) (string, error) {
repo, err := git.ExtractRepoFromConfig()
if err != nil {
return "", err
}
return c.client.Changelog(ctx, client.Repo{
Owner: repo.Owner,
Name: repo.Name,
}, prev, current)
return c.client.Changelog(ctx, c.repo, prev, current)
}

View File

@ -437,7 +437,13 @@ func TestGetChangelogGitHub(t *testing.T) {
},
})
l := scmChangeloger{client: client.NewUnauthenticatedGitHub()}
l := scmChangeloger{
client: client.NewUnauthenticatedGitHub(),
repo: client.Repo{
Owner: "goreleaser",
Name: "goreleaser",
},
}
log, err := l.Log(ctx, "v0.180.1", "v0.180.2")
require.NoError(t, err)
require.Equal(t, "- c90f1085f255d0af0b055160bfff5ee40f47af79: fix: do not skip any defaults (#2521) (@caarlos0)", log)