インフラ

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

github-codecommit-mirroring
野田竣介

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

GitHubのソースコードをCodeCommitにミラーリングしたい!

コード管理はGitHubで行うのが主流だと思いますが、「CodeCommit ミラーリング」って検索してもGitLabしか出てこないですよね。

そこで今回はこちらの質問について解説していきます!

CodeCommitの準備についてはこちら!

あわせて読みたい
【AWS】CodeCommitリポジトリを作成してcloneする!
【AWS】CodeCommitリポジトリを作成してcloneする!
環境
  • 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から作成します。

New secret

そして以下の2つを作成してください。

前回の記事のSSHの設定を見るとわかると思います。
 CODECOMMIT_SSH_PRIVATE_KEY → IdentityFile
 CODECOMMIT_SSH_PRIVATE_KEY_ID → User
って感じです!

  • 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シリーズの勉強が捗りますね!

記事URLをコピーしました