Qiita初投稿です。
AWS Amplifyの検証をしようとした際に、以前はサンプルからプロジェクトを作成することができたのですが、いつの間にかサンプルが見えなくなっていることに気が付きました。
探したところGitHubにはアーカイブされていたので、念のため、CodeCommitにコピーしました。
その際の手順メモとなります。
なお、そのサンプルは以下のものです。
https://github.com/aws-samples/aws-amplify-appsync-graphql-real-time-canvas
目次
- CodeCommitのレポジトリを作成
- GitHubからクローン(ベアコピー)を作成
- CodeCommitにpush
- ベアコピーしたレポジトリを削除
- 動作確認
- (おまけ)codecommitのデフォルトブランチを変更
CodeCommitのレポジトリを作成
まずは、CodeCommitのレポジトリを作成します。
手順は、以下の公式マニュアルに記載があります。
https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/how-to-create-repository.html
今回は、Cloud9からAWS CLIで作成しました。
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です。
コマンドは以下のようになります。
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がわからない場合は、以下のように確認できます。
$ 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コンソールからでも出来るようです。(今まで知らなかった)