Documentation ¶
Overview ¶
Package git provides a client to plugins that can do git operations.
Index ¶
- type Client
- type Repo
- func (r *Repo) Am(path string) error
- func (r *Repo) Checkout(commitlike string) error
- func (r *Repo) CheckoutNewBranch(branch string) error
- func (r *Repo) CheckoutPullRequest(number int) error
- func (r *Repo) Clean() error
- func (r *Repo) Config(key, value string) error
- func (r *Repo) Merge(commitlike string) (bool, error)
- func (r *Repo) Push(repo, branch string) error
- func (r *Repo) RevParse(commitlike string) (string, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client can clone repos. It keeps a local cache, so successive clones of the same repo should be quick. Create with NewClient. Be sure to clean it up.
func NewClient ¶
NewClient returns a client that talks to GitHub. It will fail if git is not in the PATH.
func (*Client) Clone ¶
Clone clones a repository. Pass the full repository name, such as "kubernetes/test-infra" as the repo. This function may take a long time if it is the first time cloning the repo. In that case, it must do a full git mirror clone. For large repos, this can take a while. Once that is done, it will do a git fetch instead of a clone, which will usually take at most a few seconds.
func (*Client) SetCredentials ¶
SetCredentials sets credentials in the client to be used for pushing to or pulling from remote repositories.
type Repo ¶
type Repo struct { // Dir is the location of the git repo. Dir string // contains filtered or unexported fields }
Repo is a clone of a git repository. Create with Client.Clone, and don't forget to clean it up after.
func (*Repo) Am ¶
Am tries to apply the patch in the given path into the current branch by performing a three-way merge (similar to git cherry-pick). It returns an error if the patch cannot be applied.
func (*Repo) CheckoutNewBranch ¶
CheckoutNewBranch creates a new branch and checks it out.
func (*Repo) CheckoutPullRequest ¶
CheckoutPullRequest does exactly that.
func (*Repo) Merge ¶
Merge attempts to merge commitlike into the current branch. It returns true if the merge completes. It returns an error if the abort fails.