GitHubでプルリクエストを一発で作るURL
CI/CD と プルリクエスト
こちらの記事のようにブランチとリリースが紐付いていることがあります。
その際、自動でPRを作る対応をしても良いんですが、デプロイフロー上難しかったりサクッと対応したい場合などはREADMEにPR作成リンクなど貼っておくだけで簡易的なリリース運用は出来そうです。
それを実現するためにどのような方法があるかを調べてみました。
普通にPRを作るURL
最初にブランチを push するときにプルリクエストを作るリンクが画面に表示されていると思います。
確認すると以下のようなフォーマットになっていますね。
https://github.com/[organization]/[repo_name]/pull/new/[branch_name]
もちろんこのフォーマットでも良いんですが、実はカスタマイズしにくいエンドポイントなので他の方法を探します。
ブランチをカスタマイズしてPRを作るURL
実は公式ドキュメントに クエリパラメータを利用したプルリクエストの作成 についての記述があります。
ここを見ると、以下のようなフォーマットのリンクを利用するようです。
toブランチとfromブランチを指定してプルリクエストを作るにはこのURLである必要があります。
https://github.com/[organization]/[repo_name]/compare/[to_branch]...[from_branch]
また上記URLからもわかると思いますが、実はこれはGithubの New pull request
ボタンの遷移先のURLですね。
プルリクエスト作る画面を直接表示する(quick_pull)
上記URLは説明したとおり ブランチ同士を比較表示するためのURL なのですが、 quick_pull
を付与することによってプルリクエストを作る画面を直接表示してくれます。
つまり、プルリクエストを作りたいという要件であれば必ず付与したほうが良いでしょう。
# ex: main > productionブランチへのプルリクエスト(※存在しないリポジトリです)
https://github.com/toritori0318/iikanji-app/compare/production...main?quick_pull=1
このオプションを指定すれば URLリンクからPRを作る という基本的な要件は満たせそうです。
その他任意の属性を付与する
ドキュメントを見る限りだと、以下の属性が指定できそうです。
項目名 | 説明 |
---|---|
title | タイトル |
body | 本文 |
labels | ラベル |
milestone | マイルストーン |
assignees | 担当者 |
projects | プロジェクト |
# ex: main > productionブランチへのプルリクエスト(※存在しないリポジトリです)
https://github.com/toritori0318/iikanji-app/compare/production...main?quick_pull=1&title=hogetitle&body=hogebodydesu&labels=bug&milestone=v1&assignees=toritori0318&project=pj1
プルリクエストテンプレートを指定する(template)
.github/
以下に任意のテンプレートを置き、それを直接指定して利用することも可能なようです。
template
クエリパラメータを利用します。
# ex: main > productionブランチへのプルリクエスト(※存在しないリポジトリです)
https://github.com/toritori0318/iikanji-app/compare/production...main?quick_pull=1&template=pr_release_template.md
最後に
このように、リリースブランチへのPRを作るURLをREADMEに貼っておくだけで簡易的にリリースフローが作れそうですね!
Discussion