vivivi.games

← 開発日誌

GitHub連携で最初につまずいた話

シリーズ1本目。前回「何はともあれGitHub」と書きましたが、実際に繋ぐ段階では、かなりつまずきました。ここでは具体的な連携方法と、ハマったポイント、そして連携の経路をComposioに変えるまでの経緯を書きます。

最初は、チャット上ですべて完結していた

このシーンを作るHTMLが1MBを超えたとき、チャットでのやり取りが破綻した
このシーンを作るHTMLが1MBを超えたとき、チャットでのやり取りが破綻した

スペース☆タワーの初期は、AIとの会話の中でコードを丸ごとやり取りしていました。1枚のHTMLにゲーム全体が入っているので、修正のたびにファイルを貼り、直したものを貼り返してもらう。ファイルが数百KBを超えたあたりから、これが破綻します。

GitHubを介せば、この3つが全部解決します。最新はmainにある。差分はPRで見える。経緯はIssueに残る。当たり前の話なんですが、「AIと会話する」感覚で始めてしまうと、後回しにしがちです。

連携の方法(いまの形)

いま使っている構成は3つの経路の組み合わせです。

1. Issueを起点にAIに実装させる

流れはこうです。まず私がチャットで「何をしてほしいか」を伝える。AIがそれを目的・変更箇所・完了条件に整理して、GitHubのIssueに起票する。そのIssueにAI宛てのメンションが付いていると、別のAIがブランチを切ってコードを直し、PRを作ります。私はPRの差分とプレビューを見て、OKなら「マージGO」と言う。マージの操作自体はAIがやります。

つまり私が書くのは、Issueではなくチャットの指示です。Issueの文面はAIが論理的にまとめます。「ふわっとした要望を、実装できる形に翻訳する」のがAIの仕事で、私はその翻訳が合っているかを見ます。

これの良いところは、大きいファイルをチャットに貼らなくていいこと。AIはリポジトリの中で直接作業します。

2. チャット側からGitHubのAPIを叩く

Issueの起票、PRの状態確認、小さいファイルの読み書き、ワークフローの再実行など、軽い操作はチャットから直接行います。後述しますが、ここが一番苦労した部分です。

3. マージの判断は私、操作はAI

本番反映は必ず私の「マージGO」を待ってから。判断は私、マージとデプロイの操作はAI、という分担です。AIが指示なしにマージしないことは、ルール化して文書に書いてあります。

連携時の注意点

Composioに移行するまでの苦労

チャットからGitHubを操作する経路は、何度も作り直しました。順に書きます。

最初: Docker経由のGitHub連携

最初に使ったのは、Claudeのデスクトップアプリに GitHub連携(MCP)を繋ぐ方法でした。この連携はDockerというコンテナ環境の上で動く仕組みで、使うにはまずDocker Desktopを起動しておく必要があります。

これが地味に面倒でした。

当時のトラブルシューティング表がそのまま残っています。「Dockerが見つからない → Docker Desktop起動を確認」「MCP接続エラー → 完全Quit→再起動」「既存チャットでMCP応答なし → 新規チャットで続ける」。連携を動かすための作業で、開発の時間が削られていました。

次: Composioに切り替え

数ヶ月後、ClaudeがComposioという汎用のツール連携サービスを使えるようになりました。

きっかけは単純で、Docker経由の連携で不具合が頻発していたこと、そしてDocker経由は起動しているPCでしか使えないことです。外出先のスマホからは何もできない。そこでClaudeに「なんか他に良いのないの?」と聞いたところ、Composio経由でGitHubのAPIを直接叩く方法を提案されました。

切り替えてみると、Dockerは不要。PCを立ち上げていなくてもスマホから作業できる。接続の生死をAI側で確認できる。ファイルのSHA取得やワークフローの再実行など、細かい操作が全部できるようになりました。

反面、覚えることが増えました。APIの呼び方、レスポンスの形、失敗したときの再試行。AIが毎回ゼロから思い出すのは非効率なので、「この操作はこのAPIをこう叩く」という手順をリポジトリ内の文書に書いておき、AIにそれを読ませる運用にしました。

移行の判断基準

シンプルで、「壊れたときに自分で原因がわかるか」です。Docker経由の連携は、動いている間は楽ですが、止まったときにAIも自分も何が起きているか分からない。しかもPCの前にいないと使えない。多少手間でも、中身が見える経路のほうが長く使えます。

最初から知っていたら

シリーズ「最初から知っていたらこうした」

← 開発日誌トップ