LoginSignup
0
0

More than 1 year has passed since last update.

GitHubのレポジトリをCodeCommitにコピーする

Posted at

Qiita初投稿です。

AWS Amplifyの検証をしようとした際に、以前はサンプルからプロジェクトを作成することができたのですが、いつの間にかサンプルが見えなくなっていることに気が付きました。
探したところGitHubにはアーカイブされていたので、念のため、CodeCommitにコピーしました。
その際の手順メモとなります。

なお、そのサンプルは以下のものです。
https://github.com/aws-samples/aws-amplify-appsync-graphql-real-time-canvas

目次

CodeCommitのレポジトリを作成

まずは、CodeCommitのレポジトリを作成します。
手順は、以下の公式マニュアルに記載があります。
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/how-to-create-repository.html

今回は、Cloud9からAWS CLIで作成しました。

CodeCommitのレポジトリを作成
aws codecommit create-repository \
--repository-name aws-amplify-appsync-graphql-real-time-canvas \
--repository-description "aws-amplify-appsync-graphql-real-time-canvas" \
--tags Category=aws-samples

実行結果は以下のようになります。「cloneUrlHttp」の値を控えておきます。
※クローンURLは、AWS CLIやAWSコンソールからでも確認できます。

実行結果
$ aws codecommit create-repository \
> --repository-name aws-amplify-appsync-graphql-real-time-canvas \
> --repository-description "aws-amplify-appsync-graphql-real-time-canvas" \
> --tags Category=aws-samples
{
    "repositoryMetadata": {
        "repositoryName": "aws-amplify-appsync-graphql-real-time-canvas", 
        "cloneUrlSsh": "ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas", 
        "lastModifiedDate": 1674977236.362, 
        "repositoryDescription": "aws-amplify-appsync-graphql-real-time-canvas", 
        "cloneUrlHttp": "https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas", 
        以下省略
    }
}

GitHubからクローン(ベアコピー)を作成

次に、GitHubからローカル(ここではCloud9)に、gitの「--mirror」オプションを利用してクローンします。
詳細は、以下の公式マニュアルに記載があります。
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/how-to-migrate-repository-existing.html

コマンドは、以下のようになります。

クローン(ベアコピー)
git clone --mirror \
https://github.com/aws-samples/aws-amplify-appsync-graphql-real-time-canvas \
aws-amplify-appsync-graphql-real-time-canvas

実行結果は、以下のようになります。

実行結果
$ git clone --mirror \
> https://github.com/aws-samples/aws-amplify-appsync-graphql-real-time-canvas \
> aws-amplify-appsync-graphql-real-time-canvas
Cloning into bare repository 'aws-amplify-appsync-graphql-real-time-canvas'...
remote: Enumerating objects: 533, done.
remote: Counting objects: 100% (46/46), done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 533 (delta 23), reused 35 (delta 14), pack-reused 487
Receiving objects: 100% (533/533), 32.10 MiB | 21.71 MiB/s, done.
Resolving deltas: 100% (313/313), done.

CodeCommitにpush

次に、事前に作成したCodeCommitのレポジトリに、ベアコピーしたレポジトリをpushします。
push先は、CodeCommitのレポジトリ作成時に控えたクローンURLです。
コマンドは以下のようになります。

push
git push \
https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas \
--all

実行結果は、以下のようになります。

実行結果
$ cd aws-amplify-appsync-graphql-real-time-canvas/
(BARE:master) $ git push \
> https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas \
> --all
Enumerating objects: 293, done.
Counting objects: 100% (293/293), done.
Compressing objects: 100% (139/139), done.
Writing objects: 100% (293/293), 28.18 MiB | 33.25 MiB/s, done.
Total 293 (delta 153), reused 289 (delta 150), pack-reused 0
remote: Validating objects: 100%
To https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas
 * [new branch]      bradruof/FixVulnerability -> bradruof/FixVulnerability
 * [new branch]      fix/security-patch-immer -> fix/security-patch-immer
 * [new branch]      master -> master
 * [new branch]      nimacks-patch-1 -> nimacks-patch-1
 * [new branch]      nimacks-patch-2 -> nimacks-patch-2
 * [new branch]      nimacks-patch-3 -> nimacks-patch-3
 * [new branch]      security-patch/node-forge -> security-patch/node-forge
 * [new branch]      swaminator-patch-1 -> swaminator-patch-1

ベアコピーしたレポジトリを削除

ベアコピーしたレポジトリは、以下のように利用することができません。

ベアコピーしたレポジトリのエラー
(BARE:master) $ git checkout bradruof/FixVulnerability
fatal: this operation must be run in a work tree

削除しておきます。

ベアコピーしたレポジトリの削除
(BARE:master) $ cd ..
$ rm -fr aws-amplify-appsync-graphql-real-time-canvas

動作確認

後は、いつも通りレポジトリを利用すればよいです。
以下は一例です。

CodeCommitにpushしたレポジトリのブランチを確認します。

ブランチを確認
$ aws codecommit list-branches \
> --repository-name aws-amplify-appsync-graphql-real-time-canvas
{
    "branches": [
        "fix/security-patch-immer", 
        "master", 
        "nimacks-patch-1", 
        "security-patch/node-forge", 
        "swaminator-patch-1", 
        "nimacks-patch-2", 
        "nimacks-patch-3", 
        "bradruof/FixVulnerability"
    ]
}

CodeCommitのレポジトリのクローンURLがわからない場合は、以下のように確認できます。

クローンURLの確認
$ aws codecommit get-repository --repository-name aws-amplify-appsync-graphql-real-time-canvas
{
    "repositoryMetadata": {
        "creationDate": 1674977236.362, 
        "defaultBranch": "bradruof/FixVulnerability", 
        "repositoryName": "aws-amplify-appsync-graphql-real-time-canvas", 
        "cloneUrlSsh": "ssh://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas", 
        "lastModifiedDate": 1674977941.396, 
        "repositoryDescription": "aws-amplify-appsync-graphql-real-time-canvas", 
        "cloneUrlHttp": "https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas", 
        以下省略
    }
}

CodeCommitのレポジトリをローカルにクローンします。

ローカルにクローン
$ git clone \
> https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/aws-amplify-appsync-graphql-real-time-canvas \
> -b bradruof/FixVulnerability
Cloning into 'aws-amplify-appsync-graphql-real-time-canvas'...
remote: Counting objects: 293, done.
Receiving objects: 100% (293/293), 28.18 MiB | 10.91 MiB/s, done.
Resolving deltas: 100% (153/153), done.

以下のように、正常にクローンされがことが確認出ます。

動作確認
$ cd aws-amplify-appsync-graphql-real-time-canvas/
(bradruof/FixVulnerability) $ ls
amplify  CODE_OF_CONDUCT.md  CONTRIBUTING.md  graphqlgif1.gif  LICENSE  package.json  package-lock.json  public  README.md  src

CodeCommitのコマンドリファレンスは、CodeCommitの公式マニュアルに記載があります。

基本的なGitコマンドについても、CodeCommitの公式マニュアルに記載があります。

CodeCommitの公式マニュアルは、分かりやすくてよいですね。

(おまけ)CodeCommitのデフォルトブランチを変更

こちらおまけですが、CodeCommitのデフォルトブランチの変更方法です。
普通にAWSコンソールからでも出来るようです。(今まで知らなかった)

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