A git repository.
Summary
Functions
Creates a synthetic workspace from this repository's HEAD and uncommitted file changes.
Returns details of a branch.
branches that match any of the given glob patterns.
Pack the given refs and the objects needed to reconstruct them into a Git bundle.
Returns details of a commit.
Returns details for HEAD.
A unique identifier for this GitRepository.
Return the latest stable release tag, falling back to HEAD when no release exists.
Returns details of a ref.
Returns details of a tag.
tags that match any of the given glob patterns.
Returns the changeset of uncommitted changes in the git repository.
The URL of the git repository.
Import a Git bundle after fetching and verifying all of its prerequisites.
Replace this repository's storage with the supplied self-contained Git repository, retaining its logical URL and push destinations.
Register a named remote on this repository, replacing any registered remote of the same name.
Types
Functions
@spec as_workspace(t(), [{:cwd, String.t() | nil}]) :: Dagger.Workspace.t()
Creates a synthetic workspace from this repository's HEAD and uncommitted file changes.
Pending changes are applied at the repository root. The staging split is not preserved. The source repository is not modified.
@spec branch(t(), String.t()) :: Dagger.GitRef.t()
Returns details of a branch.
branches that match any of the given glob patterns.
@spec bundle(t(), [String.t()], [{:base, Dagger.GitRef.t() | nil}]) :: Dagger.GitBundle.t()
Pack the given refs and the objects needed to reconstruct them into a Git bundle.
@spec commit(t(), String.t()) :: Dagger.GitCommit.t()
Returns details of a commit.
@spec head(t()) :: Dagger.GitRef.t()
Returns details for HEAD.
A unique identifier for this GitRepository.
@spec latest(t(), [{:version, String.t() | nil}]) :: Dagger.GitRef.t()
Return the latest stable release tag, falling back to HEAD when no release exists.
Release selection accepts an optional "v" prefix, incomplete versions, and zero-padded numeric components. This operation is pinned.
@spec ref(t(), String.t()) :: Dagger.GitRef.t()
Returns details of a ref.
@spec tag(t(), String.t()) :: Dagger.GitRef.t()
Returns details of a tag.
tags that match any of the given glob patterns.
@spec uncommitted(t()) :: Dagger.Changeset.t()
Returns the changeset of uncommitted changes in the git repository.
The URL of the git repository.
@spec with_bundle(t(), Dagger.GitBundle.t(), [{:prerequisite_ref, String.t() | nil}]) :: t()
Import a Git bundle after fetching and verifying all of its prerequisites.
@spec with_contents(t(), Dagger.Directory.t()) :: t()
Replace this repository's storage with the supplied self-contained Git repository, retaining its logical URL and push destinations.
Accepts a whole checkout (including .git and pending file edits), .git contents, or a bare repository. Does not initialize a repository, merge histories, or modify either input.
The receiver's logical routing wins over the supplied Git configuration; that configuration is not rewritten. Use Directory.asGit to open the supplied repository without retaining the receiver's routing.
Register a named remote on this repository, replacing any registered remote of the same name.
Registered remotes are recorded in checkouts materialized from this repository (GitRef.tree, Workspace.git.directory), so remote-aware tooling like gh can resolve and fetch from them. The origin remote also routes push when no explicit destination is passed: its push URL, or its URL, becomes the default destination.
Routing metadata only, never a credential grant: pushes still authenticate with the caller's own credentials and require approval as usual.