Documentation
¶
Overview ¶
Package git is a generated GoMock package.
Index ¶
- Constants
- Variables
- func ComposeEnvironment(ctx context.Context, base []string, identity string, ...) ([]string, error)
- func ConfiguredRepositoryNames(cfg *schema.GitConfig) []string
- func CreateWorktree(repoDir, targetCommit string) (string, error)
- func CreateWorktreeWithFetchRecovery(repoDir, targetCommit, targetBranch string) (string, error)
- func DeepenFetch(repoDir, branch string, depth int) error
- func DefaultWorkdir(name string) (string, error)
- func DefaultWorkdirPath(name string) string
- func EnsureGitSafeDirectory() error
- func FetchRef(repoDir, branch string) error
- func GetCurrentBranch() (string, error)
- func GetCurrentCommitSHA() (string, error)
- func GetLocalRepo() (*git.Repository, error)
- func GetRepoConfig(repo *git.Repository) (*config.Config, error)
- func GetRoot() (string, error)
- func GetWorktreeParentDir(worktreePath string) string
- func MergeBase(repoDir, targetBranch string) (string, error)
- func MergeBaseWithAutoFetch(repoDir, targetBranch string) (string, error)
- func OpenWorktreeAwareRepo(path string) (*git.Repository, error)
- func ProcessTagBranch(input string) (string, error)
- func ProcessTagHost(input string) (string, error)
- func ProcessTagName(input string) (string, error)
- func ProcessTagOwner(input string) (string, error)
- func ProcessTagRef(input string) (string, error)
- func ProcessTagRepository(input string) (string, error)
- func ProcessTagRoot(input string) (string, error)
- func ProcessTagSHA(input string) (string, error)
- func ProcessTagURL(input string) (string, error)
- func RegisterProvider(name string, factory ProviderFactory)
- func RegisteredProviders() []string
- func RemoveWorktree(repoDir, worktreePath string)
- func ValidateRepoRelativePath(worktree, rel string) (string, error)
- type Author
- type CloneOptions
- type CommitOptions
- type CommitResult
- type DefaultGitRepo
- type DefaultRepositoryOperations
- type DiffOptions
- type DiffResult
- type ExecRunner
- type GitRepoInterface
- type IdentityEnvironmentProvider
- type InitOptions
- type MockRepositoryOperations
- type MockRepositoryOperationsMockRecorder
- type Provider
- type ProviderFactory
- type PullOptions
- type PushOptions
- type RepoContext
- type RepoInfo
- type RepositoryOperations
- type ResolvedRepository
- type RunOptions
- type RunResult
- type Runner
- type SigningMode
- type StatusEntry
- type StatusOptions
- type StatusResult
Constants ¶
const ( // DefaultProviderName is the universal, host-agnostic execution backend. DefaultProviderName = "cli" // DefaultRemote is the default Git remote name. DefaultRemote = "origin" // DefaultPushRetries bounds the push retry loop on non-fast-forward rejection. DefaultPushRetries = 3 )
const ( YAMLFuncRepoRoot = "!repo-root" YAMLFuncRoot = "!git.root" YAMLFuncSHA = "!git.sha" YAMLFuncBranch = "!git.branch" YAMLFuncRef = "!git.ref" YAMLFuncRepository = "!git.repository" YAMLFuncOwner = "!git.owner" YAMLFuncName = "!git.name" YAMLFuncHost = "!git.host" YAMLFuncURL = "!git.url" )
Variables ¶
var ErrHeadOnTargetBranch = fmt.Errorf("HEAD is on target branch (merge-base equals HEAD)")
ErrHeadOnTargetBranch is returned when HEAD is already on the target branch (e.g., the merge commit was checked out), making merge-base equal to HEAD itself.
var ErrInvalidBranchName = errors.New("invalid branch name")
ErrInvalidBranchName indicates a branch name contains invalid characters.
var ErrNoCommonAncestor = fmt.Errorf("no common ancestor found")
ErrNoCommonAncestor is returned when no merge-base exists between two commits.
Functions ¶
func ComposeEnvironment ¶
func ComposeEnvironment(ctx context.Context, base []string, identity string, envProvider IdentityEnvironmentProvider) ([]string, error)
ComposeEnvironment merges the identity environment for the given identity over the base environment list. An empty identity returns base unchanged (ambient credentials and the developer's own Git config still apply).
func ConfiguredRepositoryNames ¶
ConfiguredRepositoryNames returns the sorted logical names under git.repositories.
func CreateWorktree ¶ added in v1.203.0
CreateWorktree creates a new git worktree at the specified path, checked out to the given target ref or SHA. This uses `git worktree add --detach` to create an isolated worktree that shares the repository's object database but has its own HEAD, allowing checkout operations without affecting the main worktree. The repoDir should be the path to any directory in the repository (main worktree or any linked worktree). Returns the path to the created worktree directory.
func CreateWorktreeWithFetchRecovery ¶ added in v1.217.0
CreateWorktreeWithFetchRecovery creates a worktree at targetCommit, with a one-shot self-heal: if the initial CreateWorktree call fails because the target commit is missing from the local object DB AND a non-empty targetBranch is provided, the function performs a targeted `git fetch origin <targetBranch>` and retries.
This is the common shallow-clone CI scenario: actions/checkout@v6 with the default fetch-depth=1 only pulls the PR head, so a base SHA resolved from the GitHub event payload (event.pull_request.base.sha) often is not in the local object DB. A targeted fetch of the target branch is enough to make the SHA available without paying for a full unshallow.
Recovery is gated to ErrGitRefNotFound so that unrelated failures (temp directory creation, repo state corruption, permissions, etc.) propagate directly instead of being misdiagnosed as "target commit not available locally" and noisily attempting an unrelated fetch.
On final failure, the original CreateWorktree error is preserved (joined with the fetch error if the fetch also failed) so the caller can still surface its hints to the user.
func DeepenFetch ¶ added in v1.217.0
DeepenFetch deepens a shallow clone by fetching additional history for a branch. Used as a second-stage fetch when the initial FetchRef succeeds but merge-base still cannot find a common ancestor (i.e., the fork point is older than the initial fetch depth).
Depth is the number of commits to deepen by, measured from the current shallow boundary. A value of 0 or negative means "fetch full history" (equivalent to --unshallow).
func DefaultWorkdir ¶
DefaultWorkdir resolves the automatic XDG workdir for a named repository: $XDG_CACHE_HOME/atmos/git/repositories/<name>. Placing workdirs under the XDG cache root lets the native CI cache capture and restore managed clones; clone reconciles restored (possibly stale) workdirs.
func DefaultWorkdirPath ¶
DefaultWorkdirPath resolves the automatic XDG workdir path without creating it.
func EnsureGitSafeDirectory ¶ added in v1.215.0
func EnsureGitSafeDirectory() error
EnsureGitSafeDirectory adds GITHUB_WORKSPACE to git's safe.directory list when running in a GitHub Actions container. Container jobs run as a different user than the checkout owner, causing git to reject the repo as "dubious ownership".
func FetchRef ¶ added in v1.217.0
FetchRef fetches a single branch from the "origin" remote using a narrow refspec. This minimizes data transfer compared to a full fetch, which is important for CI shallow clones where remote-tracking refs may not exist locally. The repoDir should be a path inside the repository.
func GetCurrentBranch ¶ added in v1.221.0
GetCurrentBranch returns the current Git branch name.
func GetCurrentCommitSHA ¶ added in v1.221.0
GetCurrentCommitSHA returns the SHA of the current HEAD commit.
func GetLocalRepo ¶
func GetLocalRepo() (*git.Repository, error)
func GetRepoConfig ¶
func GetRepoConfig(repo *git.Repository) (*config.Config, error)
func GetRoot ¶ added in v1.221.0
GetRoot returns the absolute root path of the current Git worktree.
func GetWorktreeParentDir ¶ added in v1.203.0
GetWorktreeParentDir returns the parent directory of a worktree path. This is useful for cleanup since CreateWorktree creates a parent temp dir containing the worktree.
func MergeBase ¶ added in v1.214.0
MergeBase computes the common ancestor between HEAD and origin/<targetBranch> inside the repository at repoDir. This is the gold standard for determining the fork point of a PR branch, regardless of what commit is checked out or which merge strategy was used.
The repoDir argument is a path inside the target repository (the .git directory is auto-detected upward from this path). Use "." for the current working directory.
Returns an error if:
- the local repo cannot be opened
- origin/<targetBranch> does not exist (e.g., shallow checkout)
- no common ancestor exists between the two commits
- the merge-base equals HEAD (HEAD is on the target branch)
MergeBase is a pure read operation. It will not modify the local object database. Callers running in CI shallow checkouts should prefer MergeBaseWithAutoFetch, which transparently fetches the target branch and deepens history when needed.
func MergeBaseWithAutoFetch ¶ added in v1.217.0
MergeBaseWithAutoFetch is a CI-aware wrapper around MergeBase that transparently recovers from shallow-clone failures by fetching the target branch and, if needed, deepening history.
RepoDir is a path inside the repository (used to scope the fetch).
Behavior:
- Run MergeBase. If it succeeds, return the SHA.
- If it fails because origin/<targetBranch> is not present locally, call FetchRef(repoDir, targetBranch) and retry MergeBase.
- If MergeBase still returns ErrNoCommonAncestor (the shallow boundary does not reach the fork point), call DeepenFetch with deepenStep and retry once. This is bounded — we deepen at most once.
- If recovery is impossible (no network, target branch does not exist remotely, etc.), return the original MergeBase error so the caller can fall through to its own fallback chain.
ErrHeadOnTargetBranch is propagated unchanged (no fetch can fix it).
func OpenWorktreeAwareRepo ¶ added in v1.191.0
func OpenWorktreeAwareRepo(path string) (*git.Repository, error)
OpenWorktreeAwareRepo opens a Git repository at the given path, handling both regular repositories and worktrees correctly. It uses EnableDotGitCommonDir to properly support worktrees with access to the main repository's config, remotes, and references.
func ProcessTagBranch ¶ added in v1.221.0
ProcessTagBranch returns the current Git branch name for !git.branch tags.
func ProcessTagHost ¶ added in v1.221.0
ProcessTagHost returns the repository host (e.g. `github.com`) for the !git.host tag.
func ProcessTagName ¶ added in v1.221.0
ProcessTagName returns the bare repository name for the !git.name tag.
func ProcessTagOwner ¶ added in v1.221.0
ProcessTagOwner returns the repository owner/org for the !git.owner tag.
func ProcessTagRef ¶ added in v1.221.0
ProcessTagRef returns the immutable Git ref used for source pinning. It currently aliases ProcessTagSHA.
func ProcessTagRepository ¶ added in v1.221.0
ProcessTagRepository returns the `<owner>/<repo>` slug for the !git.repository tag.
func ProcessTagRoot ¶ added in v1.221.0
ProcessTagRoot returns the current Git worktree root for !repo-root and !git.root tags.
func ProcessTagSHA ¶ added in v1.221.0
ProcessTagSHA returns the current Git HEAD commit SHA for !git.sha and !git.ref tags.
func ProcessTagURL ¶ added in v1.221.0
ProcessTagURL returns the repository remote URL for the !git.url tag.
func RegisterProvider ¶
func RegisterProvider(name string, factory ProviderFactory)
RegisterProvider registers a provider factory under a name. Providers self-register from init() (e.g. pkg/git/providers/cli), following the standard Atmos registry pattern.
func RegisteredProviders ¶
func RegisteredProviders() []string
RegisteredProviders returns the sorted names of registered providers.
func RemoveWorktree ¶ added in v1.203.0
func RemoveWorktree(repoDir, worktreePath string)
RemoveWorktree removes a git worktree using `git worktree remove`. This properly unregisters the worktree from git's tracking in addition to removing the directory. The repoDir parameter should be the path to any directory in the repository (main worktree or any linked worktree).
func ValidateRepoRelativePath ¶
ValidateRepoRelativePath ensures a repo-relative path stays inside the worktree after cleaning, returning its absolute path. Path traversal out of the worktree returns ErrGitPathEscapesWorktree.
Types ¶
type Author ¶
Author is the commit author/committer identity injected per invocation (CI runners typically have no user.name/user.email configured).
type CloneOptions ¶
type CloneOptions struct {
RepoContext
// URI is the remote repository URI.
URI string
// Depth is the shallow-clone depth; 0 means full history.
Depth int
// Filter is an optional partial-clone filter spec (e.g. "blob:none").
Filter string
// SingleBranch limits the clone to the configured branch.
SingleBranch bool
// Submodules enables submodule initialization.
Submodules bool
// ExtraArgs are native git arguments (from `--` on the command line)
// appended verbatim to the `git clone` invocation by the cli provider.
// They apply only to a fresh clone, not when reconciling an existing
// workdir (where no `git clone` runs).
ExtraArgs []string
}
CloneOptions configures Clone. Clone is defined as reconcile: clone when the workdir is absent, otherwise fetch and fast-forward to the expected ref.
type CommitOptions ¶
type CommitOptions struct {
RepoContext
// Message is the commit message (trailers are appended separately).
Message string
// Paths scopes staging to the given repo-relative paths. When set, dirty
// files outside these paths fail the commit (ErrGitDirtyUnmanagedFiles).
// When empty, only already-staged changes are committed.
Paths []string
// Signing selects the signing mode; empty means SigningAuto.
Signing SigningMode
// Author overrides the author/committer identity when non-nil.
Author *Author
// Trailers are appended to the message as "Key: value" trailer lines
// (provenance: Atmos-Stack, Atmos-Component, Atmos-Source-SHA).
Trailers map[string]string
}
CommitOptions configures Commit.
type CommitResult ¶
CommitResult reports the outcome of Commit. A no-op commit is not an error: it returns Committed=false with a nil error.
type DefaultGitRepo ¶ added in v1.192.0
type DefaultGitRepo struct{}
DefaultGitRepo is the default implementation of GitRepoInterface.
func (*DefaultGitRepo) GetCurrentCommitSHA ¶ added in v1.192.0
func (d *DefaultGitRepo) GetCurrentCommitSHA() (string, error)
GetCurrentCommitSHA returns the SHA of the current HEAD commit.
func (*DefaultGitRepo) GetLocalRepoInfo ¶ added in v1.192.0
func (d *DefaultGitRepo) GetLocalRepoInfo() (*RepoInfo, error)
GetLocalRepoInfo returns information about the local git repository.
func (*DefaultGitRepo) GetRepoInfo ¶ added in v1.192.0
func (d *DefaultGitRepo) GetRepoInfo(repo *git.Repository) (RepoInfo, error)
GetRepoInfo returns the repository information for the given git.Repository.
type DefaultRepositoryOperations ¶ added in v1.195.0
type DefaultRepositoryOperations struct{}
DefaultRepositoryOperations implements RepositoryOperations using real git operations.
func (*DefaultRepositoryOperations) GetLocalRepo ¶ added in v1.195.0
func (d *DefaultRepositoryOperations) GetLocalRepo() (*git.Repository, error)
GetLocalRepo opens the local git repository.
func (*DefaultRepositoryOperations) GetRepoInfo ¶ added in v1.195.0
func (d *DefaultRepositoryOperations) GetRepoInfo(localRepo *git.Repository) (RepoInfo, error)
GetRepoInfo extracts repository information.
type DiffOptions ¶
type DiffOptions struct {
RepoContext
// Paths limits the diff to the given repo-relative paths.
Paths []string
}
DiffOptions configures Diff.
type DiffResult ¶
type DiffResult struct {
// HasChanges is true when tracked or untracked changes exist.
HasChanges bool
// Output is the unified diff of tracked changes.
Output string
// Untracked lists untracked files not represented in Output.
Untracked []string
}
DiffResult reports differences between the worktree and HEAD.
type ExecRunner ¶
type ExecRunner struct {
// contains filtered or unexported fields
}
ExecRunner is the production Runner using pkg/exec.CommandExecutor.
func NewExecRunnerWithExecutor ¶
func NewExecRunnerWithExecutor(executor pkgexec.CommandExecutor) *ExecRunner
NewExecRunnerWithExecutor returns a Runner backed by the provided command executor.
func (*ExecRunner) Run ¶
func (r *ExecRunner) Run(ctx context.Context, command string, args []string, opts RunOptions) (RunResult, error)
Run executes the command and returns the captured result. A non-zero exit returns the result alongside an error wrapping ErrGitCommandExited; other failures (binary missing, context canceled) wrap ErrGitCommandFailed.
type GitRepoInterface ¶ added in v1.192.0
type GitRepoInterface interface {
GetLocalRepoInfo() (*RepoInfo, error)
GetRepoInfo(repo *git.Repository) (RepoInfo, error)
GetCurrentCommitSHA() (string, error)
}
GitRepoInterface defines the interface for git repository operations.
func NewDefaultGitRepo ¶ added in v1.192.0
func NewDefaultGitRepo() GitRepoInterface
NewDefaultGitRepo creates a new instance of DefaultGitRepo.
type IdentityEnvironmentProvider ¶
type IdentityEnvironmentProvider interface {
EnsureIdentityEnvironment(ctx context.Context, identityName string) (map[string]string, error)
}
IdentityEnvironmentProvider supplies the composed identity environment for an Atmos Auth identity (including linked auto-provision integrations such as github/sts, which materializes GIT_CONFIG_* variables). The Manager in pkg/auth satisfies this interface.
type InitOptions ¶
type InitOptions struct {
RepoContext
// URI is the configured remote repository URI, registered as the
// configured remote (default "origin") so commit/push work immediately.
URI string
// FromURI optionally seeds the new repository's content from another
// repository (a template or a repository being migrated).
FromURI string
// KeepHistory preserves FromURI's full history and keeps the source
// reachable as an additional remote ("upstream") so future updates can be
// pulled. When false (the default), the source content is imported with a
// single fresh initial commit and no link to the source remains.
KeepHistory bool
// Signing selects the signing mode for the fresh initial commit created
// when FromURI is set without KeepHistory; empty means SigningAuto.
Signing SigningMode
// Author overrides the author/committer identity for the fresh initial
// commit when non-nil.
Author *Author
// ExtraArgs are native git arguments (from `--` on the command line)
// appended verbatim to the primary git invocation by the cli provider:
// `git init` for an empty init, or the `git clone` of FromURI.
ExtraArgs []string
// Force deletes the existing workdir and re-initializes from scratch
// (destructive). It applies to both empty init and FromURI seeding. Without
// Force, an already-initialized repository is reconciled in place
// (idempotent: re-run `git init`, re-point the configured remote), while any
// other non-empty directory is refused.
Force bool
}
InitOptions configures Init. Init creates a new repository workdir from scratch — the inverse of Clone, for GitOps repositories whose remote has no content yet.
type MockRepositoryOperations ¶ added in v1.195.0
type MockRepositoryOperations struct {
// contains filtered or unexported fields
}
MockRepositoryOperations is a mock of RepositoryOperations interface.
func NewMockRepositoryOperations ¶ added in v1.195.0
func NewMockRepositoryOperations(ctrl *gomock.Controller) *MockRepositoryOperations
NewMockRepositoryOperations creates a new mock instance.
func (*MockRepositoryOperations) EXPECT ¶ added in v1.195.0
func (m *MockRepositoryOperations) EXPECT() *MockRepositoryOperationsMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockRepositoryOperations) GetLocalRepo ¶ added in v1.195.0
func (m *MockRepositoryOperations) GetLocalRepo() (*git.Repository, error)
GetLocalRepo mocks base method.
func (*MockRepositoryOperations) GetRepoInfo ¶ added in v1.195.0
func (m *MockRepositoryOperations) GetRepoInfo(localRepo *git.Repository) (RepoInfo, error)
GetRepoInfo mocks base method.
type MockRepositoryOperationsMockRecorder ¶ added in v1.195.0
type MockRepositoryOperationsMockRecorder struct {
// contains filtered or unexported fields
}
MockRepositoryOperationsMockRecorder is the mock recorder for MockRepositoryOperations.
func (*MockRepositoryOperationsMockRecorder) GetLocalRepo ¶ added in v1.195.0
func (mr *MockRepositoryOperationsMockRecorder) GetLocalRepo() *gomock.Call
GetLocalRepo indicates an expected call of GetLocalRepo.
func (*MockRepositoryOperationsMockRecorder) GetRepoInfo ¶ added in v1.195.0
func (mr *MockRepositoryOperationsMockRecorder) GetRepoInfo(localRepo any) *gomock.Call
GetRepoInfo indicates an expected call of GetRepoInfo.
type Provider ¶
type Provider interface {
Init(ctx context.Context, opts *InitOptions) error
Clone(ctx context.Context, opts *CloneOptions) error
Pull(ctx context.Context, opts *PullOptions) error
Status(ctx context.Context, opts *StatusOptions) (*StatusResult, error)
Diff(ctx context.Context, opts *DiffOptions) (*DiffResult, error)
Commit(ctx context.Context, opts *CommitOptions) (*CommitResult, error)
Push(ctx context.Context, opts *PushOptions) error
}
Provider is a pluggable Git execution backend. The "cli" provider shells out to the git CLI (the only v1 implementation); a future "github" provider may use host APIs for capabilities like pull-request publishing.
func NewProvider ¶
NewProvider returns a new instance of the named provider. An empty name resolves to the default "cli" provider.
type ProviderFactory ¶
type ProviderFactory func() Provider
ProviderFactory constructs a Provider instance.
type PullOptions ¶
type PullOptions struct {
RepoContext
// ExtraArgs are native git arguments (from `--` on the command line)
// appended verbatim to the `git pull --ff-only` invocation by the cli
// provider.
ExtraArgs []string
}
PullOptions configures Pull. Pull is always fast-forward-only.
type PushOptions ¶
type PushOptions struct {
RepoContext
// Retries bounds the rebase-and-retry loop on non-fast-forward rejection.
Retries int
// ExtraArgs are native git arguments (from `--` on the command line)
// appended verbatim to each `git push` invocation by the cli provider
// (not to the rebase recovery between retries).
ExtraArgs []string
}
PushOptions configures Push.
type RepoContext ¶
type RepoContext struct {
// Workdir is the repository worktree directory.
Workdir string
// Remote name; empty means "origin".
Remote string
// Branch to operate on; empty means the current/default branch.
Branch string
// Env is the fully composed subprocess environment (process env plus
// identity environment). Nil means the current process environment.
Env []string
}
RepoContext carries the common inputs every repository operation needs.
type RepoInfo ¶
type RepoInfo struct {
LocalRepoPath string
LocalWorktree *git.Worktree
LocalWorktreePath string
RepoUrl string
RepoOwner string
RepoName string
RepoHost string
}
func GetRepoInfo ¶
func GetRepoInfo(localRepo *git.Repository) (RepoInfo, error)
type RepositoryOperations ¶ added in v1.195.0
type RepositoryOperations interface {
// GetLocalRepo opens the local git repository.
GetLocalRepo() (*git.Repository, error)
// GetRepoInfo extracts repository information (URL, name, owner, host).
GetRepoInfo(localRepo *git.Repository) (RepoInfo, error)
}
RepositoryOperations defines operations for working with git repositories. This interface allows mocking of git operations in tests.
type ResolvedRepository ¶
type ResolvedRepository struct {
Name string
URI string
Provider string
Branch string
Remote string
Workdir string
Clone schema.GitCloneConfig
Identity string
Signing SigningMode
Author *Author
PushRetries int
// From is the default seed source for `atmos git init` (the --from flag
// overrides it). Empty means init creates an empty repository.
From string
// KeepHistory is the default for init's --keep-history (preserve source
// history, keep it pullable as 'upstream'). Only meaningful with From.
KeepHistory bool
}
ResolvedRepository is a managed repository with all defaults applied.
func ResolveRepository ¶
func ResolveRepository(cfg *schema.GitConfig, name string) (*ResolvedRepository, error)
ResolveRepository looks up a named repository under git.repositories and applies defaults (provider=cli, remote=origin, signing=auto, retries=3, automatic XDG workdir).
type RunOptions ¶
type RunOptions struct {
// Dir is the working directory for the subprocess.
Dir string
// Env is the full subprocess environment; nil inherits the process env.
Env []string
// Stderr receives the subprocess stderr stream as it is produced.
// Production callers pass a masked writer; nil discards.
Stderr io.Writer
}
RunOptions configures a single git subprocess invocation.
type RunResult ¶
type RunResult struct {
// Stdout is the captured standard output.
Stdout string
// ExitCode is the subprocess exit code (0 on success).
ExitCode int
// StderrTail holds the last bytes of stderr for error classification only.
// It must never be embedded in error messages (it may contain secrets and
// bypasses the writer-level masking pipeline).
StderrTail string
}
RunResult is the outcome of a git subprocess invocation.
type Runner ¶
type Runner interface {
Run(ctx context.Context, command string, args []string, opts RunOptions) (RunResult, error)
}
Runner executes git commands. The production implementation shells out; tests substitute a fake to assert command construction.
type SigningMode ¶
type SigningMode string
SigningMode controls commit signing behavior.
const ( // SigningAuto passes no signing flag; Git config decides. SigningAuto SigningMode = "auto" // SigningAlways passes -S to git commit. SigningAlways SigningMode = "always" // SigningNever passes --no-gpg-sign to git commit. SigningNever SigningMode = "never" )
type StatusEntry ¶
type StatusEntry struct {
// Code is the two-character porcelain status code (e.g. " M", "??").
Code string
// Path is the repo-relative path.
Path string
}
StatusEntry is one porcelain status entry.
type StatusOptions ¶
type StatusOptions struct {
RepoContext
// Paths limits status to the given repo-relative paths.
Paths []string
}
StatusOptions configures Status.
type StatusResult ¶
type StatusResult struct {
// Clean is true when there are no changes (within Paths, when given).
Clean bool
// Entries lists the porcelain entries.
Entries []StatusEntry
}
StatusResult reports worktree state.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package hooks implements Atmos-managed Git hook shims: writing shim scripts into .git/hooks that delegate to `atmos git hooks run`, removing them, and executing the configured command for a named hook.
|
Package hooks implements Atmos-managed Git hook shims: writing shim scripts into .git/hooks that delegate to `atmos git hooks run`, removing them, and executing the configured command for a named hook. |
|
providers
|
|
|
cli
Package cli implements the Git CLI provider: the universal, host-agnostic execution backend that shells out to git.
|
Package cli implements the Git CLI provider: the universal, host-agnostic execution backend that shells out to git. |