ふりぶろぐ
Web Engineer's Blog
AWS

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

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

ABOUT ME
りーふ
たまにブログを書いてるWebエンジニア。 サーバーサイドメインでインフラとフロントエンドもたまにやります。 Javaが得意。 Play Frameworkが好き。 本業は迷惑をかけない程度に手を抜くスタイル。 意識高い系は苦手。