Documentation
¶
Index ¶
- func BuildDiffComment(codeDiff, repoName, baseBranch, oldCommit, newCommit string) string
- func BuildStackBlock(prNumbers []int, current int) string
- func BuildStackedPRBody(commitHash, repoFullName string, prNumber int, allPRs []int, commitBody string) string
- func ParseRepoFromURL(url string) (owner, repo string, err error)
- type Client
- func (c *Client) CommentOnPR(number int, body string) error
- func (c *Client) CreatePR(head, base, title, body string, draft bool) (*PRInfo, error)
- func (c *Client) GetAuthenticatedUser() (string, error)
- func (c *Client) LookupPRsByBranch(branches []string) (map[string]*PRInfo, error)
- func (c *Client) Owner() string
- func (c *Client) Repo() string
- func (c *Client) RequestReviewers(number int, reviewers []string) error
- func (c *Client) UpdatePR(number int, opts UpdatePROpts) error
- type PRInfo
- type Service
- type UpdatePROpts
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildDiffComment ¶
BuildDiffComment generates a PR comment with interdiff output, using collapsible sections for each file.
func BuildStackBlock ¶
BuildStackBlock generates a markdown stack navigation block showing the current PR's position in the stack.
func BuildStackedPRBody ¶
func BuildStackedPRBody(commitHash, repoFullName string, prNumber int, allPRs []int, commitBody string) string
BuildStackedPRBody generates the full PR body for a stacked PR. For a single PR (len(allPRs) <= 1), only the commitBody is returned.
func ParseRepoFromURL ¶
ParseRepoFromURL extracts owner and repo name from a GitHub remote URL. Supports both HTTPS and SSH formats.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client wraps go-github for PR mutations and GraphQL queries.
func NewClient ¶
NewClient creates a GitHub client for the given repository. remoteURL is the git remote URL (e.g. https://github.com/owner/repo.git), from which owner and repo are parsed. If apiURL is non-empty, it is used as the GitHub API base URL (for GitHub Enterprise or testing).
func (*Client) CommentOnPR ¶
CommentOnPR posts a comment on a pull request.
func (*Client) GetAuthenticatedUser ¶
GetAuthenticatedUser returns the login of the authenticated user.
func (*Client) LookupPRsByBranch ¶
LookupPRsByBranch queries GitHub's GraphQL API for open PRs matching the given head branch names. Returns a map from branch name to PRInfo for branches that have an open PR.
func (*Client) RequestReviewers ¶
RequestReviewers adds reviewers to a pull request.
type PRInfo ¶
type PRInfo struct {
Number int `json:"number"`
State string `json:"state"`
URL string `json:"url"`
Title string `json:"title"`
Body string `json:"body"`
HeadRefName string `json:"headRefName"`
BaseRefName string `json:"baseRefName"`
IsDraft bool `json:"isDraft"`
}
PRInfo holds the essential fields of a pull request.
type Service ¶
type Service interface {
CreatePR(head, base, title, body string, draft bool) (*PRInfo, error)
UpdatePR(number int, opts UpdatePROpts) error
CommentOnPR(number int, body string) error
GetAuthenticatedUser() (string, error)
RequestReviewers(number int, reviewers []string) error
LookupPRsByBranch(branches []string) (map[string]*PRInfo, error)
Owner() string
Repo() string
}
Service defines the GitHub operations needed by the send pipeline.