diff options
author | 6543 <6543@obermui.de> | 2020-05-02 02:20:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-02 03:20:51 +0300 |
commit | c97494a4f4a0e8ba5453e293bcebb76274062b99 (patch) | |
tree | 29511446fbdc0296f77390a6566d4ad1eef4668c /modules/structs/pull_review.go | |
parent | 4ed7d2a2bbb421e37cc0bc23a9f997e5606258ea (diff) | |
download | gitea-c97494a4f4a0e8ba5453e293bcebb76274062b99.tar.gz gitea-c97494a4f4a0e8ba5453e293bcebb76274062b99.zip |
API: Add pull review endpoints (#11224)
* API: Added pull review read only endpoints
* Update Structs, move Conversion, Refactor
* refactor
* lint & co
* fix lint + refactor
* add new Review state, rm unessesary, refacotr loadAttributes, convert patch to diff
* add DeletePullReview
* add paggination
* draft1: Create & submit review
* fix lint
* fix lint
* impruve test
* DONT use GhostUser for loadReviewer
* expose comments_count of a PullReview
* infent GetCodeCommentsCount()
* fixes
* fix+impruve
* some nits
* Handle Ghosts :ghost:
* add TEST for GET apis
* complete TESTS
* add HTMLURL to PullReview responce
* code format as per @lafriks
* update swagger definition
* Update routers/api/v1/repo/pull_review.go
Co-authored-by: David Svantesson <davidsvantesson@gmail.com>
* add comments
Co-authored-by: Thomas Berger <loki@lokis-chaos.de>
Co-authored-by: David Svantesson <davidsvantesson@gmail.com>
Diffstat (limited to 'modules/structs/pull_review.go')
-rw-r--r-- | modules/structs/pull_review.go | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/modules/structs/pull_review.go b/modules/structs/pull_review.go new file mode 100644 index 0000000000..bf9eafc243 --- /dev/null +++ b/modules/structs/pull_review.go @@ -0,0 +1,92 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package structs + +import ( + "time" +) + +// ReviewStateType review state type +type ReviewStateType string + +const ( + // ReviewStateApproved pr is approved + ReviewStateApproved ReviewStateType = "APPROVED" + // ReviewStatePending pr state is pending + ReviewStatePending ReviewStateType = "PENDING" + // ReviewStateComment is a comment review + ReviewStateComment ReviewStateType = "COMMENT" + // ReviewStateRequestChanges changes for pr are requested + ReviewStateRequestChanges ReviewStateType = "REQUEST_CHANGES" + // ReviewStateRequestReview review is requested from user + ReviewStateRequestReview ReviewStateType = "REQUEST_REVIEW" + // ReviewStateUnknown state of pr is unknown + ReviewStateUnknown ReviewStateType = "" +) + +// PullReview represents a pull request review +type PullReview struct { + ID int64 `json:"id"` + Reviewer *User `json:"user"` + State ReviewStateType `json:"state"` + Body string `json:"body"` + CommitID string `json:"commit_id"` + Stale bool `json:"stale"` + Official bool `json:"official"` + CodeCommentsCount int `json:"comments_count"` + // swagger:strfmt date-time + Submitted time.Time `json:"submitted_at"` + + HTMLURL string `json:"html_url"` + HTMLPullURL string `json:"pull_request_url"` +} + +// PullReviewComment represents a comment on a pull request review +type PullReviewComment struct { + ID int64 `json:"id"` + Body string `json:"body"` + Reviewer *User `json:"user"` + ReviewID int64 `json:"pull_request_review_id"` + + // swagger:strfmt date-time + Created time.Time `json:"created_at"` + // swagger:strfmt date-time + Updated time.Time `json:"updated_at"` + + Path string `json:"path"` + CommitID string `json:"commit_id"` + OrigCommitID string `json:"original_commit_id"` + DiffHunk string `json:"diff_hunk"` + LineNum uint64 `json:"position"` + OldLineNum uint64 `json:"original_position"` + + HTMLURL string `json:"html_url"` + HTMLPullURL string `json:"pull_request_url"` +} + +// CreatePullReviewOptions are options to create a pull review +type CreatePullReviewOptions struct { + Event ReviewStateType `json:"event"` + Body string `json:"body"` + CommitID string `json:"commit_id"` + Comments []CreatePullReviewComment `json:"comments"` +} + +// CreatePullReviewComment represent a review comment for creation api +type CreatePullReviewComment struct { + // the tree path + Path string `json:"path"` + Body string `json:"body"` + // if comment to old file line or 0 + OldLineNum int64 `json:"old_position"` + // if comment to new file line or 0 + NewLineNum int64 `json:"new_position"` +} + +// SubmitPullReviewOptions are options to submit a pending pull review +type SubmitPullReviewOptions struct { + Event ReviewStateType `json:"event"` + Body string `json:"body"` +} |