diff --git a/cmd/githubPublishRelease.go b/cmd/githubPublishRelease.go index 70c8b2395..741d059ec 100644 --- a/cmd/githubPublishRelease.go +++ b/cmd/githubPublishRelease.go @@ -46,12 +46,12 @@ func runGithubPublishRelease(ctx context.Context, config *githubPublishReleaseOp lastRelease, resp, err := ghRepoClient.GetLatestRelease(ctx, config.Owner, config.Repository) if err != nil { - if resp.StatusCode == 404 { + if resp != nil && resp.StatusCode == 404 { //no previous release found -> first release config.AddDeltaToLastRelease = false log.Entry().Debug("This is the first release.") } else { - return errors.Wrap(err, "Error occured when retrieving latest GitHub release.") + return errors.Wrapf(err, "Error occured when retrieving latest GitHub release (%v/%v)", config.Owner, config.Repository) } } publishedAt = lastRelease.GetPublishedAt() diff --git a/cmd/githubPublishRelease_test.go b/cmd/githubPublishRelease_test.go index 2bcaed970..e72468e93 100644 --- a/cmd/githubPublishRelease_test.go +++ b/cmd/githubPublishRelease_test.go @@ -52,6 +52,11 @@ func (g *ghRCMock) GetLatestRelease(ctx context.Context, owner string, repo stri if g.latestStatusCode != 0 { hc.StatusCode = g.latestStatusCode } + + if len(owner) == 0 { + return g.latestRelease, nil, g.latestErr + } + ghResp := github.Response{Response: &hc} return g.latestRelease, &ghResp, g.latestErr } @@ -188,10 +193,27 @@ func TestRunGithubPublishRelease(t *testing.T) { ghRepoClient := ghRCMock{ latestErr: fmt.Errorf("Latest release error"), } - myGithubPublishReleaseOptions := githubPublishReleaseOptions{} + myGithubPublishReleaseOptions := githubPublishReleaseOptions{ + Owner: "TEST", + Repository: "test", + } err := runGithubPublishRelease(ctx, &myGithubPublishReleaseOptions, &ghRepoClient, &ghIssueClient) - assert.Equal(t, "Error occured when retrieving latest GitHub release.: Latest release error", fmt.Sprint(err)) + assert.Equal(t, "Error occured when retrieving latest GitHub release (TEST/test): Latest release error", fmt.Sprint(err)) + }) + + t.Run("Error - get release no response", func(t *testing.T) { + ghIssueClient := ghICMock{} + ghRepoClient := ghRCMock{ + latestErr: fmt.Errorf("Latest release error, no response"), + } + myGithubPublishReleaseOptions := githubPublishReleaseOptions{ + Owner: "", + Repository: "test", + } + err := runGithubPublishRelease(ctx, &myGithubPublishReleaseOptions, &ghRepoClient, &ghIssueClient) + + assert.Equal(t, "Error occured when retrieving latest GitHub release (/test): Latest release error, no response", fmt.Sprint(err)) }) t.Run("Error - create release", func(t *testing.T) {