CodeCatalystのGitHubリポジトリとのソースリポジトリリンク機能を試してみた
データ事業本部の鈴木です。
Amazon CodeCatalystはソフトウェア開発プロセスに継続的インテグレーションとデプロイのプラクティスを採用するソフトウェア開発チーム向けの統合サービスです。
類似のサービスにはGitHubなどがあり、こちらを採用されている方も多くいらっしゃると思います。
CodeCatalystにはソースリポジトリのリンク機能があり、GitHubリポジトリをリンクすることができます。
リンクについては具体的にどのような機能なのか使ってみないと分からなかったため、この記事では簡単にですがどのようなことができるのかご共有します。
まとめ
以下、この記事の要点です。
- CodeCatalystのプロジェクトにGitHubリポジトリを紐づけることができる。
- リンクしたGitHubリポジトリのイシューをCodeCatalystから作ることはできない。CodeCatalystプロジェクトのイシューで起票・管理できる。
- CodeCatalystのワークフローを作成・実行できる。ワークフロー定義はGitHubリポジトリにコミットされる。GitHubリポジトリ側のブランチの変更をトリガーにキックすることもできる。
- CodeCatalystでEnvironmentを作成し、リポジトリのコードを編集できる。
- GitHubリポジトリをミラーしたリポジトリがCodeCatalystにできたり、CodeCatalystを経由してCloneができるわけではない。
- 東京リージョンはまだサポートしていない。
- PullリクエストはCodeCatalystのリポジトリのみ作成できる。
- ブループリントはGitHubリポジトリからも作成できる。
やってみた
1. リンクのやり方
今回はCodeCatalystのプロジェクト作成から行いました。既存プロジェクトでも類似の動線になると思います。
CodeCatalystにログインし、プロジェクトを作成しました。
Bring your own codeから、GitHubリポジトリをリンクする既存のリポジトリとして選びました。
GitHubリポジトリ向けの拡張をインストールするか確認されるため、installを押しました。
この後、GitHubに遷移し、どのリポジトリをリンク対象にするか確認されるため、リンクするリポジトリを選択しました。
既存のcotecatalyst_linkリポジトリのみ選んだため、以下のようになりました。
以下のようにGitHubリポジトリのリンクが作成されました。
2. イシューの作成
イシューはCodeCatalystのもののみ作成できます。リンクしたGitHubリポジトリを含むプロジェクト単位のものとなります。
3. ワークフローの作成と実行
リンクしたGitHubリポジトリに対してもワークフローが作成できました。
WorkflowsよりCreate workflowを押すとポップアップが出るため、リポジトリとブランチを選択してCreateを押しました。
以下のようにワークフローの雛形が作成されたため、適当にアクションを追加してcommitしました。
このようにGitHub側にワークフロー定義が作成されました。ディレクトリ構造から分かるように、GitHub Actionsではなく、CodeCatalystのワークフローになります。
ワークフローを実行すると、CodeCatalyst側でワークフローが実行されました。
4. Environmentでのコード編集
Code > Dev Environmentsなどから開発環境を作り、クローンしたGitリポジトリを編集することもできました。
AWS側での認証およびVSCodeでの必要ツールのインストールが行われたのち、ローカルのVSCodeから環境へアクセスできました。
なお、今回のようにSSHする場合はローカルPCでSession Managerプラグインなどの用意が必要になります。
5. リンクしたリポジトリのクローン
リンクしたリポジトリのクローンは、GitHubのクローン用のリンクで行うようでした。
例えばCodeCatalystのリポジトリはクローンのボタンがありますが、該当するものはありませんでした。
特に、GitHubリポジトリをミラーしたリポジトリがCodeCatalystにできたり、CodeCatalystを経由してCloneができるかは気になっていました。
CodeCommitが新規アカウントでリポジトリを作成できなくなったため、CodeCatalyst経由でリンクしたリポジトリをクローンして利用できれば便利そうですが、そういうことはできなさそうです。
6. リージョンの選択
CodeCatalystでスペースを作成すると分かりますが、記事執筆時点では以下の2リージョンがサポートされています。
- US West(Oregon)
- Europe(Ireland)
CodeCatalystでリポジトリを作成し、例えばVPCエンドポイントでアクセスできますが、この場合は東京リージョンのエンドポイントからは直接アクセスできず、対応リージョンのVPCとPeeringするなど工夫が必要になります。
7. そのほか細かい確認事項
PullリクエストはGitHubリポジトリをリンクしたプロジェクト内であっても、CodeCatalystのリポジトリのみを対象に作成できました。
ブループリントの作成はリンクしたGitHubリポジトリからも可能でした。
最後に
CodeCatalystのソースリポジトリのリンク機能でGitHubリポジトリをプロジェクトにリンクした際になにができるのかを確認しました。参考になりましたら幸いです。