GitHub PR 作成
ワークフロー
1. 判定
personal-detect-git-convention スキルの手順に従い、以下を判定します。
- 言語(
convention.language) - PR タイトルスタイル(
convention.pull-request-title-style)
2. テンプレート確認
以下のファイルが存在する場合は、内容を確認します。
.github/pull_request_template.md.github/PULL_REQUEST_TEMPLATE/*.md
3. プッシュ
現在のブランチがリモートにプッシュ済みか確認します。
git ls-remote --heads origin <branch-name>
出力が空の場合はプッシュします。
git push -u origin <branch-name>
4. 差分確認
以下のコマンドでベースブランチとヘッドブランチの差分を確認します。
git log <base-branch>..HEAD --oneline
git diff <base-branch>...HEAD
5. タイトルと本文の生成
タイトルと本文を生成する前に、生成に使う設定値を出力します。
- 言語:
<convention.language の値> - スタイル:
<convention.pull-request-title-style の値> - テンプレート:
<テンプレートのパス or なし>
その後、言語とスタイル、テンプレート、差分をもとに、タイトルと本文を生成します。
テンプレートが存在しない場合は、以下のテンプレートを利用してください。
## Why
## What
## Notes
この PR のマージによってクローズできる Issue がある場合は、本文に GitHub のクローズキーワードを含めます。
Closes #123
クローズキーワード: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved
生成後、以下の表を出力して確認します。期待値と実績が異なる場合は修正します。
| 項目 | 期待値 | 実績 | | :----------- | :----- | :--- | | 言語 | | | | スタイル | | | | テンプレート | | |
6. 作成
gh pr create \
--assignee @me \
--body "$body" \
--title "$title"
コンテキストに応じて、他のオプションも追加できます。