[CodeCommit] 承認ルールの承認者自身が作ったPRは自分で承認できるか確認してみた

2020.07.07

どうも!大阪オフィスの西村祐二です。

7/7は弊社の創立記念日です。おめでたいですね。

今回は小ネタです。

久しぶりにCodeCommitを検証していると承認ルールワークフローが設定できるようになっていました。

アップデート時のブログは下記です。

[アップデート]CodeCommitでプルリクエストの承認ルールワークフローを試してみた

この機能を試しているときに、承認者が自分のとき、自分で作成したPRは自分で承認できるのか、どういう挙動になるのか気になったので試してみました。

はじめに結論

自分で作成したPRには承認ボタンが表示されず、承認することができませんでした

自分(承認者)で作成したPRを自分でマージしたい場合は「承認ルールを上書き」で一旦承認ルールを無効化することでマージすることができました

試してみる

CodeCommit上にレポジトリは作成済であるという前提で進めていきます。

承認ルールテンプレートを作成

まず、承認ルールテンプレートを作成します。

今回、「test」という名前で作成し、承認プールのメンバーに自分のアカウント(PRを作成するユーザ)情報を追加します。

今回は「cm-nishimura.yuji」というユーザを承認者として設定します。

関連付けられたリポジトリに今回用意したサンプルのレポジトリの「test-commit」を設定します。

PRを作成

承認ルールテンプレートを作成したら、

次はmasterブランチにfeature/testブランチをマージする適当なPRを「cm-nishimura.yuji」で作成します。

すると承認者に設定されているときに表示される「承認」ボタンが表示されず、マージすることができませんでした。

承認者プールのメンバーに別ユーザを追加して表示を確認

何か設定が間違っているかもしれないので、承認者プールのメンバーに別ユーザを追加して、追加したユーザではどのように表示されるか確認してみました。

今回、「tmp」というユーザを作成し、承認者プールのメンバーに追加しました。

そのtmpユーザでCodeCommitのコンソールにアクセスしPRを確認するときちんと「承認」ボタンが表示されていました。

逆のパターン(tmpユーザでPRを作成するパターン)も試してみましたが結果は同じで、PRを作成したユーザが承認者でも、承認ボタンは表示されませんでした。

PRを作成したユーザがマージするには

何か緊急で承認者がPRを作成し、それを承認者自身でマージしたい場合もあるかと思います。そういった場合どうするかというと「承認ルールを上書き」をクリックすることでマージできるようになります。

「承認ルールを上書き」をクリックすると確認ダイアログが表示されます。

「上書き」をクリックすると表示が変化しマージすることができるようになります。

さいごに

CodeCommitの承認ルールワークフロー機能で承認者自身が作ったPRは自分で承認できるか確認してみました。

結論としては、承認者自身が作ったPRは自分では承認することができず、自分でマージしたい場合は「承認ルールを上書き」をすることでマージできるようになるといった結果になりました。

当たり前といえばそうですが、気になったので確認してみました。

誰かのお役に立てたら幸いです。