API Reference exgit v#0.1.0

Copy Markdown View Source

Modules

Pure-Elixir git client — clone, fetch, push, plus a path-oriented filesystem API for reading blobs by path.

OTP application callback for Exgit.

Per-line authorship attribution for a file at a ref.

Cloudflare Artifacts REST API client.

Cloudflare Artifacts repository.

Cloudflare Artifacts repo-scoped token.

Parser and emitter for git-style INI configuration files.

Helpers for constructing transport auth values, plus a small host-scoped credential mechanism.

Compare two git trees and return a list of changes.

Line-level diff between two sequences of lines via Myers diff.

Canonical error shape for exgit.

Path-oriented read/write access to a git repository — the interface an agent actually wants.

Partial-clone filter specs (git protocol v2 filter capability).

Behaviour for a git object-id hash function.

SHA-1 implementation of Exgit.Hash. Currently the only hash function used — git's default. SHA-256 repos are not yet supported.

Parser for git's on-disk index format (.git/index).

Git LFS (Large File Storage) pointer detection.

Umbrella type + dispatch for git's four object kinds: Blob, Tree, Commit, Tag. Each has its own struct in Exgit.Object.*; this module is the common entry point for decode/encode/sha/type across all of them.

Git blob object — a raw byte buffer.

A git commit object.

Git annotated tag object.

A git tree object.

Storage protocol for git objects, keyed by binary SHA-1.

On-disk git object store — reads and writes objects from <root>/objects/ in git's standard layout: loose objects under aa/bbbb... and packed objects via pack-*.{pack,idx}.

An object store that fetches missing objects on demand from a transport, caching them locally.

GenServer wrapper around Exgit.ObjectStore.Promisor that serializes cache access across processes.

Apply git's pack delta format against a base object.

Pack-index (.idx) writer and reader for git pack-index v2.

Parser for git packfiles (v2 / v3).

Forward-only, bounded-memory streaming pack parser.

Build a pack (build/1) and optionally its .idx index (build_with_index/1) from a list of objects.

Git's pkt-line framing.

Incremental, stateful pkt-line decoder for streaming HTTP bodies.

Lightweight profiler that aggregates :telemetry span events into a structured trace.

Validation of git ref names per git check-ref-format rules.

Filesystem-backed ref store.

In-memory implementation of the Exgit.RefStore protocol.

Opt-in process-based handle around a Repository.t() value.

Process-wide registry of shared RepoHandles keyed by URL.

A git repository value.

Telemetry event names and conventions for exgit.

Protocol for git transports — HTTP, file, and user-defined (e.g. SSH or in-memory). Any struct that implements this protocol can be used interchangeably with Exgit.clone/2, Exgit.fetch/3, and Exgit.push/3.

Exgit.Transport implementation that reads from and writes to a local on-disk git repository (bare or non-bare) without going over the network.

Exgit.Transport implementation for git smart-HTTP v2.

Commit graph traversal — ancestors/3 and merge_base/2.

An agent-loop working tree on top of a git ref.