# Source control for AI agents

As of 29 Oct 2026, an AI agent gets in on its own at 1 of the 5 products we drove in source control. Furthest an agent got: Graphite, L2 · Gets in, driven 28 Oct 2026.

Our drives of 5 source control products, 27 to 29 Oct 2026.

**For an agent today:** [Graphite](https://agentdrives.com/tools/graphite?via=md), at L2 Gets in. CLI: `npm install -g @withgraphite/graphite-cli`.

## 5 products by level

1 of 5 let our agent in on its own.

- L5 Autonomous: 0
- L4 Runs on its own: 0
- L3 Does the work: 0
- L2 Gets in: 1 (Graphite)
- L1 Needs a person: 4 (Bitbucket, Codeberg, Gitea, GitHub)
- L0 Read-only: 0

## Every product we drove

Open a product for its whole drive.

Sorted by level, then work done, then time to the first call ([how we order lists](https://agentdrives.com/method?via=md#order)).

| Product | Level | Stopped at | Route | Core work | Driven |
|---|---|---|---|---|---|
| [Graphite](https://agentdrives.com/tools/graphite?via=md) | L2 Gets in | Paying: Not tried: paying needs an account | CLI | 1 of 8 | 28 Oct 2026 |
| [Bitbucket](https://agentdrives.com/tools/bitbucket?via=md) | L1 Needs a person | Sign-up: Visible reCAPTCHA on the Atlassian sign-up | None | No task done | 27 Oct 2026 |
| [Codeberg](https://agentdrives.com/tools/codeberg?via=md) | L1 Needs a person | Sign-up: robots.txt closes Codeberg to AI agents | None | No task done | 28 Oct 2026 |
| [Gitea](https://agentdrives.com/tools/gitea?via=md) | L1 Needs a person | Sign-up: robots.txt bars AI agents from gitea.com sign-up | None | No task done | 29 Oct 2026 |
| [GitHub](https://agentdrives.com/tools/github?via=md) | L1 Needs a person | Sign-up: DataDome block on the sign-up page | None | No task done | 27 Oct 2026 |

## How agents connect

How many of the 5 have each one, tested in our drives or listed in their docs.

| API | MCP server | CLI | SDK | Agent payment |
|---|---|---|---|---|
| 4 of 5 | 4 of 5 | 3 of 5 | 0 of 5 | 0 of 5 |

## Where agents drop out

Sign up loses the most: 4 of 5 stopped there or needed a person.

Of the 5 products driven, how many our agent passed on its own at each checkpoint.

| Checkpoint | Passed on its own | A person did it | Stopped | Nothing to do | Not reached | Not tried |
|---|---|---|---|---|---|---|
| Docs | 5 of 5 | 0 | 0 | 0 | 0 | 0 |
| Sign up | 0 of 5 | 2 | 2 | 1 | 0 | 0 |
| Verify | 0 of 5 | 0 | 0 | 1 | 4 | 0 |
| Key | 0 of 5 | 0 | 0 | 1 | 4 | 0 |
| First call | 1 of 5 | 0 | 0 | 0 | 4 | 0 |
| First action | 1 of 5 | 0 | 0 | 0 | 4 | 0 |
| Pay | 0 of 5 | 0 | 0 | 1 | 3 | 1 |
| Cancel | 0 of 5 | 0 | 0 | 1 | 4 | 0 |
| Delete | 0 of 5 | 0 | 0 | 1 | 4 | 0 |

## What an agent can do in each

The tasks most source control products share. Our agent did at least one at 1 of 5.

| Product | Open and merge a pull request | Review a pull request | Create a code repository | Create a task or issue | Publish a release | Push commits to a repository | Run a CI/CD workflow | Scan code for vulnerabilities |
|---|---|---|---|---|---|---|---|---|
| Graphite | blocked | blocked | – | done | – | – | – | – |
| Bitbucket | not tried | not tried | not tried | – | not tried | not tried | not tried | not tried |
| Codeberg | not tried | not tried | not tried | not tried | not tried | not tried | not tried | – |
| Gitea | not tried | not tried | not tried | not tried | not tried | not tried | not tried | not tried |
| GitHub | not tried | not tried | not tried | not tried | not tried | not tried | not tried | not tried |

## The walls our agent met

A bot check stopped our agent at 3 of 5, from 3 vendors.

- Cloudflare (at Sign up): stopped 1 of 5 (Gitea)
- DataDome (at Sign up): stopped 1 of 5 (GitHub)
- Google reCAPTCHA (at Sign up): stopped 1 of 5 (Bitbucket)
- Its robots.txt closes the way in (at Sign up): stopped 1 of 5 (Codeberg: robots.txt closes Codeberg to AI agents)

## What stops agents in source control

Sign-up stopped our agent at 4 of 5 products in our drives. A bot check stopped it at 3 of 5. Bitbucket's Atlassian sign-up showed a visible Google reCAPTCHA checkbox after the email. GitHub's sign-up page returned a DataDome block page, and its terms allow only accounts a person makes. Gitea Cloud's sign-up showed a visible Cloudflare Turnstile. At Codeberg and gitea.com, robots.txt closed sign-up to AI agents.

[Bitbucket](https://agentdrives.com/tools/bitbucket?via=md), [Codeberg](https://agentdrives.com/tools/codeberg?via=md), [Gitea](https://agentdrives.com/tools/gitea?via=md) and [GitHub](https://agentdrives.com/tools/github?via=md) sit at L1 · Needs a person. At Bitbucket and GitHub, every create in the API needs an account. Our agent got into [Graphite](https://agentdrives.com/tools/graphite?via=md) on its own, at L2 · Gets in.

Graphite's gt CLI runs locally with no account. With it, our agent created, restacked and deleted stacked branches, also through its built-in MCP server. Submitting pull requests needs a Graphite account, and its sign-up goes through GitHub.

[Written with AI](https://agentdrives.com/method?via=md#notes) from these drives, as of 29 October 2026.

## Use the data

The numbers on this page, for your own tools and agents.

- JSON: [/categories/source-control.json](https://agentdrives.com/categories/source-control.json?via=md)
- This page: [/categories/source-control](https://agentdrives.com/categories/source-control?via=md)

## Get your shortlist driven before you choose

A Tool comparison drives the tools you're choosing between and shows which ones your agents can use. $490 for three tools, ready in 48 hours.

[See the Tool comparison](https://agentdrives.com/stack-check) · [Check your own product free](https://agentdrives.com/scan?via=md)
