Documentation ¶
Index ¶
- func RegisterProvider(name string, reg ProviderRegistration)
- type CreatePullRequestOpts
- type FakeGitProviderService
- func (f *FakeGitProviderService) CreatePullRequest(ctx context.Context, opts CreatePullRequestOpts) (*PullRequest, error)
- func (f *FakeGitProviderService) GetPullRequest(ctx context.Context, number int64) (*PullRequest, error)
- func (f *FakeGitProviderService) IsPullRequestMerged(ctx context.Context, number int64) (bool, error)
- func (f *FakeGitProviderService) ListPullRequests(ctx context.Context, opts ListPullRequestOpts) ([]*PullRequest, error)
- type GitProviderOptions
- type GitProviderService
- type ListPullRequestOpts
- type ProviderRegistration
- type PullRequest
- type PullRequestState
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterProvider ¶
func RegisterProvider(name string, reg ProviderRegistration)
RegisterProvider is called by provider implementation packages to register themselves as a git provider.
Types ¶
type CreatePullRequestOpts ¶
type FakeGitProviderService ¶ added in v0.9.0
type FakeGitProviderService struct { CreatePullRequestFn func( context.Context, CreatePullRequestOpts, ) (*PullRequest, error) GetPullRequestFn func(context.Context, int64) (*PullRequest, error) ListPullRequestsFn func( context.Context, ListPullRequestOpts, ) ([]*PullRequest, error) IsPullRequestMergedFn func(context.Context, int64) (bool, error) }
func (*FakeGitProviderService) CreatePullRequest ¶ added in v0.9.0
func (f *FakeGitProviderService) CreatePullRequest( ctx context.Context, opts CreatePullRequestOpts, ) (*PullRequest, error)
func (*FakeGitProviderService) GetPullRequest ¶ added in v0.9.0
func (f *FakeGitProviderService) GetPullRequest( ctx context.Context, number int64, ) (*PullRequest, error)
func (*FakeGitProviderService) IsPullRequestMerged ¶ added in v0.9.0
func (*FakeGitProviderService) ListPullRequests ¶ added in v0.9.0
func (f *FakeGitProviderService) ListPullRequests( ctx context.Context, opts ListPullRequestOpts, ) ([]*PullRequest, error)
type GitProviderOptions ¶ added in v0.8.0
type GitProviderOptions struct { // Name specifies which Git provider to use when that information cannot be // inferred from the repository URL. Name string // Token is the access token used to authenticate against the Git provider's // API. Token string // InsecureSkipTLSVerify specifies whether certificate verification errors // should be ignored when connecting to the Git provider's API. InsecureSkipTLSVerify bool }
GitProviderOptions contains the options for a GitProvider.
type GitProviderService ¶
type GitProviderService interface { // CreatePullRequest creates a pull request CreatePullRequest(ctx context.Context, opts CreatePullRequestOpts) (*PullRequest, error) // Get gets an existing pull request by ID GetPullRequest(ctx context.Context, number int64) (*PullRequest, error) // ListPullRequests lists pull requests by the given options ListPullRequests(ctx context.Context, opts ListPullRequestOpts) ([]*PullRequest, error) // IsPullRequestMerged returns whether or not the pull request was merged IsPullRequestMerged(ctx context.Context, number int64) (bool, error) }
GitProviderService is an abstracted interface for a git providers (GitHub, GitLab, BitBucket) when interacting against a single git repository (e.g. managing pull requests).
func NewGitProviderService ¶ added in v0.8.0
func NewGitProviderService(repoURL string, opts *GitProviderOptions) (GitProviderService, error)
NewGitProviderService returns an implementation of the GitProviderService interface.
type ListPullRequestOpts ¶
type ListPullRequestOpts struct { // State is the pull request state (one of: Open, Closed). Defaults to Open State PullRequestState Head string Base string }
type ProviderRegistration ¶
type ProviderRegistration struct { // Predicate is a function which should return true if the given repoURL is appropriate // for the provider to handle (e.g. github.com is the domain name) Predicate func(repoURL string) bool // NewService instantiates the git provider NewService func(repoURL string, opts *GitProviderOptions) (GitProviderService, error) }
ProviderRegistration holds details on how to instantiate the correct git provider based on parameters (i.e. repo URL). It allows programs to selectively register GitProviderService implementations by anonymously importing implementation packages.
type PullRequest ¶
type PullRequest struct { // Number is the numeric pull request number (not an ID) // Pull requests numbers are unique only within a repository Number int64 `json:"id"` // URL is the url to the pull request URL string `json:"url"` // State is the pull request state (one of: Open, Closed) State PullRequestState `json:"state"` // MergeCommitSHA is the SHA of the merge commit MergeCommitSHA string `json:"mergeCommitSHA"` // Object is the underlying object from the provider Object any `json:"-"` // HeadSHA is the SHA of the head commit HeadSHA string `json:"headSHA"` }
func (*PullRequest) IsOpen ¶
func (pr *PullRequest) IsOpen() bool
type PullRequestState ¶
type PullRequestState string
const ( PullRequestStateOpen PullRequestState = "Open" PullRequestStateClosed PullRequestState = "Closed" )