English | 日本語 |
---|
Release Menu は、何がリリースされるのかをリリースプルリクエスト (以下 PR) に自動的にコメントする GitHub Actions です。Slack に投稿する機能もあります。
- 簡単セットアップ
- 高速に動作
.github/workflows/release-menu.yml
に以下のような YAML ファイルを置くだけで動作します。
# .github/workflows/release-menu.yml
name: "Release Menu"
on:
pull_request:
types: [opened]
jobs:
release-menu:
if: startsWith(github.event.pull_request.head.ref, 'release')
runs-on: ubuntu-latest
steps:
- name: "Menu"
uses: noraworld/[email protected]
with:
# Your options here like this:
# base: master
# mode: optimized
以下はオプションです。すべてのオプションにはデフォルト値があるため、デフォルト値と同じであれば明示的に値を指定する必要はありません。
オプション名 | 概要 | デフォルト値 | 備考 |
---|---|---|---|
jobs.release-menu.steps[*].with.head |
開発ブランチ名 | develop |
|
jobs.release-menu.steps[*].with.base |
本番ブランチ名 | main |
• main ブランチではなく master ブランチを使用している場合は書き換える必要があるかもしれません |
jobs.release-menu.steps[*].with.checkbox |
コメントにチェックボックスを含めるかどうか | true |
|
jobs.release-menu.steps[*].with.title |
コメントに PR のタイトルを含めるかどうか | false |
• GitHub は PR の番号からタイトルを自動的に検出します (上記スクリーンショット 参照) • false に設定しても Slack にはタイトルが含まれます |
jobs.release-menu.steps[*].with.author |
コメントに PR の投稿者を含めるかどうか | true |
|
jobs.release-menu.steps[*].with.slack_token |
Slack ボットトークン | "" |
• この値を指定しなかった場合は Slack に投稿されません |
jobs.release-menu.steps[*].with.slack_channel |
メッセージを投稿する Slack チャンネル名 | "" |
• この値を指定しなかった場合は Slack に投稿されません |
jobs.release-menu.steps[*].with.mode |
merged , all , optimized の中から選択 (詳細は下記の モードについて を参照) |
merged |
3 種類のモードがありいずれか 1 つを選択します。それぞれのモードについての特長は以下のとおりです。
モード名 | 概要 | メリット | デメリット |
---|---|---|---|
merged |
マージコミットに紐付いた PR のみ検出します | • 呼び出す GitHub API の回数を少なくできます | • squash and merge または rebase and merge でマージされた PR は検出できません |
all |
ヘッドブランチに存在しベースブランチに存在しないすべてのコミットに紐付いた PR を検出します | • どのような方法で PR をマージしても検出することができます | • コミットの数だけ GitHub API を呼び出すため利用制限がかかるかもしれません |
optimized |
マージコミットに紐づく PR と、マージコミットではないコミットの中からマージコミットに紐づく PR の中に含まれるすべてのコミットを引いて残ったコミットに紐づく PR を組み合わせた PR を検出します | • どのような方法で PR をマージしても検出することができます • PR マージ時に rebase and merge を使わず、かつ PR に紐付かないコミットがない場合は、モード all よりも呼び出す GitHub API の回数を少なくできます |
• PR マージ時に rebase and merge を使っていたり PR に紐付かないコミットがたくさんある場合は、モード all よりも呼び出す GitHub API の回数が多くなる場合があります• 実装が複雑なため潜在的なバグが含まれている可能性があります |
PR マージ時に常にマージコミットを作成する場合は merged
を選択してください。なお、merged
がデフォルト値であるためこの場合は明示的に指定する必要はありません。
PR マージ時にコミットをスカッシュすることはあっても、リベースしたりヘッドブランチに直接コミットをプッシュしたりしないのであれば optimized
が最適だと考えられます。
上記のどれも使用する場合は all
が無難な選択肢です。
本プロジェクト内のすべてのコードは MIT ライセンスに基づき使用することができます。詳細については LICENSE をご覧ください。