この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
以下のニュースで紹介されておりますが、Amazon CodeCommit で Pull Requests がサポートされました。 そのため、CodeCommit 上でのコードレビューやディスカッションが出来るようになっております。
CodeCommit を利用するための事前準備については、以下のブログで紹介されておりますので合わせてご参照ください。
やってみた
今回、検証で利用した筆者の環境は以下のとおりです。
$ git --version
git version 2.13.6 (Apple Git-96)
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.12.6
BuildVersion: 16G1036
なお、本記事では既に利用可能な CodeCommit リポジトリが作成されていることを前提としているため予めリポジトリを作成しておいてください。 本記事では、codecommit-test リポジトリが準備済みの状況であり作成済みの README.md をローカルリポジトリから CodeCommit へ追加するところから始めます。
$ git commit -m "First commit."
[master (root-commit) c0c01c2] First commit.
1 file changed, 3 insertions(+)
create mode 100644 README.md
$ git push
Counting objects: 3, done.
Writing objects: 100% (3/3), 271 bytes | 90.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/codecommit-test
* [new branch] master -> master
$ git branch -a
* master
remotes/origin/master
マネジメントコンソールから、リポジトリを確認してみます。
README.md が確認できました。必須ではありませんがマネジメントコンソール上で、新しいブランチを作成してみたいと思います。
Create branch ボタンをクリックします。
ブランチ名を入力し、ブランチ元を選択の上 Create ボタンをクリックすることで新しいブランチが作成できます。
ブラウザを離れ端末を起動しローカルリポジトリでもブランチを作成します。 また、README.md 更新後 CodeCommit リポジトリに Push します。
$ git checkout -b update
Switched to a new branch 'update'
$ git branch
master
* update
$ vi README.md
$ git status
On branch update
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
$ git diff ^HEAD
diff --git a/README.md b/README.md
index b6bf3c9..dd60b3f 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,3 @@
## AWS CodeCommit
-- is not support PullRequest
+- New! Support Pull Requests.
$ git add .
$ git commit -m "update code commit"
[update 1aacefc] update code commit
1 file changed, 1 insertion(+), 1 deletion(-)
$ git push --set-upstream origin update
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 306 bytes | 153.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/codecommit-test
c0c01c2..1aacefc update -> update
Branch update set up to track remote branch update from origin.
再度、マネジメントコンソールから確認してみます。
先ほど、Push したコミットメッセージがブランチのリストから確認出来ました。 Create pull request のリンクからプルリクエストを作成していきます。
プルリクエストの作成画面です。update ブランチの更新を master ブランチに取り込んでもらうため Title や Description などを記載し、Create ボタンをクリックすることでプルリクエストが作成されます。
なお、プルリクエスト作成画面より、コードの変更点を確認することができます。
プルリクエストが作成できました。メニューの Pull requests リンクをクリックし一覧から確認してみます。
プルリクエストが一覧に表示されています。もう少し詳細を確認するため対象のプルリクエスト(Title)をクリックします。
Changes タブを確認すると、変更差分を確認することができます。 また、プルリクエストに対して Markdown 形式でコメントすることができるようです。 Split ボタンをクリックしてみます。
変更差分が左右に分かれて見易くなりました(個人的な感想)。
修正されたコードに問題が無いことを確認し、Merge ボタンをクリックします。
最終確認のウィンドウが表示されるため、再度 Merge ボタンをクリックすることによりプルリクエストがマージされます。 また、Delete pull request branch <ブランチ名> after merge のチェックボックスがチェックされていた場合は、 マージ後に指定のブランチが CodeCommit 上から削除される動作となるようです。
無事、master ブランチに取り込まれたようです。
さいごに
AWS CodeCommit は、AWS アカウントさえ持っていればフルマネージドかつリポジトリ数が無制限の Git リポジトリを 以下の条件で無料で利用できます。(アクティブユーザー数が 5人を超えた場合、ユーザー毎に 1USD/月必要)
- 毎月 5人のアクティブユーザーまで
- 50GB のストレージ/月
- 10,000回の Git リクエスト/月
詳細については、CodeCommit の料金ページを参照ください。
Git のホスティングサービスも多々ありますが、CodeCommit の優位性は 言うまでもなく各 AWS サービスとの親和性だと考えています。 これからは、ソースコードなどをバージョン管理するだけでなくプロジェクトのメンバーと共同で プルリクエストモデルによる開発に利用されてみてはいかがでしょうか。
ではでは