Documentation
¶
Index ¶
- func BranchExists(remote, name string) (bool, error)
- func CommitAndPush(filePath, message string) error
- func CommitAndPushWithRetry(filePath, message string) error
- func CurrentBranch() (string, error)
- func DeleteRemoteBranch(remote, name string) error
- func DeleteRemoteTag(remote, name string) error
- func GetChangedFiles(baseSHA, headSHA string) ([]string, error)
- func GetInitialCommit() (string, error)
- func GetLatestReleaseTag(prefix string) (string, string, error)
- func GetLatestTag(prefix string) (string, string, error)
- func IsAncestor(ancestor, descendant string) (bool, error)
- func ListRemoteBranches(remote string) ([]string, error)
- func ListTags() ([]string, error)
- func RemoteBranchSHA(remote, name string) (string, error)
- type Commit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BranchExists ¶ added in v0.2.0
BranchExists reports whether the remote-tracking ref refs/remotes/<remote>/<name> exists by running "git rev-parse --verify". An exit code of 0 means the ref exists, a non-zero exit code means it does not, and an execution failure is returned as an error.
This checks remote-tracking refs, so the remote must have been fetched first. A shallow or partial fetch that omits the branch will cause this to report false.
func CommitAndPush ¶
CommitAndPush stages a file, commits with the given message, and pushes to origin.
func CommitAndPushWithRetry ¶ added in v0.2.0
CommitAndPushWithRetry stages filePath, commits it with message, and pushes to the current branch's upstream, retrying the push up to three times behind a pull --rebase. A "nothing to commit" state is treated as success (no-op). This is the manifest state-write path shared by promote and hotfix finalize: an API-created commit on real GitHub goes through a different path, so this is the plain-git fallback used when committing locally.
func CurrentBranch ¶ added in v0.2.0
CurrentBranch returns the name of the currently checked-out branch. It returns an error if the HEAD is detached or the command fails.
func DeleteRemoteBranch ¶ added in v0.2.0
DeleteRemoteBranch deletes the named branch on the given remote by running "git push <remote> --delete <name>". Deleting a branch that does not exist on the remote is treated as success so the operation is idempotent: re-running a rejoin cleanup after a partial failure does not error on an already-deleted branch.
func DeleteRemoteTag ¶ added in v0.2.0
DeleteRemoteTag deletes the named tag on the given remote by running "git push <remote> --delete refs/tags/<name>". Deleting a tag that does not exist on the remote is treated as success so the operation is idempotent.
func GetChangedFiles ¶
GetChangedFiles returns the list of files changed between two commits
func GetInitialCommit ¶
GetInitialCommit returns the SHA of the first commit in the repository
func GetLatestReleaseTag ¶
GetLatestReleaseTag returns the most recent non-prerelease tag (no -rc suffix). This is used to find the base version for calculating next release versions.
func GetLatestTag ¶
GetLatestTag returns the most recent tag matching the given prefix, sorted by semver. Returns empty string if no matching tags found.
func IsAncestor ¶ added in v0.2.0
IsAncestor reports whether ancestor is an ancestor of descendant by running "git merge-base --is-ancestor". An exit code of 0 means true, an exit code of 1 means false, and any other exit code or execution failure is returned as an error.
Both commits must be present in the local object store. In a shallow clone the relevant history may be missing, so callers that rely on this must ensure full history is fetched (for example fetch-depth: 0).
func ListRemoteBranches ¶ added in v0.2.0
ListRemoteBranches returns the branch names known for the given remote via the remote-tracking refs refs/remotes/<remote>/*. The remote prefix and the symbolic HEAD pointer are stripped, so "refs/remotes/origin/env/test" is returned as "env/test". The remote must have been fetched first; a shallow or partial fetch that omits branches will leave them out of the result.
func ListTags ¶ added in v0.2.0
ListTags returns every tag in the repository. It returns an empty slice when the repository has no tags.
func RemoteBranchSHA ¶ added in v0.2.0
RemoteBranchSHA returns the SHA of the remote-tracking ref refs/remotes/<remote>/<name> by running "git rev-parse". The returned SHA is whitespace-trimmed. An error is returned if the ref cannot be resolved.
This resolves a remote-tracking ref, so the remote must have been fetched first. A shallow or partial fetch that omits the branch will cause this to fail.