swh.loader.git.directory module#

swh.loader.git.directory.git() str[source]#

Get the path to the git executable.

Raises:

EnvironmentError if no opam executable is found

swh.loader.git.directory.checkout_repository_ref(git_url: str, git_ref: str, target: Path) Path[source]#

Checkout the reference git_ref (commit, tag or branch) from git repository located at git_url.

This function can raise for various reasons. This is expected to be caught by the main loop in the loader.

swh.loader.git.directory.list_git_tree(dirpath: bytes, dirname: bytes, entries: Iterable[Any]) bool[source]#

List a git tree. This ignores any repo_path/.git/* and empty folders. This is a filter for directory_to_objects() to ignore specific directories.

class swh.loader.git.directory.GitCheckoutLoader(*args, **kwargs)[source]#

Bases: BaseDirectoryLoader

Git directory loader in charge of ingesting a git tree at a specific commit, tag or branch into the swh archive.

As per the standard git hash computations, this ignores the .git and the empty directories.

The output snapshot is of the form:

id: <bytes>
branches:
  HEAD:
    target_type: alias
    target: <git-ref>
  <git-ref>:
    target_type: directory
    target: <directory-id>
visit_type: str = 'git-checkout'#
fetch_artifact() Iterator[Path][source]#

This fetches an artifact representation and yields its associated local representation (as Path). Depending on the implementation, this may yield contents coming from a remote location, or directories coming from tarball, svn tree, git tree, hg tree, …

Raises

NotFound if nothing is found; ValueError in case of mismatched checksums

build_snapshot() Snapshot[source]#

Build snapshot without losing the git reference context.