Skip to content

Commit 0ce362f

Browse files
committed
handle case where no prior releases
1 parent c019eb4 commit 0ce362f

File tree

2 files changed

+10
-19
lines changed

2 files changed

+10
-19
lines changed

pkg/github/github.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ import (
3131
"golang.org/x/oauth2"
3232
)
3333

34+
// Define a custom error for no releases found
35+
var ErrNoReleasesFound = errors.New("no releases found")
36+
3437
type Release struct {
3538
Name string
3639
Description string
@@ -118,8 +121,6 @@ func (c *Client) GetLatestChartRelease(_ context.Context, prefix string) (*Relea
118121
rels, resp, err := c.Repositories.ListReleases(context.TODO(), c.owner, c.repo, opt)
119122
if err != nil {
120123
return nil, err
121-
} else if len(rels) == 0 {
122-
return nil, errors.New("no releases found")
123124
}
124125
for _, rel := range rels {
125126
if strings.HasPrefix(*rel.TagName, prefix) {
@@ -133,6 +134,10 @@ func (c *Client) GetLatestChartRelease(_ context.Context, prefix string) (*Relea
133134
opt.Page = resp.NextPage
134135
}
135136

137+
if len(versions) == 0 {
138+
return nil, ErrNoReleasesFound
139+
}
140+
136141
// Sort versions ascending
137142
semver.Sort(versions)
138143

pkg/releaser/releaser.go

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -253,24 +253,10 @@ func (r *Releaser) getReleaseNotes(chart *chart.Chart) (string, error) {
253253
if r.config.GenerateReleaseNotes {
254254
latestRelease, err := r.github.GetLatestChartRelease(context.TODO(), chart.Metadata.Name)
255255
if err != nil {
256-
return "", errors.Wrapf(err, "failed to get latest release for chart %s", chart.Metadata.Name)
257-
}
258-
nextVersion := semver.MustParse(chart.Metadata.Version)
259-
versions := []semver.Version{nextVersion, latestRelease.SemVer}
260-
semver.Sort(versions)
261-
highest := versions[len(versions)-1]
262-
// skip generating notes if there's already a higher version in GitHub
263-
if nextVersion.String() == highest.String() {
264-
notes, err := r.github.GenerateReleaseNotes(context.TODO(), latestRelease, chart)
265-
if err != nil {
266-
return "", errors.Wrapf(err, "failed to generate release notes for chart %s", chart.Metadata.Name)
256+
if errors.Is(err, github.ErrNoReleasesFound) {
257+
// Handle the case where there are no releases found
258+
return chart.Metadata.Description, nil
267259
}
268-
return notes, nil
269-
}
270-
}
271-
if r.config.GenerateReleaseNotes {
272-
latestRelease, err := r.github.GetLatestChartRelease(context.TODO(), chart.Metadata.Name)
273-
if err != nil {
274260
return "", errors.Wrapf(err, "failed to get latest release for chart %s", chart.Metadata.Name)
275261
}
276262
nextVersion := semver.MustParse(chart.Metadata.Version)

0 commit comments

Comments
 (0)