MADE:Explorations · Amplifier Bundle

amplifier-bundle-gitea

Ephemeral Git servers for fearless experimentation.
Mirror, work, promote — then throw it away.

Active · MIT License
March 2026 · microsoft/amplifier-bundle-gitea
The Problem

AI dev hits
production repos

⚠️

Rate Limit Pressure

Constant automated operations against GitHub burn through API rate limits, stalling real workflows.

📢

Repo Noise

Experimental branches, throwaway commits, test issues, and draft PRs clutter real repositories.

🚧

No Safe Sandbox

Creating hundreds of test repos for experimentation is impractical. Cleanup is a manual burden.

Every experimental commit touches production infrastructure. There's no way to freely experiment without worrying about cleanup or collateral damage.

The Solution

Disposable Gitea
in seconds

On-demand, ephemeral Gitea Docker instances. Mirror real repos, work freely in isolation, promote results back to GitHub when ready.

1

Create

Spin up a Gitea Docker container with one command. SQLite-backed, offline-mode, hardcoded admin — optimized for ephemeral use.

2

Mirror

Snapshot a GitHub repo into Gitea — git content, issues, PRs, and labels. One-time copy, not continuous sync.

3

Work

Freely create branches, commits, issues, and PRs against the Gitea instance. Zero impact on GitHub.

4

Promote or Destroy

Push a branch back to GitHub as a PR via HTTP (no git binary needed), then tear down the container.

Architecture

Three entities, three interaction patterns

🧑‍💻

Consumer

User or AI agent — drives the CLI

🐋

Gitea Container

Ephemeral Docker instance — git server with issues, PRs, branches

🌐

GitHub

Real repos — mirrored in, promoted back to

Lifecycle

create / destroy / status / list / token — managed by this package

Git Platform Ops

Standard Gitea API — repos, issues, PRs, branches. Consumer uses Gitea directly.

GitHub Sync

mirror-from-github and promote-to-github — the bridge between worlds

Key Features

What makes it work

Pure HTTP Promotion

The promote-to-github command fetches trees from Gitea and GitHub via API, diffs them, then creates blobs, trees, commits, refs, and PRs entirely over HTTP. No git binary needed on the host.

Amplifier Bundle

Functions as both a standalone CLI tool AND an Amplifier bundle with skills, behaviors, and context documents — so AI agents know how to use it natively.

Docker Labels as Truth

No local metadata files to drift out of sync. All state is discovered by querying Docker labels directly. Consumer controls networking with --network, --add-host, --hostname.

CLI-First, JSON Output

Every command returns JSON to stdout. Designed for programmatic consumption by agents, scripts, and orchestration layers.

Demo

Natural language, full lifecycle

An AI agent driving the complete flow through conversation:

1

"Create a new Gitea instance"

Agent invokes amplifier-gitea create — container spins up in seconds

2

"Mirror amplifier-core into it"

Agent runs mirror-from-github — snapshots repo content, issues, PRs, labels

3

"Bump the version in there"

Agent works against isolated Gitea — commits, branches, all local. Zero GitHub noise.

4

"Delete the Gitea instance"

Agent invokes amplifier-gitea destroy — container and all data gone. Clean.

Quick Start

Five commands, full workflow

# Install uv tool install git+https://github.com/microsoft/amplifier-bundle-gitea@main # Create an ephemeral Gitea instance amplifier-gitea create --port 10110 # Mirror a GitHub repo into it amplifier-gitea mirror-from-github <id> \ --github-repo https://github.com/org/repo # Work freely, then promote a branch back as a PR amplifier-gitea promote-to-github <id> \ --repo admin/repo \ --branch feature-xyz \ --github-repo org/repo \ --title "Add feature XYZ" # Tear it all down amplifier-gitea destroy <id>
Technical Highlights

Built for real infrastructure

~1:1 Test Ratio

~929 lines of source, ~944 lines of tests. Tests invoke uv run amplifier-gitea as a subprocess — real Gitea containers, real GitHub PRs, no mocks.

Tech Stack

  • Python 3.11+ with Click CLI
  • docker-py for container management
  • httpx for async HTTP
  • pytest for integration testing
  • Hatchling build system

No Mocks

Integration tests spin up actual Gitea containers. GitHub tests create real PRs then clean up.

No Git Binary

Promotion uses GitHub's Git Data API. Fetches trees, diffs, creates blobs/trees/commits/refs/PRs entirely over HTTP.

Opinionated Defaults

SQLite, offline mode, hardcoded admin. Optimized for ephemeral use — not configurable complexity.

The Bigger Picture

Digital Twin
Universe

amplifier-bundle-gitea is a foundational building block for the Amplifier Digital Twin Universe (DTU) — complete, isolated "digital twin" environments stood up on demand from a declarative profile.

What DTU Does

Simulates the world code will live in. Consumers can install, run, and experience software like a real user — in a fully isolated environment.

Gitea's Role

Provides the git server component inside digital twin environments. Real repos, real operations, zero production impact.

"Woohoo! That's awesome and very timely!"

— Brian Krabach, on the DTU demo (March 24)
Get Started

Try it today

Install with one command. Create disposable Gitea instances for any workflow that needs an isolated git server.

uv tool install git+https://github.com/microsoft/amplifier-bundle-gitea@main
github.com/microsoft/amplifier-bundle-gitea
MIT License · Python 3.11+ · Docker required
More Amplifier Stories