Commit bff53f8d authored by Victor Gorchilov's avatar Victor Gorchilov Committed by Vladimir Shushlin
Browse files

Fixes: #158: Encoding tag name in path parameter

parent bf863eb0
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ func (gc *Client) GetRelease(ctx context.Context, tagName string, includeHTML bo
	q.Set("include_html_description", strconv.FormatBool(includeHTML))

	req, err := gc.request(ctx, http.MethodGet,
		fmt.Sprintf("/projects/%s/releases/%s", gc.projectID, tagName),
		fmt.Sprintf("/projects/%s/releases/%s", gc.projectID, url.QueryEscape(tagName)),
		nil)

	if err != nil {
@@ -201,7 +201,7 @@ func (gc *Client) UpdateRelease(ctx context.Context, updateReleaseRequest *Updat
		return nil, fmt.Errorf("marshal request body: %w", err)
	}

	req, err := gc.request(ctx, http.MethodPut, fmt.Sprintf("/projects/%s/releases/%s", gc.projectID, updateReleaseRequest.TagName), bytes.NewBuffer(body))
	req, err := gc.request(ctx, http.MethodPut, fmt.Sprintf("/projects/%s/releases/%s", gc.projectID, url.QueryEscape(updateReleaseRequest.TagName)), bytes.NewBuffer(body))
	if err != nil {
		return nil, fmt.Errorf("create request: %w", err)
	}
+3 −3
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ func TestClient_GetRelease(t *testing.T) {
				mhc := &MockHTTPClient{}
				mhc.On("Do",
					mock.MatchedBy(func(req *http.Request) bool {
						return req.URL.Path == "/projects/projectID/releases/v0.1" && req.Method == http.MethodGet
						return req.URL.EscapedPath() == "/projects/projectID/releases/urlunsafe%2Fv0.1" && req.Method == http.MethodGet
					})).
					Return(testdata.Responses[testdata.ResponseGetReleaseSuccess](), nil).
					Once()
@@ -269,7 +269,7 @@ func TestClient_GetRelease(t *testing.T) {
				logger:     logrus.NewEntry(log),
			}

			got, err := gc.GetRelease(context.Background(), "v0.1", tt.withHTML)
			got, err := gc.GetRelease(context.Background(), "urlunsafe/v0.1", tt.withHTML)
			if tt.wantErrResponse != nil {
				require.Error(t, err)
				require.EqualError(t, err, tt.wantErrResponse.Error())
@@ -310,7 +310,7 @@ func TestClient_UpdateRelease(t *testing.T) {
	baseReq := UpdateReleaseRequest{
		ID:          "projectID",
		Name:        "release name",
		TagName:     "v0.1",
		TagName:     "urlunsafe/v0.1",
		Description: "release description",
		ReleasedAt:  &releasedAt,
		Milestones:  []string{"v1.0"},