diff --git a/pkg/github/github.go b/pkg/github/github.go index ff8bbc3..2e70e3e 100644 --- a/pkg/github/github.go +++ b/pkg/github/github.go @@ -24,6 +24,7 @@ import ( "github.com/Songmu/retry" "github.com/pkg/errors" + "helm.sh/helm/v3/pkg/chart" "github.com/blang/semver" "github.com/google/go-github/v56/github" @@ -151,9 +152,9 @@ func (c *Client) GetLatestChartRelease(_ context.Context, prefix string) (*Relea } // GenerateReleaseNotes generates the release notes for a release -func (c *Client) GenerateReleaseNotes(_ context.Context, latestRelease *Release, nextRelease string) (string, error) { +func (c *Client) GenerateReleaseNotes(_ context.Context, latestRelease *Release, chart *chart.Chart) (string, error) { notes, _, err := c.Repositories.GenerateReleaseNotes(context.TODO(), c.owner, c.repo, &github.GenerateNotesOptions{ - TagName: nextRelease, + TagName: chart.Metadata.Name + "-" + chart.Metadata.Version, PreviousTagName: &latestRelease.Name, }) if err != nil { diff --git a/pkg/releaser/releaser.go b/pkg/releaser/releaser.go index 6297c03..04c3a47 100644 --- a/pkg/releaser/releaser.go +++ b/pkg/releaser/releaser.go @@ -52,7 +52,7 @@ type GitHub interface { GetRelease(ctx context.Context, tag string) (*github.Release, error) CreatePullRequest(owner string, repo string, message string, head string, base string) (string, error) GetLatestChartRelease(ctx context.Context, prefix string) (*github.Release, error) - GenerateReleaseNotes(ctx context.Context, latestRelease *github.Release, nextRelease string) (string, error) + GenerateReleaseNotes(ctx context.Context, latestRelease *github.Release, chart *chart.Chart) (string, error) } type Git interface { @@ -260,7 +260,7 @@ func (r *Releaser) getReleaseNotes(chart *chart.Chart) (string, error) { highest := versions[len(versions)-1] // skip generating notes if there's already a higher version in GitHub if nextVersion.String() == highest.String() { - notes, err := r.github.GenerateReleaseNotes(context.TODO(), latestRelease, chart.Metadata.Version) + notes, err := r.github.GenerateReleaseNotes(context.TODO(), latestRelease, chart) if err != nil { return "", errors.Wrapf(err, "failed to generate release notes for chart %s", chart.Metadata.Name) } diff --git a/pkg/releaser/releaser_test.go b/pkg/releaser/releaser_test.go index 56b2cd7..b7682df 100644 --- a/pkg/releaser/releaser_test.go +++ b/pkg/releaser/releaser_test.go @@ -29,6 +29,7 @@ import ( "helm.sh/helm/v3/pkg/repo" "github.com/helm/chart-releaser/pkg/config" + "helm.sh/helm/v3/pkg/chart" ) type FakeGitHub struct { @@ -133,8 +134,8 @@ func (f *FakeGitHub) GetLatestChartRelease(_ context.Context, prefix string) (*g } // GenerateReleaseNotes generates the release notes for a release -func (f *FakeGitHub) GenerateReleaseNotes(_ context.Context, latestRelease *github.Release, nextRelease string) (string, error) { - f.Called(latestRelease, nextRelease) +func (f *FakeGitHub) GenerateReleaseNotes(_ context.Context, latestRelease *github.Release, chart *chart.Chart) (string, error) { + f.Called(latestRelease, chart) notes := "# Noted."