How it works

A mirror, not an export

Anyone can verify this backup with the git they already have. That is deliberate: a disaster recovery tool you cannot inspect is another thing to trust.

Recovery that stays in your control

A mirror remains useful even when its original host does not.

Why it matters

Why this exists

GitHub's account recovery policy is explicit. Support will not recover the contents of a locked account. There is no identity check that unlocks it and no escalation path that returns your repositories.

“GitHub Support will not recover the contents of a user or organization account that is locked.”
GitHub Account Recovery Policy

A backup that requires GitHub to restore is not a backup of your GitHub account. It is a second copy with the same single point of failure.

How it works

What a backup does

  • Creates a bare mirror of the repository.
  • Fetches only objects that are new since the last run.
  • Pins every branch tip under a dated ref.
  • Uploads the new pack and the small metadata files.
  • Runs git fsck --full on a rebuilt copy to prove it.

A backup with nothing new uploads zero packs. A backup after a force-push still has the previous day's tips, because they live under their own namespace.

The three details that make it work

Each one is a config line or a refspec, not a new storage engine.

Packs

Append-only objects

gc.auto 0 stops git repacking on its own schedule, so a fetch writes one new pack and never touches the old ones. That is why an incremental backup uploads kilobytes, not gigabytes.

Snapshots

Dated branch tips

Every branch tip is copied to refs/slerim/<date>/heads/*. A force-push or a branch delete cannot remove it, and the ref keeps those objects reachable so garbage collection cannot prune them.

Restore

Bundles, not exports

A restore is a git bundle. Clone it with plain git, check out any commit, and you are done. There is no proprietary format and no export job to wait for.

Restore, in full

The same three commands whether the account was banned yesterday or the repository was deleted last year.

Every backup is verified by rebuilding it from the bucket and running git fsck. The demo lets you trigger that check yourself.
$ git clone relay-api.bundle
$ cd relay-api
$ git log --all --oneline -3
4f2c1ab feat: structured request logs
9b1d0e2 perf: index commits by repo
1c7a8f0 fix: verify webhook signature
$ git checkout 9b1d0e2

See it against a disconnected account.

The demo is seeded, signed out of GitHub, and every commit still restores.

Open the demo