⚙️

Claude Code経由でのGitHub PR作成時に自動でassigneeとlabelを設定する方法

に公開

はじめに

Claude Codeを使ってGitHub PRを作成する際、毎回手動でassigneeやlabelを設定するのは手間がかかります。実は、CLAUDE.mdファイルにワークフローを定義することで、これらの設定を自動化できます。

この記事では、実際のやりとり事例を交えながら、Claude Code経由でのPR作成時に自動でassigneeとlabelを設定する方法を解説します。

CLAUDE.mdとは

CLAUDE.mdは、Claude Codeがリポジトリで作業する際の指示書として機能するファイルです。このファイルにワークフローやコマンドを定義することで、Claude Codeの動作をカスタマイズできます。

https://docs.anthropic.com/en/docs/claude-code/memory

関連記事: Zennの記事作成におけるCLAUDE.mdの活用事例については、以下の記事でも詳しく解説しています。

https://zenn.dev/unsoluble_sugar/articles/ae877f07fa46df

GitHub CLIでのPR作成オプション

まず、GitHub CLIでPR作成時に使用できるオプションを確認してみましょう。

gh pr create --help

主要なオプション

  • -a, --assignee login: 指定したユーザーをassigneeに設定
  • -l, --label name: 指定したラベルを追加
  • -t, --title string: PRタイトルを設定
  • -b, --body string: PR本文を設定

参考: GitHub CLI公式ドキュメント

https://cli.github.com/manual/gh_pr_create

実践例 - assigneeとlabelの自動設定

実際のやりとりを元に、設定方法を見ていきましょう。

現状の課題

最初の状態では、CLAUDE.mdのPRワークフロー部分は以下のようになっていました

#### Pull Request Workflow:
- All changes must go through Pull Requests
- No direct commits to main branch allowed
- Use `gh pr create` for PR creation
- Include appropriate PR descriptions and test plans

これだと、毎回手動でassigneeとlabelを設定する必要がありました。

改善の提案と実装

1. assigneeの自動設定

まず、GitHub CLIのヘルプでassigneeオプションを確認

gh pr create --help | grep -A 5 -B 5 assign

結果

-a, --assignee login       Assign people by their login. Use "@me" to self-assign.

2. labelの自動設定

次に、labelオプションも確認

gh pr create --help | grep -A 3 -B 3 label

結果

-l, --label name           Add labels by name

3. CLAUDE.mdの更新

これらの情報を元に、CLAUDE.mdを以下のように更新しました

#### Pull Request Workflow:
- All changes must go through Pull Requests
- No direct commits to main branch allowed
- Use `gh pr create -a unsolublesugar -l enhancement` for PR creation (automatically assigns repository owner and adds enhancement label)
- Include appropriate PR descriptions and test plans

実際のコマンド例

更新後、Claude CodeでPRを作成する際は以下のコマンドが自動で実行されます

gh pr create -a unsolublesugar -l enhancement --title "タイトル" --body "PR本文"

このコマンドにより

  • unsolublesugarが自動でassigneeに設定される
  • enhancementラベルが自動で付与される

設定のカスタマイズ

複数のlabelを設定

複数のラベルを設定したい場合は、-lオプションを複数回使用できます

gh pr create -a unsolublesugar -l enhancement -l documentation

assigneeを複数設定

複数のassigneeを設定する場合

gh pr create -a user1 -a user2 -l enhancement

条件分岐の実装

プロジェクトの種類に応じて異なるラベルを設定したい場合は、CLAUDE.mdに条件を記載できます

#### Pull Request Workflow:
- All changes must go through Pull Requests
- No direct commits to main branch allowed
- Use appropriate gh pr create command:
  - For bug fixes: `gh pr create -a unsolublesugar -l bug`
  - For new features: `gh pr create -a unsolublesugar -l enhancement`
  - For documentation: `gh pr create -a unsolublesugar -l documentation`
- Include appropriate PR descriptions and test plans

実践的な活用例

プロジェクト管理の効率化

自動設定により以下のメリットがあります

  1. 一貫性の確保: 全PRで同じassigneeとラベルが設定される
  2. 作業効率の向上: 手動設定の手間が省ける
  3. 見落とし防止: 設定忘れがなくなる

チーム開発での活用

チーム開発では、以下のような設定が有効です

- Use `gh pr create -a teamlead -a reviewer1 -l review-needed -l team-feature`

これにより

  • チームリーダーとレビュアーが自動でassignされる
  • レビュー待ちとチーム機能のラベルが付与される

その他の便利なオプション

PRテンプレートとの組み合わせ

--body-fileオプションを使用してテンプレートファイルを指定

gh pr create -a unsolublesugar -l enhancement --body-file .github/pull_request_template.md

ドラフトPRの作成

開発中のPRをドラフトとして作成

gh pr create -a unsolublesugar -l enhancement --draft

まとめ

Claude Code経由でのPR作成時にassigneeとlabelを自動設定する方法を紹介しました。

ポイント

  1. CLAUDE.mdにワークフローを定義することで自動化が可能
  2. GitHub CLIの豊富なオプションを活用
  3. プロジェクトの特性に応じてカスタマイズ可能

この設定により、PR作成の効率が大幅に向上し、一貫した管理が可能になります。ぜひ自分のプロジェクトでも試してみてください。

今回の変更を反映したPR

https://github.com/unsolublesugar/zenn-content/pull/73

この実例も参考に、自分のワークフローに合わせてカスタマイズしてみてください。

Discussion