コマンド一発でissue情報を記載したPull Requestを作成する2021

#git
#yak

2016 年版: ブランチ名に issue 番号を使う - Qiita

GitHub で業務開発しているときは Pull Request に issue リンクを貼る事が多いので、あらかじめ issue 番号をブランチ名に含めておくことでコマンド一発でリンク付き PR を作成できて便利、というようなことを以前書いていました。

この当時は hubghi といったコマンドを使っていましたが、時が流れ GitHub CLI が登場したため alias を刷新しました。以下を .gitconfig に書いて git pr で PR を作成しています。

[alias] pr = "!ISSUE_NUMBER=$(echo $(git symbolic-ref --short HEAD) |awk -F'[/_-]' '{print $1}'); gh pr create --web --title `gh issue view $ISSUE_NUMBER --repo org/issue-repo --json title --jq .title` --body -\\ org/issue-repo#$ISSUE_NUMBER"

ブランチ名は 1234-feature-name のような kebab-case を使っているので、先頭の issue 番号を抜き取るのは echo $(git symbolic-ref --short HEAD) |awk -F'[/_-]' '{print $1}' といった感じで。

また私は PR タイトルに issue 名をほぼそのまま使うことが多いので、デフォルト値として issue タイトルも入るようにしています。 gh コマンドは実行結果を json で受け取りそれを jq で加工するのもビルトインでサポートされています。指定した番号の issue を取得しタイトルだけ抜き出すには gh issue view issue番号 --repo org/issue-repo --json title --jq .title を実行すれば OK。

些細なハックですが、gh コマンドだけで PR 作成にまつわる一通りの作業が自動化できました。

Tweet