GitHubリポジトリをCodeCommitリポジトリにミラーリング(連携)する!

今回はこのような質問をいただきました。

GitHubのソースコードをCodeCommitにミラーリングしたい!
コード管理はGitHubで行うのが主流だと思いますが、「CodeCommit ミラーリング」って検索してもGitLabしか出てこないですよね。
そこで今回はこちらの質問について解説していきます!
CodeCommitの準備についてはこちら!

- GitHub
- AWS
- CodeCommit
- IAM
GitHub Actionsでミラーリング
今回はGitHubリポジトリにプッシュされたときにGitHub Actionsを実行してCodeCommitリポジトリにミラーリングします。
今回利用したのはこちら。
https://github.com/marketplace/actions/mirroring-repository
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シリーズの勉強が捗りますね!