LoginSignup
0
0

【GitHubとAWS codeCommitをミラーリングさせる手順7】

Last updated at Posted at 2021-07-08

1. codeCommit側にリポジトリを適当に作っておく

直感的に操作できるのでかんたんに作れる.

2. パスフレーズなし秘密鍵をローカルの.sshで生成

ssh-keygen -t rsa -b 4096 -m PEM -C -f <filename> <githubアカウントメールアドレス>
注:OpenSSHの構成がOpenSSH 7.8から変わりヘッダが

-----BEGIN RSA PRIVATE KEY-----

から

-----BEGIN OPENSSH PRIVATE KEY-----

に変わり、ActionでのSSH接続が失敗する場合がある.
その対策のため、-m PEMをオプションに追加してSSH鍵を生成する.
参照記事URLhttps://qiita.com/miu200521358/items/8e2875e9c96249261f66#02-パスフレーズなしのssh鍵を生成するローカル

3. 公開鍵をIAMに登録する

pbcopy < ./<filename>.pub
上記コマンドでローカルの~./sshで作成した公開鍵の内容をコピー
IAMの「AWS CodeCommit の SSH キー」にある「SSH パブリックキーのアップロード」に登録する.

4. githubのSecretsに秘密鍵とSSHキーIDを登録する

codecommitと連携させるgithubリポジトリのsettingタブ内にある、Secrets->Actionsから「new repository secrets」を選択.

codecommitのSSHキーに登録する際に、生成した秘密鍵(<filename>)とcodecommitに登録した公開鍵のID(SSHキーID)を変数化する.

pbcopy < ./<filename>
上記コマンドで秘密鍵の内容をローカルの./sshからコピーする。
公開鍵のID(SSHキーID)はIAMのコンソール画面から確認可能

CODECOMMIT_SSH_PRIVATE_KEY = ローカルで作成した秘密鍵と一緒に生成された秘密鍵(<filename>)
CODECOMMIT_SSH_PRIVATE_KEY_ID = AWS CodeCommitのSSHキーIDを入力

5. .gitattributesファイルを生成する

このファイルでcodecommitにミラーリングするべきでないファイルなどを制御できる.

6. Git Actionからミラーリング設定を行う

ミラーリングさせたいgithubリポジトリのActionタブから「set up a workflow yourself→」をクリック.
デフォルトのmain.ymlのまま以下のコードを貼り付け.
参照元URLhttps://hikari-blog.com/github-codecommit-mirroring/

※2023/07/28 ubuntuのversionを更新しました(18.04が非推奨になっていたため)

name: Mirroring

on: [ push, delete ]

jobs:
  to_codecommit:
    runs-on: ubuntu-22.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/<repository-name>
          ssh_private_key:
            ${{ secrets.CODECOMMIT_SSH_PRIVATE_KEY }}
          ssh_username:
            ${{ secrets.CODECOMMIT_SSH_PRIVATE_KEY_ID }}

7. ミラーリング結果の確認

ミラーリングが完了していれば緑のcheckマークが付く
1766EE56-EF9B-44E1-A4A1-C83E5F011C13.jpeg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0