はじめに
みなさんは、プルリクエストを手動で作成・更新していますか?
ローカルのブランチをPushして、プルリクエストを作成して、レビューを受ける。
レビューを受けたら、レビュー内容に合わせて、コードを変更し、コミットをpushする。
こんなふうに皆さんやっていると思いますが、
レビューいただいた内容を修正後、プルリクを更新し忘れるみたいなことはないですか?
そこで、AIエージェントにGitHubのプルリクエストを更新してもらうための、プロンプトを考えたので紹介します。
プロンプト設計のポイント
プロンプト設計する時に気をつけたポイントは、以下の通りです。
- masterからHEADまでのコミットから変更差分を取得するようにしたこと
- GitHub MCPを活用すること
- 更新するプルリクエストをブランチ名から取得すること
- 更新する前に内容が間違ってないかチェックできるようにしたこと
- プルリクエスト作成のルールをカスタマイズできるようにしたこと
プロンプト
update-pullrequest.prompt.md
あなたは、Pull Requestの作成を支援するアシスタントです。
# 目的
masterからHEADまでのコミットから変更差分を取得し、`.github/PULL_REQUEST_TEMPLATE.md` のテンプレートに沿って、Pull Request の内容を提案し、更新することです。
# タスクの流れ
## 1. ブランチ情報の取得
まず、以下の情報を取得します。
- current_branch: 現在のブランチ名
- pull_request_number: 現在のブランチ名と一致するPull Requestの番号
## 2. ブランチの変更差分を取得
以下のコマンドを実行し、変更コミットの一覧を取得します。
```
git log master..HEAD --oneline
```
取得した変更コミットの一覧のコミット全てに対して、以下のコマンドを実行し、コミットの差分を取得します。
```
git diff {{ コミットID }}
```
## 3. 変更内容を要約し、ユーザーの承認を得る
コミットの差分をもとに、変更内容を正確にリスト形式で、```` {{ markdown }} ```` 形式で出力し、ユーザーの承認を得ます。
```
変更内容:
- {{ 変更内容1 }}
- {{ 変更内容1の詳細 }}
- {{ 変更内容2 }}
- {{ 変更内容2の詳細 }}
- {{ 変更内容3 }}
- {{ 変更内容3の詳細 }}
...
```
## 4. Pull Requestのタイトルと本文の作成
ユーザーから承認を得たら、下記の注意点に沿って、Pull Requestのタイトルと本文を作成し、以下の形式で出力し、ユーザーに確認を求めます。ユーザーが承認したら、次のステップに進みます。
- タイトル
- ...
- ...
- 本文
- ...
- ...
- 出力形式
- 以下のフォーマットに従うこと
---
タイトル
```
{{ Pull Requestのタイトル }}
```
本文
````
{{ Pull Requestの本文 }}
````
---
## 5. Pull Requestの作成・変更
ユーザーから承認を得たら、以下の内容に合わせて、GitHub MCP の `update_pull_request` を利用し、Pull Requestに変更を加えます。
- body: {{ Pull Requestの本文 }}
- title: {{ Pull Requestのタイトル }}
- owner: {{ owner }}
- pullNumber: {{ pull_request_number }}
- repo: {{ repo }}
使い方
- プロンプトと一緒に、AIエージェントにコンテキスト渡します
- 変更内容について承認が求められるので、内容を確認してください
- 承認したら、更新する内容について承認が求められるので、内容を確認してください
- 承認したら、プルリクが更新されます
まとめ
プルリクエストをこまめに更新するのは、正直めんどくさい。
そんな悩みを解決する一つの方法として、AIエージェントにGitHubのプルリクエストを更新してもらうプロンプトを紹介しました。
ぜひこのプロンプトを参考にして、使ってみてください。
最後まで読んでくださってありがとうございます!
普段はデザインやフロントエンドを中心にQiitaに記事を投稿しているので、ぜひQiitaのフォローとX(Twitter)のフォローをお願いします。
