Skip to content

Commit 95ed973

Browse files
6543jolheiser
authored andcommitted
Add Un-/DismissPullReview funcs (#489)
close #487 Reviewed-on: https://gitea.com/gitea/go-sdk/pulls/489 Reviewed-by: Andrew Thornton <[email protected]> Reviewed-by: John Olheiser <[email protected]> Co-authored-by: 6543 <[email protected]> Co-committed-by: 6543 <[email protected]>
1 parent 8947cd3 commit 95ed973

File tree

2 files changed

+56
-1
lines changed

2 files changed

+56
-1
lines changed

gitea/pull_review.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,11 @@ type SubmitPullReviewOptions struct {
9797
Body string `json:"body"`
9898
}
9999

100+
// DismissPullReviewOptions are options to dismiss a pull review
101+
type DismissPullReviewOptions struct {
102+
Message string `json:"message"`
103+
}
104+
100105
// ListPullReviewsOptions options for listing PullReviews
101106
type ListPullReviewsOptions struct {
102107
ListOptions
@@ -221,3 +226,31 @@ func (c *Client) SubmitPullReview(owner, repo string, index, id int64, opt Submi
221226
jsonHeader, bytes.NewReader(body), r)
222227
return r, resp, err
223228
}
229+
230+
// DismissPullReview dismiss a review for a pull request
231+
func (c *Client) DismissPullReview(owner, repo string, index, id int64, opt DismissPullReviewOptions) (*Response, error) {
232+
if err := c.checkServerVersionGreaterThanOrEqual(version1_14_0); err != nil {
233+
return nil, err
234+
}
235+
body, err := json.Marshal(&opt)
236+
if err != nil {
237+
return nil, err
238+
}
239+
240+
_, resp, err := c.getResponse("POST",
241+
fmt.Sprintf("/repos/%s/%s/pulls/%d/reviews/%d/dismissals", owner, repo, index, id),
242+
jsonHeader, bytes.NewReader(body))
243+
return resp, err
244+
}
245+
246+
// UnDismissPullReview cancel to dismiss a review for a pull request
247+
func (c *Client) UnDismissPullReview(owner, repo string, index, id int64) (*Response, error) {
248+
if err := c.checkServerVersionGreaterThanOrEqual(version1_14_0); err != nil {
249+
return nil, err
250+
}
251+
252+
_, resp, err := c.getResponse("POST",
253+
fmt.Sprintf("/repos/%s/%s/pulls/%d/reviews/%d/undismissals", owner, repo, index, id),
254+
jsonHeader, nil)
255+
return resp, err
256+
}

gitea/pull_review_test.go

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ func TestPullReview(t *testing.T) {
8989

9090
// SubmitPullReview
9191
c.SetSudo("")
92-
r4, _, err := c.CreatePullReview(repo.Owner.UserName, repo.Name, pull.Index, CreatePullReviewOptions{
92+
r4, resp, err := c.CreatePullReview(repo.Owner.UserName, repo.Name, pull.Index, CreatePullReviewOptions{
9393
Body: "...",
9494
Comments: []CreatePullReviewComment{{
9595
Path: "WOW-file",
@@ -99,6 +99,7 @@ func TestPullReview(t *testing.T) {
9999
},
100100
})
101101
assert.NoError(t, err)
102+
assert.NotNil(t, resp)
102103
r5, _, err := c.CreatePullReview(repo.Owner.UserName, repo.Name, pull.Index, CreatePullReviewOptions{
103104
Body: "...",
104105
Comments: []CreatePullReviewComment{{
@@ -133,6 +134,27 @@ func TestPullReview(t *testing.T) {
133134
}
134135
}
135136

137+
r, _, err = c.GetPullReview(repo.Owner.UserName, repo.Name, pull.Index, r.ID)
138+
assert.NoError(t, err)
139+
assert.False(t, r.Dismissed)
140+
141+
// DismissPullReview
142+
resp, err = c.DismissPullReview(repo.Owner.UserName, repo.Name, pull.Index, r.ID, DismissPullReviewOptions{Message: "stale"})
143+
assert.NoError(t, err)
144+
if assert.NotNil(t, resp) {
145+
assert.EqualValues(t, 200, resp.StatusCode)
146+
}
147+
r, _, _ = c.GetPullReview(repo.Owner.UserName, repo.Name, pull.Index, r.ID)
148+
assert.True(t, r.Dismissed)
149+
150+
// UnDismissPullReview
151+
resp, err = c.UnDismissPullReview(repo.Owner.UserName, repo.Name, pull.Index, r.ID)
152+
assert.NoError(t, err)
153+
if assert.NotNil(t, resp) {
154+
assert.EqualValues(t, 200, resp.StatusCode)
155+
}
156+
r, _, _ = c.GetPullReview(repo.Owner.UserName, repo.Name, pull.Index, r.ID)
157+
assert.False(t, r.Dismissed)
136158
}
137159

138160
func preparePullReviewTest(t *testing.T, c *Client, repoName string) (*Repository, *PullRequest, *User, *User, bool) {

0 commit comments

Comments
 (0)