1. はじめに
今回は、CodeCommitでプルリクエストの承認ルールを作成し、プルリクエスト⇒承認⇒マージの流れを確認してみます。
2. 目次
3. 各種AWSリソースのセットアップ
3.1. IAMユーザー
3.1.1. CodeCommitのAWS管理ポリシー
CodeCommitのAWS管理ポリシーは以下の3つがあります。
ポリシー | 説明 |
---|---|
AWSCodeCommitFullAccess | CodeCommitへのフルアクセスが付与される。 |
AWSCodeCommitPowerUser | CodeCommitおよびリポジトリ関連リソースのすべての機能にアクセスできるが、CodeCommitリポジトリを削除することはできない。 |
AWSCodeCommitReadOnly | リポジトリのコンテンツを読み込む機能 (コンテンツを変更させない) を付与したいユーザーに付与する。 |
3.1.2. IAMユーザーの作成
ユーザー名 | アタッチする許可ポリシー | 備考 |
---|---|---|
CodeCommit-User | AWSCodeCommitPowerUser | プルリクエスト作成用ユーザー |
CodeCommit-Reviewer | AWSCodeCommitPowerUser | プルリクエスト承認用ユーザー |
※簡略化のためにAWSCodeCommitPowerUserを使用しています。必要な許可のみを提供したい場合は IAM カスタマーマネージドポリシーを作成してください。
3.2. CodeCommit
3.2.1. CodeCommitとは
CodeCommitは、AWSが提供するフルマネージド型のソース管理サービスです。
リポジトリを作成して、文書やソースコードなどのデータをAWSに保存できます。
3.2.2. 承認ルールテンプレートとは
承認ルールテンプレートではプルリクエストの承認ルールを作成でき、異なるブランチに対し適切なレベルの承認ルールを設定できます。
例えば、本番稼働用ブランチと開発ブランチに異なるルールを定義できます。
各設定項目の説明を以下に示します。
- 承認ルールテンプレート名
⇒承認ルールテンプレートの名前を設定する。 - 説明
⇒テンプレートの目的の説明を設定する。 - 必要な承認の数
⇒何人の承認が必要か。2人なら2を設定する。 - 承認プールのメンバー
⇒特定のメンバーから承認をしてもらいたい場合に設定する。ここで設定されたメンバーからの承認のみが承認ルールを満たす条件としてカウントされる。 - ブランチフィルター
⇒特定のブランチにのみ承認ルールを適用したい場合に、適用したいブランチを設定する。設定しない場合、関連付けられたリポジトリのすべてのブランチに適用される。 - リポジトリ
⇒承認ルールに関連付けるリポジトリを設定する。
3.2.3. CodeCommitリポジトリの作成
項目 | 設定値 |
---|---|
リポジトリ名 | 任意のリポジトリ名 |
説明 | 任意の説明 |
その他項目 | デフォルトのまま |
3.2.4. CodeCommitリポジトリにファイルを追加
ファイルの追加方法は以下の2通りあります。
今回はコンソールから直接追加します。
【手順】
- CodeCommit コンソールを開く。
- [リポジトリ] で、ファイルを追加するレポジトリを選択する。
- [コード] ビューで[ファイルの追加] を選択し、[ファイルのアップロード] を選択する。
- ローカルコンピュータからファイルを選択し、以下項目を設定後、[変更のコミット] を選択する。
項目 | 設定値 |
---|---|
作成者名 | 名前を入力 |
E メールアドレス | E メールアドレスを入力 |
メッセージのコミット | 短い説明を入力(入力しない場合は、デフォルトのコミットメッセージが使用される。) |
新規作成したリポジトリでマネジメントコンソールより空のブランチに新規ファイルを追加すると、 mainブランチが作成されます。
なお、今回は以下の内容のファイルをアップロードしました。
index.html(修正前)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>CodeCommit Sample</title> </head> <body> Hello World!! </body> </html>
3.2.5. CodeCommitリポジトリでブランチを作成
ブランチの作成方法は以下の3通りあります。
- コンソールを使用して作成する。
- ローカルリポジトリから Git を使用してローカルリポジトリにブランチを作成して、そのブランチを CodeCommit リポジトリにプッシュする。
- AWS CLI コマンドを使用して作成する。
今回はコンソールを使用して作成します。
【手順】
- CodeCommit コンソールを開く。
- リポジトリで、ブランチを作成するリポジトリの名前を選択する。
- ナビゲーションペインで、[ブランチ] を選択する。
- [ブランチの作成] を選択します。
- 以下項目を設定し、[ブランチの作成] を選択する。
項目 | 設定値 |
---|---|
ブランチ名 | 任意のブランチ名 |
ブランチ元 | リストからブランチまたはタグを選択するか、コミット ID を貼り付け |
上記手順にて、以下のブランチを作成します。
ブランチ名 | ブランチ元 | 備考 |
---|---|---|
main | - | 新規ファイル追加時に作成される。 |
develop | main | |
feature/view_change | develop |
3.2.6. 承認ルールテンプレートを作成
承認ルールテンプレートの作成方法は以下の3通りあります。
今回はコンソールを使用して作成します。
【手順】
- CodeCommit コンソールを開く。
- [承認ルールテンプレート] を選択し、[テンプレートを作成] を選択する。
- 以下項目を設定し、[作成] を選択する。
項目 | 設定値 |
---|---|
承認ルールテンプレート名 | 任意の承認ルールテンプレート名 |
説明 | 任意の説明 |
必要な承認の数 | 任意の承認の数(今回は1を設定) |
承認プールのメンバー | CodeCommit-Reviewerの完全修飾ARNを指定 |
ブランチフィルター | プルリクエストの送信先ブランチであるdevelopを指定 |
リポジトリ | 3.2.2で作成したリポジトリを選択 |
4. プルリクエストの作成
4.1. ファイル修正~コミット(CodeCommit-Userにて実施)
- CodeCommit コンソールを開く。
- リポジトリで、プルリクエストを作成するリポジトリの名前を選択する。
- [コード] ビューで、ファイルを変更するブランチ(feature/view_change)を選択する。
- 変更するファイル(index.html)を選択する。
- [編集] を選択する。
- 以下のように修正後、作成者名・E メールアドレス・メッセージのコミットを入力し、[変更のコミット] を選択する。
index.html(修正後)
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>CodeCommit Sample</title> </head> <body> Hello CodeCommit World!! </body> </html>
「Hello World!!」を「Hello CodeCommit World!!」に修正しています。
4.2. プルリクエスト(CodeCommit-Userにて実施)
項目 | 設定値 |
---|---|
ターゲット | develop |
ソース | feature/view_change |
タイトル | 任意の任意のタイトル |
説明 | 任意の説明 |
4.3. 承認(CodeCommit-Reviewerにて実施)
4.4. マージ(CodeCommit-Reviewerにて実施)
- [マージ] を選択する。
- 以下項目を設定し、[プルリクエストのマージ] を選択する。
項目 | 設定値 |
---|---|
マージ戦略 | 任意のマージ方法を選択 |
マージ後にソースブランチを削除するかどうかのチェックボックス | 任意(今回は削除する) |
5. コード確認
対象のリポジトリのdevelopブランチを確認したところ、修正内容が反映されていることが確認できます。
6. まとめ
今回はCodeCommitでプルリクエストの承認ルールを作成してみました。適用するリポジトリ、ブランチを指定することができるため、ブランチ毎に柔軟に承認ルールを作成することができ、便利だと感じました。承認ルールを適切に設定することでリポジトリ内のファイルを安全に管理することができるようになるため、ぜひご活用してみてはいかがでしょうか。