73 lines
2.1 KiB
Go
73 lines
2.1 KiB
Go
// Package vcs defines shared types used across VCS client implementations
|
|
// (gitea, github). Keeping them here prevents the client packages from
|
|
// importing each other or duplicating definitions.
|
|
package vcs
|
|
|
|
// ReviewEvent is the verdict submitted with a pull request review.
|
|
type ReviewEvent string
|
|
|
|
const (
|
|
// ReviewEventApprove approves the pull request.
|
|
ReviewEventApprove ReviewEvent = "APPROVE"
|
|
|
|
// ReviewEventRequestChanges requests changes before the PR can be merged.
|
|
ReviewEventRequestChanges ReviewEvent = "REQUEST_CHANGES"
|
|
|
|
// ReviewEventComment leaves a comment review without explicit approval or rejection.
|
|
ReviewEventComment ReviewEvent = "COMMENT"
|
|
)
|
|
|
|
// UserInfo holds the identity of a user.
|
|
type UserInfo struct {
|
|
Login string
|
|
}
|
|
|
|
// ReviewComment is a single inline comment attached to a pull request review.
|
|
type ReviewComment struct {
|
|
// Path is the file path the comment applies to.
|
|
Path string
|
|
|
|
// Position is the line position within the diff (1-indexed).
|
|
// GitHub and Gitea differ in how they compute position; callers must
|
|
// supply the correct value for the target VCS.
|
|
Position int
|
|
|
|
// Body is the text content of the comment.
|
|
Body string
|
|
|
|
// CommitID is the SHA of the commit the comment applies to.
|
|
// For GitHub, all comments within a single review must target the same commit.
|
|
CommitID string
|
|
}
|
|
|
|
// ReviewRequest is the payload for submitting a pull request review.
|
|
type ReviewRequest struct {
|
|
// Body is the top-level review comment body.
|
|
Body string
|
|
|
|
// Event is the review verdict.
|
|
Event ReviewEvent
|
|
|
|
// Comments are optional inline file-level comments.
|
|
Comments []ReviewComment
|
|
}
|
|
|
|
// Review represents a submitted pull request review.
|
|
type Review struct {
|
|
// ID is the provider-assigned review identifier.
|
|
ID int64
|
|
|
|
// Body is the top-level review comment body.
|
|
Body string
|
|
|
|
// User is the author of the review.
|
|
User UserInfo
|
|
|
|
// State is the canonical review state string.
|
|
// Values: APPROVE, REQUEST_CHANGES, COMMENT, DISMISSED, PENDING.
|
|
State string
|
|
|
|
// CommitID is the commit SHA the review was evaluated against.
|
|
CommitID string
|
|
}
|