git

package
v1.222.0-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2026 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

Package git is a generated GoMock package.

Index

Constants

View Source
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
)
View Source
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

View Source
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.

View Source
var ErrInvalidBranchName = errors.New("invalid branch name")

ErrInvalidBranchName indicates a branch name contains invalid characters.

View Source
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

func ConfiguredRepositoryNames(cfg *schema.GitConfig) []string

ConfiguredRepositoryNames returns the sorted logical names under git.repositories.

func CreateWorktree added in v1.203.0

func CreateWorktree(repoDir, targetCommit string) (string, error)

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

func CreateWorktreeWithFetchRecovery(repoDir, targetCommit, targetBranch string) (string, error)

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

func DeepenFetch(repoDir, branch string, depth int) error

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

func DefaultWorkdir(name string) (string, error)

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

func DefaultWorkdirPath(name string) string

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

func FetchRef(repoDir, branch string) error

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

func GetCurrentBranch() (string, error)

GetCurrentBranch returns the current Git branch name.

func GetCurrentCommitSHA added in v1.221.0

func GetCurrentCommitSHA() (string, error)

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

func GetRoot() (string, error)

GetRoot returns the absolute root path of the current Git worktree.

func GetWorktreeParentDir added in v1.203.0

func GetWorktreeParentDir(worktreePath string) string

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

func MergeBase(repoDir, targetBranch string) (string, error)

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

func MergeBaseWithAutoFetch(repoDir, targetBranch string) (string, error)

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:

  1. Run MergeBase. If it succeeds, return the SHA.
  2. If it fails because origin/<targetBranch> is not present locally, call FetchRef(repoDir, targetBranch) and retry MergeBase.
  3. 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.
  4. 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

func ProcessTagBranch(input string) (string, error)

ProcessTagBranch returns the current Git branch name for !git.branch tags.

func ProcessTagHost added in v1.221.0

func ProcessTagHost(input string) (string, error)

ProcessTagHost returns the repository host (e.g. `github.com`) for the !git.host tag.

func ProcessTagName added in v1.221.0

func ProcessTagName(input string) (string, error)

ProcessTagName returns the bare repository name for the !git.name tag.

func ProcessTagOwner added in v1.221.0

func ProcessTagOwner(input string) (string, error)

ProcessTagOwner returns the repository owner/org for the !git.owner tag.

func ProcessTagRef added in v1.221.0

func ProcessTagRef(input string) (string, error)

ProcessTagRef returns the immutable Git ref used for source pinning. It currently aliases ProcessTagSHA.

func ProcessTagRepository added in v1.221.0

func ProcessTagRepository(input string) (string, error)

ProcessTagRepository returns the `<owner>/<repo>` slug for the !git.repository tag.

func ProcessTagRoot added in v1.221.0

func ProcessTagRoot(input string) (string, error)

ProcessTagRoot returns the current Git worktree root for !repo-root and !git.root tags.

func ProcessTagSHA added in v1.221.0

func ProcessTagSHA(input string) (string, error)

ProcessTagSHA returns the current Git HEAD commit SHA for !git.sha and !git.ref tags.

func ProcessTagURL added in v1.221.0

func ProcessTagURL(input string) (string, error)

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

func ValidateRepoRelativePath(worktree, rel string) (string, error)

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

type Author struct {
	Name  string
	Email string
}

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

type CommitResult struct {
	Committed bool
	SHA       string
}

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 NewExecRunner

func NewExecRunner() *ExecRunner

NewExecRunner returns the production Runner.

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

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

func NewProvider(name string) (Provider, error)

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.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL