GitHubリポジトリをCodeCommitリポジトリにミラーリングする方法について解説します。
- GitHub
- AWS
- CodeCommit
- IAM
コード管理はGitHubで行うのが主流だと思いますが、「CodeCommit ミラーリング」って検索してもGitLabしか出てこないですよね。
GitHubからでもできるはず!と思い、試してみたところ、あっさりできてしまったので解説します。
流れとしてはGitHubにプッシュしたときにGitHub Actionsが実行されてCodeCommitに反映される感じです。
CodeCommitの準備についてはこちら。
GitHub Actionsでミラーリング
今回はGitHubリポジトリにプッシュされたときにGitHub Actionsを実行してCodeCommitリポジトリにミラーリングします。
今回利用したのはこちら。
Secretsを設定しておく
IDや鍵ファイルをコミットするわけにはいかないので、まずはSelectsに設定しておきます。
GitHubリポジトリのSettings→Secretsと進み、New secretから作成します。

そして以下の2つを作成してください。
- Name:CODECOMMIT_SSH_PRIVATE_KEY
- Value:秘密鍵の中身
- Name:CODECOMMIT_SSH_PRIVATE_KEY_ID
- Value:SSHキーID
これでSecretsの設定はOKです。
GitHub Actionsのyml設定
準備ができたのでGitHub Actionsを動かすymlを用意しましょう。
.github/workflows/
にmain.ymlを作成します。
流用したコードにはGitLabへのミラーリングのコードも含まれているので、その部分は削除してからコピペします。
そして削除したコードがこちら。
name: Mirroring
on: [ push, delete ]
jobs:
to_codecommit:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- uses: pixta-dev/repository-mirroring-action@v1
with:
target_repo_url:
ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/xxxxx
ssh_private_key:
${{ secrets.CODECOMMIT_SSH_PRIVATE_KEY }}
ssh_username:
${{ secrets.CODECOMMIT_SSH_PRIVATE_KEY_ID }}
target_repo_urlはミラーリングしたいCodeCommitリポジトリのURLを設定してください。
これであとはプッシュするだけ!
プッシュするとGithub Actionsが実行され、終了するとCodeCommitリポジトリに反映されているはずです。
あとがき
調べても全然出てこない割に簡単にできたので良かったです。
Codeシリーズの勉強が捗ります。