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:
parent
bdab7f0ac9
commit
ced5347388
@ -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)
|
||||
}
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user