IssueをGithub Copilotに任せてPRを自動生成した話
はじめに
コミュニティオのテックチームでは Github の Premium Request を購入し、主に日々のコーディング支援で GitHub Copilot を利用しています。ですがせっかく購入した Premium Request を使い切れず余らせてしまう月が続いていました。そこで Premium Request を利用する場面を増やすべく、作成した Issue を GitHub Copilot で自動的に実装から Pull Request を作成するワークフローを試してみました。結論として Premium Request を有効活用できただけでなく、Copilot による実装の質も高く非常に満足度の高い体験となりました。
やってみる
1. 対象機能
ワークフローを試す題材として、メンバーを登録・グループ数を指定してランダムにグループ分けし、結果を画面表示およびクリップボードにコピーできるブラウザ拡張のリポジトリを扱います。既存の動作は下記の動画の通りです。
今のままでも十分使えますが、複数グループをプリセットとして保存できればいいなぁと思いながら使っていました(20 人超のグループ作ったあと全部削除するのに時間がかかる...)
なので、今回はプリセットの保存・適用・削除機能を追加しようと思います。
2. Issue の作成
Github 上で Issue を作成します。
ブログ記事に掲載するのでいつもより丁寧に概要と受け入れ条件を記載します。
個人的に意識したのは、コードレベルの話は一切出さず、満たしてほしい要件を記載するようにしました。Issue の作成時に Copilot をアサインすることで、この後のフローが非常にシームレスな体験になるので、この段階で Copilot をアサインするのをおすすめします。
3. Copilot の仕事ぶりを眺める
Issue 作成時に Copilot にアサインすると、Pull Request が WIP で自動で作られます。
Copilot のコミット履歴の「assigned Copilot
and <Issueの起票者>
now」とある列の右側にView Session
ボタンがあるので、それを押すと Copilot の作業をリアルタイムで見ることができます。
試しに覗き見すると、こんな感じでした。
どうやら自主的に Playwright で 動作確認をしてくれたようです...素晴らしい
4. レビュー
Copilot による実装が終わると、PR にどんな対応をしたのかを記載し、WIP を外してくれます。
動作確認の結果としてスクリーンショットを載せてくれることもあります。
実際に動作確認してみました。
今回実現したかったプリセットの保存・適用・削除については全く問題なさそうです。
むしろ Issue 作成時に全く言及しなかった、プリセットの保存・適用・削除時にユーザーへフィードバックするという機能も付いています。
Issue 作成時に「コードレベルの話は一切出さない」ことが功を奏し、要件レベルから Copilot が検討してくれたように感じます。
まとめ
本記事では、Issue を Copilot にアサインすることで、実装から PR 作成までを自動で実施してもらうワークフローを試してみました。
実装着手前に Issue の中身を読み込んでくれるため、Issue は出来る限り丁寧に作成するに越したことはありませんが、概要・受け入れ条件を箇条書きで書くだけでも期待値以上の実装をしてくれたように思います。
プロダクトコードに反映する際は人によるレビューが必須なのと、比較的大きな実装についてはまだ不得意な部分がありますが、小さな機能の実装や軽微な不具合修正への初動については非常に有効的だと感じました。昨今様々な AI エージェントが登場していますが、GitHub Copilot は既存の GitHub のワークフローに自然に溶け込む形で導入できるため、非常におすすめです。
Discussion