Documentation ¶
Index ¶
- func UseLogger(logger slog.Logger)
- type Author
- type Client
- func (a *Client) FetchCommit(org, repo string, sha string) (*PullRequestCommit, error)
- func (a *Client) FetchOrgRepos(org string) ([]*Repository, error)
- func (a *Client) FetchPullRequest(org, repo string, prNum int) (*PullRequest, error)
- func (a *Client) FetchPullRequestCommitSHAs(org, repo string, prNum int) ([]string, error)
- func (a *Client) FetchPullRequestCommits(org, repo string, hashes []string) ([]*PullRequestCommit, error)
- func (a *Client) FetchPullRequestReviews(org, repo string, prNum int) ([]PullRequestReview, error)
- func (a *Client) FetchPullsRequest(org, repo string) ([]PullsRequest, error)
- func (a *Client) RateLimit() (RateLimitRule, error)
- type Commit
- type CommitParent
- type CommitStats
- type PullRequest
- type PullRequestCommit
- type PullRequestReview
- type PullsRequest
- type RateLimit
- type RateLimitResource
- type RateLimitRule
- type Repository
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Author ¶
type Author struct { Name string `json:"name"` Email string `json:"email"` Date string `json:"date"` }
Author has basic information about the creator of a commit.
type Client ¶
Client contains the http client that communicates with the Github servers, mutexes and api rate limiting rules.
func NewClient ¶
NewClient creates a new instance of Client that contains a authorized client with the provided token argument.
func (*Client) FetchCommit ¶
func (a *Client) FetchCommit(org, repo string, sha string) (*PullRequestCommit, error)
FetchCommit requests a given commit based on organization, repo and hash
func (*Client) FetchOrgRepos ¶
func (a *Client) FetchOrgRepos(org string) ([]*Repository, error)
FetchOrgRepos requests all repos that are underneath the given organization.
func (*Client) FetchPullRequest ¶
func (a *Client) FetchPullRequest(org, repo string, prNum int) (*PullRequest, error)
FetchPullRequest requests information about a given pull request based on organization, repo and pull request number.
func (*Client) FetchPullRequestCommitSHAs ¶
FetchPullRequestCommits requests all of the commit hashes under a given pull request based on the organization, repo, and pull request number.
func (*Client) FetchPullRequestCommits ¶
func (a *Client) FetchPullRequestCommits(org, repo string, hashes []string) ([]*PullRequestCommit, error)
FetchPullRequestCommits returns a list of parsed commits based on org, repo and a list of hashes provided in the arguments.
func (*Client) FetchPullRequestReviews ¶
func (a *Client) FetchPullRequestReviews(org, repo string, prNum int) ([]PullRequestReview, error)
FetchPullRequestReviews requests all of the reviews from a given pull request based on organization, repository, pull request number and time.
func (*Client) FetchPullsRequest ¶
func (a *Client) FetchPullsRequest(org, repo string) ([]PullsRequest, error)
FetchPullsRequest requests all of the pull requests from a given repo under an organization.
func (*Client) RateLimit ¶
func (a *Client) RateLimit() (RateLimitRule, error)
RateLimit determines if the current rate limit for the client is about to be tripped. If so, it will go to sleep for a given perioud of time.
type Commit ¶
type Commit struct { Author Author `json:"author"` Committer Author `json:"committer"` Message string `json:"message"` }
Commit holds basic information about a given commit, but no details about the actual changes.
type CommitParent ¶
CommitParent has information about a commit's parent commit.
type CommitStats ¶
type CommitStats struct { Additions int `json:"additions"` Deletions int `json:"deletions"` Total int `json:"total"` }
CommitStats contains basic LOC information about a given commit.
type PullRequest ¶
type PullRequest struct { URL string `json:"url"` Number int `json:"number"` User User `json:"user"` UpdatedAt string `json:"updated_at"` ClosedAt string `json:"closed_at"` MergedAt string `json:"merged_at"` Merged bool `json:"merged"` State string `json:"state"` Additions int `json:"additions"` Deletions int `json:"deletions"` MergedBy User `json:"merged_by"` }
PullRequest contains all the information about a submitted pull request.
type PullRequestCommit ¶
type PullRequestCommit struct { SHA string `json:"sha"` URL string `json:"url"` Parents []CommitParent `json:"parents"` Stats CommitStats `json:"stats"` Commit Commit `json:"commit"` Author User `json:"author"` Committer User `json:"committer"` // local change Discarded bool `json:"discarded"` }
PullRequestCommit contains information about commits underneath a given Pull request.
type PullRequestReview ¶
type PullRequestReview struct { ID int64 `json:"id"` User User `json:"user"` State string `json:"state"` SubmittedAt string `json:"submitted_at"` CommitID string `json:"commit_id"` }
PullRequestReview contains information about any review that has been submitted for a given pull request.
type PullsRequest ¶
type PullsRequest struct { URL string `json:"url"` Number int `json:"number"` State string `json:"state"` Title string `json:"title"` User User `json:"user"` UpdatedAt string `json:"updated_at"` MergedAt string `json:"merged_at"` MergeCommitSHA string `json:"merge_commit_sha"` CommitsURL string `json:"commits_url"` }
PullsRequest contains all high level information returned from the PullsRequest request.
type RateLimit ¶
type RateLimit struct { Resources RateLimitResource `json:"resources"` Rate RateLimitRule `json:"rate"` }
RateLimit contains resource and rate information that is used to determine whether or not to limit request submission.
type RateLimitResource ¶
type RateLimitResource struct { Core RateLimitRule `json:"core"` Search RateLimitRule `json:"search"` GraphQL RateLimitRule `json:"graphql"` IntegrationManifest RateLimitRule `json:"integration_manifest"` }
RateLimitResource contains various RateLimitRule information.
type RateLimitRule ¶
type RateLimitRule struct { Limit int `json:"limit"` Remaining int `json:"remaining"` Reset int64 `json:"reset"` }
RateLimitRule has the limit, the number of requests remaining and the time to reset.
type Repository ¶
type Repository struct { Name string `json:"name"` FullName string `json:"full_name"` Private bool `json:"private"` Owner User `json:"owner"` Fork bool `json:"fork"` URL string `json:"url"` }
Repository contains all the information of a repo underneath an organization.
type User ¶
type User struct { ID int64 `json:"id"` NodeID string `json:"node_id"` Login string `json:"login"` URL string `json:"url"` HTMLURL string `json:"htmlurl"` Type string `json:"type"` SiteAdmin bool `json:"site_admin"` }
User contains all the information about a given User connected to a Pull Request, Review or Commit.