aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authora1012112796 <1012112796@qq.com>2020-10-21 02:18:25 +0800
committerGitHub <noreply@github.com>2020-10-20 14:18:25 -0400
commitb9850375fca1ed72f5a5ba265d48c241aff2e21e (patch)
treebc5f03623003b95911686e3e472c97f3c8cbe04e /models
parentb50448b28698b5c9cd1825bf95f2331fa030790f (diff)
downloadgitea-b9850375fca1ed72f5a5ba265d48c241aff2e21e.tar.gz
gitea-b9850375fca1ed72f5a5ba265d48c241aff2e21e.zip
Add review request api (#11355)
* Add review request api * add : POST /repos/{owner}/{repo}/pulls/{index}/requested_reviewers * Remove : DELET /repos/{owner}/{repo}/pulls/{index}/requested_reviewers * fix some request review bug * block delet request review by models/DeleteReview() Signed-off-by: a1012112796 <1012112796@qq.com> * make fmt * fix bug * fix test code * fix typo * Apply suggestion from code review @jonasfranz * fix swagger ref * fix typo Co-authored-by: Lauris BH <lauris@nix.lv> * fix comment * Change response message * chang response so some simplfy * Add ErrIllLegalReviewRequest fix some nits * make fmt * Apply suggestions from code review Co-authored-by: silverwind <me@silverwind.io> * * Add team support * fix test * fix an known bug * fix nit * fix test * Apply suggestions from code review Co-authored-by: zeripath <art27@cantab.net> * update get api and add test Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'models')
-rw-r--r--models/error.go2
-rw-r--r--models/fixtures/issue.yml12
-rw-r--r--models/fixtures/pull_request.yml13
-rw-r--r--models/fixtures/repository.yml2
-rw-r--r--models/fixtures/review.yml19
-rw-r--r--models/review.go13
6 files changed, 56 insertions, 5 deletions
diff --git a/models/error.go b/models/error.go
index be94d78891..b2273f74c9 100644
--- a/models/error.go
+++ b/models/error.go
@@ -2003,7 +2003,7 @@ type ErrNotValidReviewRequest struct {
// IsErrNotValidReviewRequest checks if an error is a ErrNotValidReviewRequest.
func IsErrNotValidReviewRequest(err error) bool {
- _, ok := err.(ErrReviewNotExist)
+ _, ok := err.(ErrNotValidReviewRequest)
return ok
}
diff --git a/models/fixtures/issue.yml b/models/fixtures/issue.yml
index 39a96dc550..3e836bf5d1 100644
--- a/models/fixtures/issue.yml
+++ b/models/fixtures/issue.yml
@@ -135,3 +135,15 @@
is_pull: true
created_unix: 1579194806
updated_unix: 1579194806
+
+-
+ id: 12
+ repo_id: 3
+ index: 2
+ poster_id: 2
+ name: pull6
+ content: content for the a pull request
+ is_closed: false
+ is_pull: true
+ created_unix: 1602935696
+ updated_unix: 1602935696
diff --git a/models/fixtures/pull_request.yml b/models/fixtures/pull_request.yml
index b555da83ef..d45baa711c 100644
--- a/models/fixtures/pull_request.yml
+++ b/models/fixtures/pull_request.yml
@@ -63,3 +63,16 @@
base_branch: branch1
merge_base: 1234567890abcdef
has_merged: false
+
+-
+ id: 6
+ type: 0 # gitea pull request
+ status: 2 # mergable
+ issue_id: 12
+ index: 2
+ head_repo_id: 3
+ base_repo_id: 3
+ head_branch: test_branch
+ base_branch: master
+ merge_base: 2a47ca4b614a9f5a
+ has_merged: false
diff --git a/models/fixtures/repository.yml b/models/fixtures/repository.yml
index a44e480270..c7f55a8f70 100644
--- a/models/fixtures/repository.yml
+++ b/models/fixtures/repository.yml
@@ -41,7 +41,7 @@
is_private: true
num_issues: 1
num_closed_issues: 0
- num_pulls: 0
+ num_pulls: 1
num_closed_pulls: 0
num_watches: 0
num_projects: 1
diff --git a/models/fixtures/review.yml b/models/fixtures/review.yml
index 3db0b47353..c7c16fb109 100644
--- a/models/fixtures/review.yml
+++ b/models/fixtures/review.yml
@@ -86,3 +86,22 @@
official: true
updated_unix: 946684815
created_unix: 946684815
+
+-
+ id: 11
+ type: 4
+ reviewer_id: 0
+ reviewer_team_id: 7
+ issue_id: 12
+ official: true
+ updated_unix: 1602936509
+ created_unix: 1602936509
+
+-
+ id: 12
+ type: 4
+ reviewer_id: 1
+ issue_id: 12
+ official: true
+ updated_unix: 1603196749
+ created_unix: 1603196749 \ No newline at end of file
diff --git a/models/review.go b/models/review.go
index 326b06b5ed..aeb5f21ea9 100644
--- a/models/review.go
+++ b/models/review.go
@@ -627,13 +627,14 @@ func AddReviewRequest(issue *Issue, reviewer, doer *User) (*Comment, error) {
}
}
- if _, err = createReview(sess, CreateReviewOptions{
+ review, err = createReview(sess, CreateReviewOptions{
Type: ReviewTypeRequest,
Issue: issue,
Reviewer: reviewer,
Official: official,
Stale: false,
- }); err != nil {
+ })
+ if err != nil {
return nil, err
}
@@ -644,6 +645,7 @@ func AddReviewRequest(issue *Issue, reviewer, doer *User) (*Comment, error) {
Issue: issue,
RemovedAssignee: false, // Use RemovedAssignee as !isRequest
AssigneeID: reviewer.ID, // Use AssigneeID as reviewer ID
+ ReviewID: review.ID,
})
if err != nil {
return nil, err
@@ -732,7 +734,7 @@ func AddTeamReviewRequest(issue *Issue, reviewer *Team, doer *User) (*Comment, e
}
}
- if _, err = createReview(sess, CreateReviewOptions{
+ if review, err = createReview(sess, CreateReviewOptions{
Type: ReviewTypeRequest,
Issue: issue,
ReviewerTeam: reviewer,
@@ -755,6 +757,7 @@ func AddTeamReviewRequest(issue *Issue, reviewer *Team, doer *User) (*Comment, e
Issue: issue,
RemovedAssignee: false, // Use RemovedAssignee as !isRequest
AssigneeTeamID: reviewer.ID, // Use AssigneeTeamID as reviewer team ID
+ ReviewID: review.ID,
})
if err != nil {
return nil, fmt.Errorf("createComment(): %v", err)
@@ -894,6 +897,10 @@ func DeleteReview(r *Review) error {
return fmt.Errorf("review is not allowed to be 0")
}
+ if r.Type == ReviewTypeRequest {
+ return fmt.Errorf("review request can not be deleted using this method")
+ }
+
opts := FindCommentsOptions{
Type: CommentTypeCode,
IssueID: r.IssueID,