概要
- CodeCommitを使いはじめるメモ
- 既存のリポジトリからの移行も記載
- 会社は開発費用を圧縮するためGithubが使えなくGitLabで頑張る現状(涙)
- GitLabも社内の意思統一が難しいため最新バージョンに移行できず古いGitLabがメインで使用されている(涙)
- 苦肉の策としてプロジェクト毎に発行されるAWSアカウント上でほぼ無料のCodeCommitを使いモダン?な環境を手に入れる
- ついでにCodeBuild、CodeDeployとも連携しCIを構築しちゃう
アクセス権限登録
CodeCommitへのアクセスはIAM単位で管理されている為、個人のIAMにCodeCommitへのアクセス権と公開鍵の追加等の作業が必要となる
下記の通り、アクセス権限に「AWSCodeCommitFullAccess」を追加
SSH接続設定
CodeCommitにSSH接続する際には下記の公開鍵の登録と.ssh/configファイルの追加が必要となる
公開鍵登録
認証情報から「AWS CodeCommitへのSSHキー」を追加
※登録する公開鍵ですが生成する鍵のビット数が2048bit未満だとアップロードできない
.ssh/config編集
.ssh/configにCodeCommitのアドレス・ユーザ・秘密鍵の場所を記載
Host git-codecommit.*.amazonaws.com
User xxxxxxxxxxxxxxxxxxxx
IdentityFile ~/.ssh/id_rsa
Userは、上記、公開鍵登録後、「SSHキーID」に表示されている値
IdentityFileは、秘密鍵ファイル
HTTPS接続設定
CodeCommitにHTTPS接続する際には下記のGit認証情報の登録が必要
Git認証情報生成
認証情報から「AWS CodeCommit の HTTPS Git認証情報」を生成
証明書をダウンロードして閉じる
ダウンロードしたCSVファイルにユーザ名とパスワードが記載されていますので、こちらを使用してHTTPS接続を行う
CodeCommit
リポジトリ作成
リポジトリ作成後、以下の画面が表示されるが「スキップ」
既存のGitからリポジトリを移行する手順を以下に記載
※既存のGitへの接続が確立されていることを前提として記載
Git移行
既存のGitからリポジトリを移行する手順を以下に記載
※既存のGitへの接続が確立されていることを前提として記載
既存Gitからリポジトリのclone
以下のコマンドにて既存Gitからリポジトリ情報を取得
git clone --mirror hoge-ip:huga/web-application.git original_repo
※上記例既存リポジトリとなる
CodeCommitリポジトリへpush
上記で作成した「original_repo」フォルダに移動し、以下のコマンドでpush
git push ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/example-repository --all
コマンドではリポジトリにある全てのブランチをpushしますがタグのような他の参照はpushしない。タグをpushする場合、上記pushが完了後、以下のコマンドでpush
git push ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/example-repository --tags