Skip to content

Commit

Permalink
fix(publish): make it compatible with gitlab 14, fixes #273
Browse files Browse the repository at this point in the history
  • Loading branch information
matejvelikonja authored and kodiakhq[bot] committed Oct 8, 2021
1 parent 09cc0c7 commit d9694a2
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 9 deletions.
10 changes: 5 additions & 5 deletions internal/gitlab/publish.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,19 @@ import (
"github.com/aevea/release-notary/internal/release"
)

// Publish publishes a Release https://docs.gitlab.com/ee/api/tags.html#create-a-new-release
// Publish publishes a Release https://docs.gitlab.com/ee/api/releases/#create-a-release
func (g *Gitlab) Publish(release *release.Release) error {
// By default we are creating a new release
// By default, we are creating a new release
method := "POST"
url := fmt.Sprintf("%v/projects/%v/releases", g.apiURL, g.projectID)

// In case release already exists we need to update instead of creating
if release.Message != "" {
url = fmt.Sprintf("%v/projects/%v/releases/%v", g.apiURL, g.projectID, g.tagName)
method = "PUT"
}

url := fmt.Sprintf("%v/projects/%v/repository/tags/%v/release", g.apiURL, g.projectID, g.tagName)

jsonBody, err := json.Marshal(gitlabRelease{Message: release.ReleaseNotes})
jsonBody, err := json.Marshal(gitlabRelease{Message: release.ReleaseNotes, TagName: g.tagName})

if err != nil {
return err
Expand Down
8 changes: 4 additions & 4 deletions internal/gitlab/publish_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func TestPublishExistingRelease(t *testing.T) {

newReleaseNotes := "test"
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
url := fmt.Sprintf("/projects/%v/repository/tags/%v/release", projectID, tagName)
url := fmt.Sprintf("/projects/%v/releases/%v", projectID, tagName)
assert.Equal(t, "PUT", req.Method)
assert.Equal(t, url, req.URL.String())
assert.Equal(t, "testtoken", req.Header["Private-Token"][0])
Expand All @@ -26,7 +26,7 @@ func TestPublishExistingRelease(t *testing.T) {

assert.NoError(t, err)

expectedBody := fmt.Sprintf("{\"name\":\"\",\"description\":\"%v\"}", newReleaseNotes)
expectedBody := fmt.Sprintf("{\"name\":\"\",\"tag_name\":\"%v\",\"description\":\"%v\"}", tagName, newReleaseNotes)

assert.Equal(t, expectedBody, string(body))

Expand Down Expand Up @@ -55,7 +55,7 @@ func TestPublishNewRelease(t *testing.T) {

newReleaseNotes := "test"
server := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
url := fmt.Sprintf("/projects/%v/repository/tags/%v/release", projectID, tagName)
url := fmt.Sprintf("/projects/%v/releases", projectID)
assert.Equal(t, "POST", req.Method)
assert.Equal(t, url, req.URL.String())
assert.Equal(t, "testtoken", req.Header["Private-Token"][0])
Expand All @@ -64,7 +64,7 @@ func TestPublishNewRelease(t *testing.T) {

assert.NoError(t, err)

expectedBody := fmt.Sprintf("{\"name\":\"\",\"description\":\"%v\"}", newReleaseNotes)
expectedBody := fmt.Sprintf("{\"name\":\"\",\"tag_name\":\"%v\",\"description\":\"%v\"}", tagName, newReleaseNotes)

assert.Equal(t, expectedBody, string(body))

Expand Down
1 change: 1 addition & 0 deletions internal/gitlab/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ type Gitlab struct {

type gitlabRelease struct {
Name string `json:"name"`
TagName string `json:"tag_name"`
Message string `json:"description"`
}

Expand Down

0 comments on commit d9694a2

Please sign in to comment.