このコマンドは、現在のブランチの変更点とコミットメッセージを分析し、GitHubプルリクエスト用の文章を自動生成します。
Generates GitHub pull request descriptions by analyzing branch changes and commit messages.
/plugin marketplace add sumik5/sumik-claude-plugin/plugin install sumik@sumikこのコマンドは、現在のブランチの変更点とコミットメッセージを分析し、GitHubプルリクエスト用の文章を自動生成します。
/pull-request [ベースブランチ]
[ベースブランチ]: オプション。プルリクエストのマージ先ブランチを指定します
main がデフォルトで使用されます/pull-request develop, /pull-request staging# デフォルト(mainブランチへのプルリクエスト)
/pull-request
# developブランチへのプルリクエスト
/pull-request develop
# stagingブランチへのプルリクエスト
/pull-request staging
# 任意のブランチへのプルリクエスト
/pull-request feature/base-branch
以下の場合はエラーを返します:
エラー: Gitリポジトリではありませんエラー: ブランチ '<ベースブランチ>' が見つかりませんエラー: <ベースブランチ> ブランチからはプルリクエストを作成できませんエラー: ベースブランチとの差分がありませんmain をベースブランチとするまず、現在のディレクトリがGitリポジトリであることを確認してください:
# Gitリポジトリか確認
git rev-parse --is-inside-work-tree 2>/dev/null
処理:
現在のブランチとベースブランチを確認してください:
# 現在のブランチ名を取得
CURRENT_BRANCH=$(git branch --show-current)
# ベースブランチを確定(引数があればそれを使用、なければ main をデフォルト)
# 引数は $1 に格納されている
BASE_BRANCH="${1:-main}"
# ベースブランチが存在することを確認
if ! git show-ref --verify --quiet refs/heads/${BASE_BRANCH}; then
echo "エラー: ブランチ '$BASE_BRANCH' が見つかりません"
exit 1
fi
# 現在のブランチがベースブランチでないことを確認
if [ "$CURRENT_BRANCH" = "$BASE_BRANCH" ]; then
echo "エラー: $BASE_BRANCH ブランチからはプルリクエストを作成できません"
exit 1
fi
echo "現在のブランチ: $CURRENT_BRANCH"
echo "ベースブランチ: $BASE_BRANCH"
処理:
${1:-main}: 第1引数が指定されていればそれを使用、なければ main を使用git show-ref --verify: 指定されたブランチが存在するか確認以下のbashコマンドを実行して情報を収集してください:
# コミット履歴を取得(ベースブランチとの差分)
echo "=== コミット履歴 ==="
git log --oneline ${BASE_BRANCH}..HEAD
# コミットメッセージの詳細を取得
echo ""
echo "=== 詳細なコミットメッセージ ==="
git log ${BASE_BRANCH}..HEAD --pretty=format:"%s%n%b" --reverse
# ファイル変更の統計
echo ""
echo "=== 変更統計 ==="
git diff --stat ${BASE_BRANCH}..HEAD
# ファイル変更の詳細(追加・変更・削除されたファイル)
echo ""
echo "=== 変更ファイル一覧 ==="
git diff --name-status ${BASE_BRANCH}..HEAD
# コミット数を取得
COMMIT_COUNT=$(git rev-list --count ${BASE_BRANCH}..HEAD)
echo ""
echo "コミット数: $COMMIT_COUNT"
注意:
収集した情報を基に、以下の形式でプルリクエスト文章を生成してください:
コミットメッセージやファイル変更を分析して、適切なプレフィックスを付与:
[feat] add: 機能の概要
[feat] fix: 変更の概要
[bug]: 不具合の概要
[refactor]: リファクタリングの概要
[docs]: ドキュメントの概要
## 背景・目的
<!-- この変更が必要になった背景や目的を記載 -->
<!-- Issue番号がある場合は resolves #<Issue番号> を記載 -->
## 変更の詳細
<!-- 何をどのように変更したのかを詳細に記載 -->
<!-- 主要な変更点をリスト形式で記載 -->
## 影響範囲
<!-- この変更による影響範囲を記載 -->
<!-- 変更されたファイルや機能を記載 -->
## テスト方法
<!-- この変更をテストする方法を記載 -->
<!-- 確認手順やテストケースを記載 -->
## 確認事項
- [ ] セルフコードレビューを実施した
- [ ] コードに適切なコメントを追加した
- [ ] 関連するドキュメントを更新した
- [ ] テストを追加・実行した
- [ ] 既存のテストがすべて成功することを確認した
生成ルール:
生成したプルリクエスト文章を以下の形式で出力してください:
=== プルリクエスト文章 ===
<生成されたタイトル>
<生成された本文>
===
注意事項:
このコマンドは以下のベストプラクティスに基づいています: