2-06 / Series
2-06 № 06 · 2026

コードの置き場を、
自分の側に。

ビルダーの仕事場を、自分の側に ── リポジトリも CI も、Microsoft の外へ

ビルダーの仕事は、コードを書くことではない。AI に書かせ、評価し、統合することだ (1-04)。だが、生まれたコードには置き場が要る。それがリポジトリだ。

2-05 で門番を立てた。次はその内側に、仕事場を入れる。AI が大量に生むコードほど、その置き場の主導権が効いてくる。

GitHub も Azure DevOps も、他社のサーバの上にある。ここでは、その仕事場を、2-02 で AI に渡した一台の上に立てる。

コードの置き場の主導権は自分が持つ

コードは資産だ。事業の中身そのものが、そこに書かれている。それを他社のプラットフォームに預けたままにする理由は、もう薄い。

汎用の Git ホスティングは、すでに OSS にある。書くのではなく、立てる。

Forgejo を立てる

仕事場は Forgejo だ。Gitea 系の単一バイナリで、リポジトリ・Issue・プルリクエスト・レビュー・CI を一つに備える。GitHub・GitLab・Azure DevOps の置き換えである。公式が単体のバイナリを配り、systemd のユニットも公式文書にある。だから 2-02 の決めどおり、ファイルを置いて systemd に登録する。

# バイナリを置き、git 利用者を作り、公式の forgejo.service を登録したあと
sudo systemctl enable --now forgejo
git remote add origin git@git.example.com:team/app.git
git push -u origin main          # もう自分のサーバに乗っている

Forgejo 用の PostgreSQL の利用者名とパスワードは、人が決めて渡す。

CI/CD は Forgejo Actions で回す

テスト・ビルド・デプロイの自動化は Forgejo Actions だ。GitHub Actions と同じ書式のワークフローがそのまま動く。リポジトリに一枚置くだけである。

# .forgejo/workflows/ci.yml
on: [push]
jobs:
  test:
    runs-on: host            # コンテナを使わず、この機械の上で直接走る
    steps:
      - uses: actions/checkout@v4
      - run: uv run pytest   # 自分のランナーで、追加料金なし

ランナー(forgejo-runner)も単体のバイナリで、systemd で動かす。Docker を使わないので、ジョブは機械の上で直接走る(host)。公式文書は「隔離が無く、一つのジョブが機械を壊しうる」と注意しているので、決めを三つ置く。

GitHub Actions の分数の上限と課金から離れる。ランナーも自分の側にあるので、回す回数を気にせず、AI が書いたコードを何度でも検証できる。

手元の道具は Zed と、その中から呼ぶ AI

サーバが Forgejo なら、手元の編集は Zed だ。Rust 製で軽く、複数人の同時編集を備えたエディタで、AI のエージェントをエディタの中から呼べる(ACP)。2-02 で契約した AI をその場に呼び、生成・修正・説明をさせながら、ビルダーは評価と統合に集中する。

git clone git@git.example.com:team/app.git
zed app/          # AI を呼んで、書かせ、評価し、push する

書くのは AI、決めるのは人。仕事場(Forgejo)と道具(Zed)が揃えば、その分担がそのまま回る。

門番の内側に置き、段階的に移す

Forgejo はリバースプロキシの内側に置く(2-05)。GitHub からの移行は、Forgejo の「新規移行」が Issue・PR ごとリポジトリを取り込む。

git.example.com { reverse_proxy localhost:3000 }

一度に切り替えなくてよい。GitHub をミラーにしたまま並行で動かし、慣れたら本番を Forgejo に寄せる(2-12)。

コードは、事業の中身そのものだ。その置き場の主導権は、他社ではなく自分が持つ。

確かめ方

この章は、次の五つができていれば済みだ。

  1. ブラウザで git.example.com を開き、作った管理者でログインできる
  2. 手元から git push したコードが、Forgejo の画面にそのまま出る
  3. push の後、Forgejo の Actions の画面でワークフローが走り、pytest の結果が見える
  4. Zed でリポジトリを開き、AI を呼んでコードを書かせ、そのまま push できる
  5. GitHub から「新規移行」で取り込んだリポジトリに、Issue と PR が付いてきている
systemctl status forgejo forgejo-runner # 二つとも systemd で動いているか
git push -u origin main                 # 画面に出るか見る
curl -sI https://git.example.com        # Caddy 越しに応答するか見る

人が持つ物

人が渡す値

AI が「やる前に言う」操作

確かめた版と日付

まとめ

ビルダーの仕事場を、自分の側に。

書いたコードは、設定だけだ。汎用は、すでに OSS として在る。次章では、文書の原稿を文字で持ち、Word も Claude Docs も通過させる道具にする。


関連記事