Cloud9からCodeCommitが簡単に操作可能

# はじめに
クラウド上のIDEであるAWS Cloud9について、AWSのコード管理サービスCodeCommitと簡単に連携可能でしたので、それを記事にしました。

# 参考
下記ページではCloudShellですが、Cloud9でもデフォルトで`git-remote-codecommit`がインストールされているため、同様のことができました。

https://dev.classmethod.jp/articles/try-using-aws-codecommit-to-manage-aws-cloudshell-configuration/


# 手順

## CodeCommitでリポジトリ作成
検証用にテストのリポジトリを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/9fc3fdd6-4508-d974-8f86-9b509a2f8420.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/e51ac804-f6dd-6cd5-6686-3bd6c3e9a84d.png)

作成したリポジトリの、"HTTPSのクローン(GRC)"というのを、後々使います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/b36b2e0f-9b4d-a93e-7b48-c0f55a531342.png)

## Cloud9作成
こちらも新規で作りました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/1858744c-e963-5824-09e5-4f0883e585d2.png)

設定はデフォルトのまま、最小インスタンス、デフォルトVPC上です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/494a8e1e-c7d9-8a38-7775-923552f96005.png)

`pip list`で確認すると、ちゃんと`git-remote-codecommit`が入っています。

```
Package               Version
--------------------- -----------
astroid               2.3.0
aws-cfn-bootstrap     2.0
backcall              0.2.0
botocore              1.26.1
decorator             5.1.1
Django                2.0.2
docutils              0.14
git-remote-codecommit 1.16
ikp3db                1.4.1
importlib-metadata    4.11.3
    ...
```

## git clone
最初に作ったリポジトリのURLを指定して`git clone [HTTPS(GRC)]`を行います。

```
$ pwd
/home/ec2-user/environment/testRepo
$ ls -la
total 0
drwxrwxr-x 3 ec2-user ec2-user  18 May 19 05:12 .
drwxr-xr-x 4 ec2-user ec2-user  50 May 19 05:12 ..
drwxrwxr-x 7 ec2-user ec2-user 119 May 19 05:12 .git
$
```

## gitの設定
お好みで設定します。
```
git config --local user.name "ab"
git config --local user.email "email@example.com"
git config --local core.editor "vim"
```

## 試しにファイル作成

README.mdを作成します。
```
$ cat README.md 
# タイトル

本文
$
```

## コミットし、PUSH
IAMユーザの権限が十分であれば、問題なく操作できるはずです。
```
$ git add README.md

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   README.md

$ git commit
[master (root-commit) bf346e0] docs:README.md追加
 1 file changed, 3 insertions(+)
 create mode 100644 README.md

$ git push
```
`README.md`なのでリポジトリのトップに表示され、ちゃんとPUSH出来ていることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/0add8bd7-ca6d-64d2-198c-b9311734b674.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/c8b41b21-3b8f-de26-db44-d4b6bd033e59.png)

## その他

また、Cloud9にあるGitのツールからでも操作することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/f28e34c2-4dd6-5b25-5931-2f4a33c9a1e2.png)

変更されたファイルが表示され、ファイルを開いたり、前に戻したり、git addしたり、差分を表示したりしてくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/a87154da-a929-40d7-2961-53b64de571c6.png)

リポジトリ名の右側アイコンをクリックすると、コミットやPUSHができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/eb639e1d-21de-0c8c-68d1-3ecc8638ca17.png)

gitコマンドが不慣れな方は、こちらのほうが楽に操作できそうです。

# おわりに
今回はCloud9からCodeCommitに簡単に操作できる方法を紹介しました。
Cloud9はクラウド上にあるIDEであり、（会社のルールでローカルPCに自由にインストールできない私にとって）非常に有用なサービスであるため、この連携の簡単さは非常に助かります。
同様な方の参考になれたら幸いです。