Awesome-omni-skill create-pr
JIRAチケットブランチからPRを自動作成するスキル。親ブランチ自動検出、JIRAリンク自動挿入、テンプレートに沿ったPR本文生成を行う。「PR作成」「PRを作って」「/create-pr」などのリクエストで使用。
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/create-pr-octkp" ~/.claude/skills/diegosouzapw-awesome-omni-skill-create-pr-46fdf0 && rm -rf "$T"
manifest:
skills/tools/create-pr-octkp/SKILL.mdsource content
Create PR Skill
JIRAチケット番号のブランチからPull Requestを自動作成する。親ブランチの自動検出、JIRAリンクの自動挿入、テンプレートに沿った本文生成を行う。
使用方法
/create-pr
引数なしで実行。現在のブランチ名とgit履歴から全て自動判定する。
実行手順
Step 1: 事前チェック
でブランチ名を取得git branch --show-current- ブランチ名が
またはmain
の場合はエラー終了:develop- 「main/developブランチ上ではPRを作成できません。フィーチャーブランチに切り替えてください。」
で認証状態を確認。未認証ならエラー:gh auth status- 「gh CLIが未認証です。
を実行してください。」gh auth login
- 「gh CLIが未認証です。
で既存PRを確認。存在する場合:gh pr list --head {ブランチ名} --json url --jq '.[0].url'- 「既存のPRが見つかりました: {URL}」と表示して終了
で未コミット変更を確認。ある場合:git status --porcelain- 「未コミットの変更があります。先にコミットすることを推奨します。」と警告(続行は可能)
Step 2: 親ブランチ検出
以下の優先順で親ブランチを特定する:
方法A: merge-base距離比較(推奨)
git fetch origin CURRENT=$(git branch --show-current) git branch -r --list 'origin/*' | grep -v "origin/$CURRENT" | grep -v 'origin/HEAD' | while read branch; do echo "$(git rev-list --count $(git merge-base HEAD $branch)..HEAD) $branch" done | sort -n | head -1 | awk '{print $2}' | sed 's|origin/||'
最もmerge-baseが近い(= 分岐元に近い)リモートブランチを親とする。
方法B: 直前のブランチ
方法Aで結果が得られない場合:
git rev-parse --abbrev-ref @{-1}
フォールバック
いずれも失敗した場合、AskUserQuestionでユーザーに確認する:
- 「親ブランチ(PRのマージ先)を指定してください」
- 選択肢:
,main
, その他develop
Step 3: 差分収集
git diff origin/{parent}...HEAD --stat git log origin/{parent}..HEAD --oneline
差分の内容とコミットメッセージを確認し、変更の概要を把握する。
Step 4: PR本文生成
テンプレート(
templates/pr-template.md)の構造に従い、PR本文を構築する:
- 概要: 差分とコミットログから日本語で要約を自動生成
- 関連リンク:
を自動挿入https://kokopelli-inc.atlassian.net/browse/{ブランチ名} - 動作確認: 空欄のまま
- 特に見て欲しいところ: 空欄のまま
Step 5: プッシュ
リモートにブランチが存在しない場合:
git push -u origin {ブランチ名}
Step 6: PR作成
gh pr create --base {parent} --title "{ブランチ名}: {変更の要約}" --body "$(cat <<'EOF' # 📝 概要 {自動生成した要約} # 🔗 関連リンク - https://kokopelli-inc.atlassian.net/browse/{ブランチ名} # 🧪 動作確認 # 👀 特に見て欲しいところ EOF )"
Step 7: 結果表示
作成されたPRのURLを表示する。
PRタイトル
- フォーマット:
{ブランチ名}: {変更の要約} - 例:
BAX-12345: チャットメンバー表示の不整合を修正 - 要約は日本語で簡潔に(70文字以内)
エラーハンドリング
| 状況 | 対応 |
|---|---|
/上で実行 | エラーメッセージを表示して終了 |
| 未コミット変更あり | 警告を表示(続行可能) |
| 既存PRが存在 | 既存PRのURLを表示して終了 |
CLI未認証 | エラーメッセージを表示して終了 |
| 親ブランチ検出失敗 | ユーザーに確認 |