Documentation ¶
Index ¶
- Variables
- func CheckDirectoryIsValidGitCheckout(ctx context.Context, runner command.Runner, envContainer app.EnvContainer, ...) error
- func CheckForUncommittedGitChanges(ctx context.Context, runner command.Runner, envContainer app.EnvContainer, ...) ([]string, error)
- func GetCurrentHEADGitCommit(ctx context.Context, runner command.Runner, envContainer app.EnvContainer, ...) (string, error)
- func GetRefsForGitCommitAndRemote(ctx context.Context, runner command.Runner, envContainer app.EnvContainer, ...) ([]string, error)
- type CloneToBucketOptions
- type Cloner
- type ClonerOptions
- type ListFilesAndUnstagedFilesOptions
- type Lister
- type Name
- type Remote
Constants ¶
This section is empty.
Variables ¶
var ( // ErrRemoteNotFound is returned from GetRemote when the specified remote name is not // found in the current git checkout. ErrRemoteNotFound = errors.New("git remote not found") // ErrInvalidGitCheckout is returned from CheckDirectoryIsValidGitCheckout when the // specified directory is not a valid git checkout. ErrInvalidGitCheckout = errors.New("invalid git checkout") )
Functions ¶
func CheckDirectoryIsValidGitCheckout ¶ added in v1.32.0
func CheckDirectoryIsValidGitCheckout( ctx context.Context, runner command.Runner, envContainer app.EnvContainer, dir string, ) error
CheckDirectoryIsValidGitCheckout runs a simple git rev-parse. In the case where the directory is not a valid git checkout (e.g. the directory is not a git repository or the directory does not exist), this will return a 128. We handle that and return an ErrInvalidGitCheckout to the user.
func CheckForUncommittedGitChanges ¶ added in v1.32.0
func CheckForUncommittedGitChanges( ctx context.Context, runner command.Runner, envContainer app.EnvContainer, dir string, ) ([]string, error)
CheckForUncommittedGitChanges checks if there are any uncommitted and/or unchecked changes from git based on the given directory.
func GetCurrentHEADGitCommit ¶ added in v1.32.0
func GetCurrentHEADGitCommit( ctx context.Context, runner command.Runner, envContainer app.EnvContainer, dir string, ) (string, error)
GetCurrentHEADGitCommit returns the current HEAD commit based on the given directory.
func GetRefsForGitCommitAndRemote ¶ added in v1.32.0
func GetRefsForGitCommitAndRemote( ctx context.Context, runner command.Runner, envContainer app.EnvContainer, dir string, remote string, gitCommitSha string, ) ([]string, error)
GetRefsForGitCommitAndRemote returns all refs pointing to a given commit based on the given remote for the given directory. Querying the remote for refs information requires passing the environment for permissions.
Types ¶
type CloneToBucketOptions ¶
CloneToBucketOptions are options for Clone.
type Cloner ¶
type Cloner interface { // CloneToBucket clones the repository to the bucket. // // The url must contain the scheme, including file:// if necessary. // depth must be > 0. CloneToBucket( ctx context.Context, envContainer app.EnvContainer, url string, depth uint32, writeBucket storage.WriteBucket, options CloneToBucketOptions, ) error }
Cloner clones git repositories to buckets.
type ClonerOptions ¶
type ClonerOptions struct { HTTPSUsernameEnvKey string HTTPSPasswordEnvKey string SSHKeyFileEnvKey string SSHKnownHostsFilesEnvKey string }
ClonerOptions are options for a new Cloner.
type ListFilesAndUnstagedFilesOptions ¶ added in v1.14.0
type ListFilesAndUnstagedFilesOptions struct { // IgnorePathRegexps are regexes of paths to ignore. // // These must be unnormalized in the manner of the local OS that the Lister // is being applied to. IgnorePathRegexps []*regexp.Regexp }
ListFilesAndUnstagedFilesOptions are options for ListFilesAndUnstagedFiles.
type Lister ¶ added in v1.14.0
type Lister interface { // ListFilesAndUnstagedFiles lists all files checked into git except those that // were deleted, and also lists unstaged files. // // This does not list unstaged deleted files // This does not list unignored files that were not added. // This ignores regular files. // // This is used for situations like license headers where we want all the // potential git files during development. // // The returned paths will be unnormalized. // // This is the equivalent of doing: // // comm -23 \ // <(git ls-files --cached --modified --others --no-empty-directory --exclude-standard | sort -u | grep -v -e IGNORE_PATH1 -e IGNORE_PATH2) \ // <(git ls-files --deleted | sort -u) ListFilesAndUnstagedFiles( ctx context.Context, envContainer app.EnvStdioContainer, options ListFilesAndUnstagedFilesOptions, ) ([]string, error) }
Lister lists files in git repositories.
type Name ¶
type Name interface {
// contains filtered or unexported methods
}
Name is a name identifiable by git.
func NewBranchName ¶
NewBranchName returns a new Name for the branch.
func NewRefNameWithBranch ¶
NewRefNameWithBranch returns a new Name for the ref while setting branch as the clone target.
type Remote ¶ added in v1.32.0
type Remote interface { // Name of the remote (e.g. "origin") Name() string // HEADBranch is the name of the HEAD branch of the remote. HEADBranch() string // Hostname is the host name parsed from the remote URL. If the remote is an unknown // kind, then this may be an empty string. Hostname() string // RepositoryPath is the path to the repository based on the remote URL. If the remote // is an unknown kind, then this may be an empty string. RepositoryPath() string // SourceControlURL makes the best effort to construct a user-facing source control url // given a commit sha string based on the remote source, and available hostname and // repository path information. // // If the remote hostname contains bitbucket (e.g. bitbucket.mycompany.com or bitbucket.org), // we construct the source control URL as: // // https://<hostname>/<repository-path>/commits/<git-commit-sha> // // If the remote hostname contains github (e.g. github.mycompany.com or github.com), we // construct the source control URL as: // https://<hostname>/repository-path>/commit/git-commit-sha> // // If the remote hostname contains gitlab (e.g. gitlab.mycompany.com or gitlab.com), we // construct the source control URL as: // https://<hostname>/repository-path>/commit/git-commit-sha> // // If the remote is unknown and/or no hostname/repository path information is available, // this will return an empty string. // // This does not do any validation against the gitCommitSha provided. SourceControlURL(gitCommitSha string) string // contains filtered or unexported methods }
Remote represents a Git remote and provides associated metadata.
func GetRemote ¶ added in v1.32.0
func GetRemote( ctx context.Context, runner command.Runner, envContainer app.EnvContainer, dir string, name string, ) (Remote, error)
GetRemote gets the Git remote based on the given remote name. In order to query the remote information, we need to pass in the env with appropriate permissions.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
git-ls-files-unstaged
Package main implements a file lister for git that lists unstaged files.
|
Package main implements a file lister for git that lists unstaged files. |