In buildMilestone 2 under way

“Claude, rebuild GitHub. Make no mistakes. Oh, and do it in Rust.”

Git hosting compatible with GHES 3.22

Point gh, git, VS Code and JetBrains at a Graftyard host and they treat it as GitHub Enterprise Server 3.22. Every push is held in two regions before it is acknowledged.

Why build it

GitHub was up 92.83% of the last 90 days

GitHub stopped publishing its own uptime numbers. Rebuilt from its status feed, the last 90 days hold 69 incidents and about 155 hours of degraded service. Each one leaves teams unable to push, review or ship.

  • 44 of 90 days had a minor, major or critical incident.
  • Git operations 99.34%, pull requests 98.07%, Actions 97.12%.
  • Graftyard's answer: three sites on three continents, so losing one region costs seconds, not hours.

What happens when something fails

GitHub, all services92.83%
10 August 20267 November 2026
Git Operations99.34%
Webhooks99.21%
API Requests97.99%
Issues98.40%
Pull Requests98.07%
Actions97.12%

Data: The Missing GitHub Status Page by Marek Šuppa, rebuilt from githubstatus.com, as of 7 November 2026. Uptime counts minor incidents as downtime, as that page does.

Works with the GitHub clients you run

Clients detect a GHES 3.22 host from its API and use its paths. Nothing is installed on a laptop or a build agent.

  • /api/v3/meta answers installed_version 3.22.0, so every client takes its GHES path.
  • The GraphQL schema is generated from the GHES 3.22 SDL, all 1,626 types.
  • No GHES response changes for a client that does not opt in to the agent layer.

Tested with real GitHub clients

Unmodified gh, git and git-lfs ran against a Graftyard host on Cloudflare. Their replies were checked against the pinned GHES 3.22 schemas.

  • 348 of 348 git client checks pass: 29 checks, 12 runs, git 2.39.5, 2.51.0 and 2.56.0, with and without a site failing.
  • gh 2.102.1 issue, pull request and release commands, and git-lfs 3.8.0 push, clone, pull and locks, all pass.
  • 0 schema failures across 43 live REST, GraphQL and LFS replies, and 93 replayed ones.

Every GHES test

Every git push held in two regions

Each repository lives on three sites: North America, Europe and Asia-Pacific. A push is acknowledged only after sites in two regions hold it.

  • 107 to 189 ms median for the one cross-region round a write needs, under load.
  • 172 to 370 ms median commit with one entry in flight; p99 399 to 690 ms.
  • 11.0 to 12.9 s to recover from losing a region's members, with 0 failed operations.

How a push is held

Faults on, every acknowledged write kept

For 104.6 hours on Cloudflare a chaos driver reset members, moved leaders and dropped calls while clients wrote. Afterwards every site's log was read back.

  • 0 of 3,588,424 acknowledged writes lost in the audited runs.
  • 12,304,207 operations checked for linearizability with Porcupine.
  • 16,258 member resets and 10,680 leadership transfers injected.

The chaos runs

Questions

What teams on GitHub Enterprise Server ask first.

Why not Artifacts

Which GitHub version does it match?

GitHub Enterprise Server 3.22. Clients read it from /api/v3/meta and use the GHES paths.

Do I need a new GitHub client or plugin?

No. Point gh, git, your IDE or Terraform at the host as you would at GHES.

Where does Graftyard run?

Only on Cloudflare: as a managed service, in your own Cloudflare account, or self-hosted.

Why not build it on Cloudflare Artifacts?

A new Artifacts repository is capped at 1 GB and lives in one place. The full answer has its own page.

Can AI coding agents use Graftyard?

Yes, as GitHub Apps with ordinary tokens. An opt-in agent layer adds task leases and an activity feed.

When can I use Graftyard?

It is in build: Milestones 0 and 1 are closed and Milestone 2 is under way.