Documentation ¶
Index ¶
- func AddReview(client *Client, repo ghrepo.Interface, pr *PullRequest, ...) error
- func BranchDeleteRemote(client *Client, repo ghrepo.Interface, branch string) error
- func CanPushToRepo(httpClient *http.Client, repo ghrepo.Interface) (bool, error)
- func CommentCreate(client *Client, repoHost string, params CommentCreateInput) (string, error)
- func CurrentLoginName(client *Client, hostname string) (string, error)
- func CurrentUserID(client *Client, hostname string) (string, error)
- func HandleHTTPError(resp *http.Response) error
- func IssueClose(client *Client, repo ghrepo.Interface, issue Issue) error
- func IssueDelete(client *Client, repo ghrepo.Interface, issue Issue) error
- func IssueReopen(client *Client, repo ghrepo.Interface, issue Issue) error
- func IssueUpdate(client *Client, repo ghrepo.Interface, params githubv4.UpdateIssueInput) error
- func NewCachedClient(httpClient *http.Client, cacheTTL time.Duration) *http.Client
- func NewHTTPClient(opts ...ClientOption) *http.Client
- func ProjectNamesToPaths(client *Client, repo ghrepo.Interface, projectNames []string) ([]string, error)
- func ProjectsToPaths(projects []RepoProject, names []string) ([]string, error)
- func PullRequestClose(client *Client, repo ghrepo.Interface, pr *PullRequest) error
- func PullRequestReady(client *Client, repo ghrepo.Interface, pr *PullRequest) error
- func PullRequestReopen(client *Client, repo ghrepo.Interface, pr *PullRequest) error
- func RepoDefaultBranch(client *Client, repo ghrepo.Interface) (string, error)
- func RepoParent(client *Client, repo ghrepo.Interface) (ghrepo.Interface, error)
- func UpdatePullRequest(client *Client, repo ghrepo.Interface, params githubv4.UpdatePullRequestInput) error
- func UpdatePullRequestReviews(client *Client, repo ghrepo.Interface, params githubv4.RequestReviewsInput) error
- type Assignees
- type Author
- type BranchRef
- type Client
- func (c Client) GraphQL(hostname string, query string, variables map[string]interface{}, ...) error
- func (c *Client) HTTP() *http.Client
- func (c Client) PullRequestDiff(baseRepo ghrepo.Interface, prNumber int) (io.ReadCloser, error)
- func (c Client) REST(hostname string, method string, p string, body io.Reader, data interface{}) error
- type ClientOption
- func AddHeader(name, value string) ClientOption
- func AddHeaderFunc(name string, getValue func(*http.Request) (string, error)) ClientOption
- func CacheResponse(ttl time.Duration, dir string) ClientOption
- func ReplaceTripper(tr http.RoundTripper) ClientOption
- func VerboseLog(out io.Writer, logTraffic bool, colorize bool) ClientOption
- type Comment
- func (c Comment) Association() string
- func (c Comment) AuthorLogin() string
- func (c Comment) Content() string
- func (c Comment) Created() time.Time
- func (c Comment) HiddenReason() string
- func (c Comment) IsEdited() bool
- func (c Comment) IsHidden() bool
- func (c Comment) Link() string
- func (c Comment) Reactions() ReactionGroups
- func (c Comment) Status() string
- type CommentCreateInput
- type Comments
- type GraphQLError
- type GraphQLErrorResponse
- type HTTPError
- type HTTPErrorItem
- type Issue
- type IssuesAndTotalCount
- type IssuesDisabledError
- type IssuesPayload
- type Labels
- type Milestone
- type NotFoundError
- type OrgTeam
- type PageInfo
- type ProjectCards
- type PullRequest
- func CreatePullRequest(client *Client, repo *Repository, params map[string]interface{}) (*PullRequest, error)
- func PullRequestByNumber(client *Client, repo ghrepo.Interface, number int) (*PullRequest, error)
- func PullRequestForBranch(client *Client, repo ghrepo.Interface, baseBranch, headBranch string, ...) (*PullRequest, error)
- func (pr *PullRequest) ChecksStatus() (summary PullRequestChecksStatus)
- func (pr *PullRequest) DisplayableReviews() PullRequestReviews
- func (pr PullRequest) HeadLabel() string
- func (pr PullRequest) Identifier() string
- func (pr PullRequest) Link() string
- func (pr *PullRequest) ReviewStatus() PullRequestReviewStatus
- type PullRequestAndTotalCount
- type PullRequestChecksStatus
- type PullRequestReview
- func (prr PullRequestReview) Association() string
- func (prr PullRequestReview) AuthorLogin() string
- func (prr PullRequestReview) Content() string
- func (prr PullRequestReview) Created() time.Time
- func (prr PullRequestReview) HiddenReason() string
- func (prr PullRequestReview) IsEdited() bool
- func (prr PullRequestReview) IsHidden() bool
- func (prr PullRequestReview) Link() string
- func (prr PullRequestReview) Reactions() ReactionGroups
- func (prr PullRequestReview) Status() string
- type PullRequestReviewInput
- type PullRequestReviewState
- type PullRequestReviewStatus
- type PullRequestReviews
- type PullRequestsPayload
- type ReactionGroup
- type ReactionGroupUsers
- type ReactionGroups
- type RepoAssignee
- type RepoLabel
- type RepoMetadataInput
- type RepoMetadataResult
- func (m *RepoMetadataResult) LabelsToIDs(names []string) ([]string, error)
- func (m *RepoMetadataResult) MembersToIDs(names []string) ([]string, error)
- func (m *RepoMetadataResult) Merge(m2 *RepoMetadataResult)
- func (m *RepoMetadataResult) MilestoneToID(title string) (string, error)
- func (m *RepoMetadataResult) ProjectsToIDs(names []string) ([]string, error)
- func (m *RepoMetadataResult) TeamsToIDs(names []string) ([]string, error)
- type RepoMilestone
- func MilestoneByNumber(client *Client, repo ghrepo.Interface, number int32) (*RepoMilestone, error)
- func MilestoneByTitle(client *Client, repo ghrepo.Interface, state, title string) (*RepoMilestone, error)
- func RepoMilestones(client *Client, repo ghrepo.Interface, state string) ([]RepoMilestone, error)
- type RepoNetworkResult
- type RepoProject
- type RepoResolveInput
- type Repository
- func ForkRepo(client *Client, repo ghrepo.Interface) (*Repository, error)
- func GitHubRepo(client *Client, repo ghrepo.Interface) (*Repository, error)
- func InitRepoHostname(repo *Repository, hostname string) *Repository
- func RepoFindForks(client *Client, repo ghrepo.Interface, limit int) ([]*Repository, error)
- type RepositoryOwner
- type ReviewRequests
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddReview ¶
func AddReview(client *Client, repo ghrepo.Interface, pr *PullRequest, input *PullRequestReviewInput) error
func BranchDeleteRemote ¶
func CanPushToRepo ¶
func CommentCreate ¶
func CommentCreate(client *Client, repoHost string, params CommentCreateInput) (string, error)
func HandleHTTPError ¶
func IssueUpdate ¶
func NewCachedClient ¶
func NewHTTPClient ¶
func NewHTTPClient(opts ...ClientOption) *http.Client
NewHTTPClient initializes an http.Client
func ProjectNamesToPaths ¶
func ProjectsToPaths ¶
func ProjectsToPaths(projects []RepoProject, names []string) ([]string, error)
func PullRequestClose ¶
func PullRequestClose(client *Client, repo ghrepo.Interface, pr *PullRequest) error
func PullRequestReady ¶
func PullRequestReady(client *Client, repo ghrepo.Interface, pr *PullRequest) error
func PullRequestReopen ¶
func PullRequestReopen(client *Client, repo ghrepo.Interface, pr *PullRequest) error
func RepoDefaultBranch ¶
func RepoParent ¶
RepoParent finds out the parent repository of a fork
func UpdatePullRequest ¶
Types ¶
type BranchRef ¶
type BranchRef struct {
Name string
}
BranchRef is the branch name in a GitHub repository
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client facilitates making HTTP requests to the GitHub API
func NewClientFromHTTP ¶
NewClientFromHTTP takes in an http.Client instance
func (Client) GraphQL ¶
func (c Client) GraphQL(hostname string, query string, variables map[string]interface{}, data interface{}) error
GraphQL performs a GraphQL request and parses the response
func (Client) PullRequestDiff ¶
type ClientOption ¶
type ClientOption = func(http.RoundTripper) http.RoundTripper
ClientOption represents an argument to NewClient
func AddHeader ¶
func AddHeader(name, value string) ClientOption
AddHeader turns a RoundTripper into one that adds a request header
func AddHeaderFunc ¶
AddHeaderFunc is an AddHeader that gets the string value from a function
func CacheResponse ¶
func CacheResponse(ttl time.Duration, dir string) ClientOption
CacheResponse produces a RoundTripper that caches HTTP responses to disk for a specified amount of time
func ReplaceTripper ¶
func ReplaceTripper(tr http.RoundTripper) ClientOption
ReplaceTripper substitutes the underlying RoundTripper with a custom one
func VerboseLog ¶
func VerboseLog(out io.Writer, logTraffic bool, colorize bool) ClientOption
VerboseLog enables request/response logging within a RoundTripper
type Comment ¶
type Comment struct { Author Author AuthorAssociation string Body string CreatedAt time.Time IncludesCreatedEdit bool IsMinimized bool MinimizedReason string ReactionGroups ReactionGroups }
func (Comment) Association ¶
func (Comment) AuthorLogin ¶
func (Comment) HiddenReason ¶
func (Comment) Reactions ¶
func (c Comment) Reactions() ReactionGroups
type CommentCreateInput ¶
type GraphQLError ¶
GraphQLError is a single error returned in a GraphQL response
type GraphQLErrorResponse ¶
type GraphQLErrorResponse struct {
Errors []GraphQLError
}
GraphQLErrorResponse contains errors returned in a GraphQL response
func (GraphQLErrorResponse) Error ¶
func (gr GraphQLErrorResponse) Error() string
type HTTPError ¶
type HTTPError struct { StatusCode int RequestURL *url.URL Message string OAuthScopes string Errors []HTTPErrorItem }
HTTPError is an error returned by a failed API call
type HTTPErrorItem ¶
type Issue ¶
type Issue struct { ID string Number int Title string URL string State string Closed bool Body string CreatedAt time.Time UpdatedAt time.Time Comments Comments Author Author Assignees Assignees Labels Labels ProjectCards ProjectCards Milestone Milestone ReactionGroups ReactionGroups }
func IssueByNumber ¶
func IssueCreate ¶
func IssueCreate(client *Client, repo *Repository, params map[string]interface{}) (*Issue, error)
IssueCreate creates an issue in a GitHub repository
func (Issue) Identifier ¶
type IssuesDisabledError ¶
type IssuesDisabledError struct {
// contains filtered or unexported fields
}
type IssuesPayload ¶
type IssuesPayload struct { Assigned IssuesAndTotalCount Mentioned IssuesAndTotalCount Authored IssuesAndTotalCount }
func IssueStatus ¶
type NotFoundError ¶
type NotFoundError struct {
// contains filtered or unexported fields
}
func (*NotFoundError) Unwrap ¶
func (err *NotFoundError) Unwrap() error
type ProjectCards ¶
type ProjectCards struct { Nodes []struct { Project struct { Name string } Column struct { Name string } } TotalCount int }
func (ProjectCards) ProjectNames ¶
func (p ProjectCards) ProjectNames() []string
type PullRequest ¶
type PullRequest struct { ID string Number int Title string State string Closed bool URL string BaseRefName string HeadRefName string Body string Mergeable string Additions int Deletions int MergeStateStatus string Author struct { Login string } HeadRepositoryOwner struct { Login string } HeadRepository struct { Name string DefaultBranchRef struct { Name string } } IsCrossRepository bool IsDraft bool MaintainerCanModify bool BaseRef struct { BranchProtectionRule struct { RequiresStrictStatusChecks bool } } ReviewDecision string Commits struct { TotalCount int Nodes []struct { Commit struct { Oid string StatusCheckRollup struct { Contexts struct { Nodes []struct { Name string Context string State string Status string Conclusion string StartedAt time.Time CompletedAt time.Time DetailsURL string TargetURL string } } } } } } Assignees Assignees Labels Labels ProjectCards ProjectCards Milestone Milestone Comments Comments ReactionGroups ReactionGroups Reviews PullRequestReviews ReviewRequests ReviewRequests }
func CreatePullRequest ¶
func CreatePullRequest(client *Client, repo *Repository, params map[string]interface{}) (*PullRequest, error)
CreatePullRequest creates a pull request in a GitHub repository
func PullRequestByNumber ¶
func PullRequestForBranch ¶
func (*PullRequest) ChecksStatus ¶
func (pr *PullRequest) ChecksStatus() (summary PullRequestChecksStatus)
func (*PullRequest) DisplayableReviews ¶
func (pr *PullRequest) DisplayableReviews() PullRequestReviews
func (PullRequest) HeadLabel ¶
func (pr PullRequest) HeadLabel() string
func (PullRequest) Identifier ¶
func (pr PullRequest) Identifier() string
func (PullRequest) Link ¶
func (pr PullRequest) Link() string
func (*PullRequest) ReviewStatus ¶
func (pr *PullRequest) ReviewStatus() PullRequestReviewStatus
type PullRequestAndTotalCount ¶
type PullRequestAndTotalCount struct { TotalCount int PullRequests []PullRequest }
type PullRequestChecksStatus ¶
type PullRequestReview ¶
type PullRequestReview struct { Author Author AuthorAssociation string Body string CreatedAt time.Time IncludesCreatedEdit bool ReactionGroups ReactionGroups State string URL string }
func (PullRequestReview) Association ¶
func (prr PullRequestReview) Association() string
func (PullRequestReview) AuthorLogin ¶
func (prr PullRequestReview) AuthorLogin() string
func (PullRequestReview) Content ¶
func (prr PullRequestReview) Content() string
func (PullRequestReview) Created ¶
func (prr PullRequestReview) Created() time.Time
func (PullRequestReview) HiddenReason ¶
func (prr PullRequestReview) HiddenReason() string
func (PullRequestReview) IsEdited ¶
func (prr PullRequestReview) IsEdited() bool
func (PullRequestReview) IsHidden ¶
func (prr PullRequestReview) IsHidden() bool
func (PullRequestReview) Link ¶
func (prr PullRequestReview) Link() string
func (PullRequestReview) Reactions ¶
func (prr PullRequestReview) Reactions() ReactionGroups
func (PullRequestReview) Status ¶
func (prr PullRequestReview) Status() string
type PullRequestReviewInput ¶
type PullRequestReviewInput struct { Body string State PullRequestReviewState }
type PullRequestReviewState ¶
type PullRequestReviewState int
const ( ReviewApprove PullRequestReviewState = iota ReviewRequestChanges ReviewComment )
type PullRequestReviewStatus ¶
type PullRequestReviews ¶
type PullRequestReviews struct { Nodes []PullRequestReview PageInfo PageInfo TotalCount int }
func ReviewsForPullRequest ¶
func ReviewsForPullRequest(client *Client, repo ghrepo.Interface, pr *PullRequest) (*PullRequestReviews, error)
type PullRequestsPayload ¶
type PullRequestsPayload struct { ViewerCreated PullRequestAndTotalCount ReviewRequested PullRequestAndTotalCount CurrentPR *PullRequest DefaultBranch string }
func PullRequests ¶
type ReactionGroup ¶
type ReactionGroup struct { Content string Users ReactionGroupUsers }
func (ReactionGroup) Count ¶
func (rg ReactionGroup) Count() int
func (ReactionGroup) Emoji ¶
func (rg ReactionGroup) Emoji() string
type ReactionGroupUsers ¶
type ReactionGroupUsers struct {
TotalCount int
}
type ReactionGroups ¶
type ReactionGroups []ReactionGroup
type RepoAssignee ¶
func RepoAssignableUsers ¶
func RepoAssignableUsers(client *Client, repo ghrepo.Interface) ([]RepoAssignee, error)
RepoAssignableUsers fetches all the assignable users for a repository
type RepoMetadataInput ¶
type RepoMetadataResult ¶
type RepoMetadataResult struct { AssignableUsers []RepoAssignee Labels []RepoLabel Projects []RepoProject Milestones []RepoMilestone Teams []OrgTeam }
func RepoMetadata ¶
func RepoMetadata(client *Client, repo ghrepo.Interface, input RepoMetadataInput) (*RepoMetadataResult, error)
RepoMetadata pre-fetches the metadata for attaching to issues and pull requests
func RepoResolveMetadataIDs ¶
func RepoResolveMetadataIDs(client *Client, repo ghrepo.Interface, input RepoResolveInput) (*RepoMetadataResult, error)
RepoResolveMetadataIDs looks up GraphQL node IDs in bulk
func (*RepoMetadataResult) LabelsToIDs ¶
func (m *RepoMetadataResult) LabelsToIDs(names []string) ([]string, error)
func (*RepoMetadataResult) MembersToIDs ¶
func (m *RepoMetadataResult) MembersToIDs(names []string) ([]string, error)
func (*RepoMetadataResult) Merge ¶
func (m *RepoMetadataResult) Merge(m2 *RepoMetadataResult)
func (*RepoMetadataResult) MilestoneToID ¶
func (m *RepoMetadataResult) MilestoneToID(title string) (string, error)
func (*RepoMetadataResult) ProjectsToIDs ¶
func (m *RepoMetadataResult) ProjectsToIDs(names []string) ([]string, error)
func (*RepoMetadataResult) TeamsToIDs ¶
func (m *RepoMetadataResult) TeamsToIDs(names []string) ([]string, error)
type RepoMilestone ¶
func MilestoneByNumber ¶
func MilestoneByTitle ¶
func RepoMilestones ¶
RepoMilestones fetches milestones in a repository
type RepoNetworkResult ¶
type RepoNetworkResult struct { ViewerLogin string Repositories []*Repository }
RepoNetworkResult describes the relationship between related repositories
func RepoNetwork ¶
func RepoNetwork(client *Client, repos []ghrepo.Interface) (RepoNetworkResult, error)
RepoNetwork inspects the relationship between multiple GitHub repositories
type RepoProject ¶
func OrganizationProjects ¶
func OrganizationProjects(client *Client, repo ghrepo.Interface) ([]RepoProject, error)
OrganizationProjects fetches all open projects for an organization
func RepoAndOrgProjects ¶
func RepoAndOrgProjects(client *Client, repo ghrepo.Interface) ([]RepoProject, error)
RepoAndOrgProjects fetches all open projects for a repository and its org
func RepoProjects ¶
func RepoProjects(client *Client, repo ghrepo.Interface) ([]RepoProject, error)
RepoProjects fetches all open projects for a repository
type RepoResolveInput ¶
type Repository ¶
type Repository struct { ID string Name string Description string URL string CloneURL string CreatedAt time.Time Owner RepositoryOwner IsPrivate bool HasIssuesEnabled bool HasWikiEnabled bool ViewerPermission string DefaultBranchRef BranchRef Parent *Repository MergeCommitAllowed bool RebaseMergeAllowed bool SquashMergeAllowed bool // contains filtered or unexported fields }
Repository contains information about a GitHub repo
func ForkRepo ¶
func ForkRepo(client *Client, repo ghrepo.Interface) (*Repository, error)
ForkRepo forks the repository on GitHub and returns the new repository
func GitHubRepo ¶
func GitHubRepo(client *Client, repo ghrepo.Interface) (*Repository, error)
func InitRepoHostname ¶
func InitRepoHostname(repo *Repository, hostname string) *Repository
func RepoFindForks ¶
RepoFindForks finds forks of the repo that are affiliated with the viewer
func (Repository) IsFork ¶
func (r Repository) IsFork() bool
IsFork is true when this repository has a parent repository
func (Repository) RepoHost ¶
func (r Repository) RepoHost() string
RepoHost is the GitHub hostname of the repository
func (Repository) RepoName ¶
func (r Repository) RepoName() string
RepoName is the name of the repository
func (Repository) RepoOwner ¶
func (r Repository) RepoOwner() string
RepoOwner is the login name of the owner
func (Repository) ViewerCanPush ¶
func (r Repository) ViewerCanPush() bool
ViewerCanPush is true when the requesting user has push access
func (Repository) ViewerCanTriage ¶
func (r Repository) ViewerCanTriage() bool
ViewerCanTriage is true when the requesting user can triage issues and pull requests
type RepositoryOwner ¶
type RepositoryOwner struct {
Login string
}
RepositoryOwner is the owner of a GitHub repository
type ReviewRequests ¶
type ReviewRequests struct { Nodes []struct { RequestedReviewer struct { TypeName string `json:"__typename"` Login string Name string } } TotalCount int }
func (ReviewRequests) Logins ¶
func (r ReviewRequests) Logins() []string