fix(internal/releaser/github): error handling for case if release already exists

This commit is contained in:
Felix Wiedmann
2019-06-20 01:13:31 +02:00
parent 92d569c14c
commit 88e49752cb

View File

@@ -5,6 +5,7 @@ import (
"fmt" "fmt"
"net/http" "net/http"
"os" "os"
"strings"
"github.com/Nightapes/go-semantic-release/internal/releaser/util" "github.com/Nightapes/go-semantic-release/internal/releaser/util"
"github.com/Nightapes/go-semantic-release/internal/shared" "github.com/Nightapes/go-semantic-release/internal/shared"
@@ -109,19 +110,17 @@ func (g Client) CreateRelease(releaseVersion *shared.ReleaseVersion, generatedCh
}) })
if err != nil { if err != nil {
return fmt.Errorf("could not create release: %v", err) if !strings.Contains(err.Error(), "already_exists") && resp.StatusCode >= http.StatusUnprocessableEntity {
return fmt.Errorf("could not create release: %v", err)
}
log.Infof("A release with tag %s already exits, will not perform a release or update", tag)
} else {
g.release = release
log.Debugf("Release repsone: %+v", *release)
log.Infof("Crated release")
} }
if resp.StatusCode >= http.StatusBadRequest {
return fmt.Errorf("could not create release: response statuscode: %s", resp.Status)
}
log.Infof("Crated release")
g.release = release
log.Debugf("Release repsone: %+v", *release)
return nil return nil
} }
// UploadAssets uploads specified assets // UploadAssets uploads specified assets