GitHubは、大規模で複雑なプロジェクトのための完全な開発環境を立ち上げるためにかかる時間を短縮するために、ビルド済みのCodespacesを導入した。
GitHub Codespacesはフル機能のクラウドベースの開発環境を提供する。さまざまな方法で開発者エクスペリエンスを向上させることを目的としている。他の利点の中でも特に、Codespacesによって開発環境のセットアッププロセスがスピードアップされ、開発者がプロジェクトにすぐに貢献できるようなる。
リポジトリのクローンを作成したり、依存関係やプラグインをインストールしたり、初期化スクリプトを実行したりする必要があるため、開発環境全体の立ち上げは必ずしも迅速ではありません。これは、プロジェクトに役立つ準備ができるまでにかかる時間は、プロジェクトのサイズとその構成の複雑さによって大幅に異なることを意味する。
最大のリポジトリを持つCodespacesのパフォーマンスを向上させるために、GitHubはCodespacesを事前に構築する選択肢を取り入れている。
事前に構築されたCodespacesは「すぐに使える」テンプレートとして機能します。そのテンプレートでは、ソースコード、エディター拡張機能、プロジェクトの依存関係、コマンド、構成が、既にダウンロードされ、インストールされ、適用されています。
ベータ版では、開発者は、リンク先のブランチと最終イメージを実行するリージョンを選択して、事前ビルドの構成を作成できる。事前ビルドの構成が定義されると、Codespacesサービスは、構成に関連付けられたGitHub Actionsワークフローの実行を処理して、対応するdevcontainerを作成する。
ビルド済みのCodespacesをリクエストするたびに、そのサービスはビルド済みのテンプレートをフェッチして既存の仮想マシンにアタッチするため、Codespacesの作成時間が大幅に短縮されます。
事前ビルドの構成を変更する必要がある場合には、プルリクエストを使ってdevcontainer
構成を更新できる。
GitHubによると、ビルド済みのCodespacesは、デフォルトの開発プラットフォームとしてCodespacesを採用するGitHubのプロセスにおいて重要な要素であった。さらに、GitHubでは約50の組織で新機能のプライベートプレビュー版が実行されていた。これにより、多くの改善が行われ、今では利用できるようになっている。例えば、「prebuild ready」タグが付いているマシンタイプを特定する方法や、前述のGitHub Actionsワークフローの導入により、管理者の負担を軽減するなどがある。
ビルド済みのGitHub Codespacesは、まだベータ版だが、GitHub Enterprise CloudおよびTeams組織で利用できる。
無関係だが、ほぼ同時の発表で、GitHubは、GitHubアドバイザリーデータベースをコミュニティコントリビューションに公開した。これは、ソフトウェア依存関係の脆弱性の大規模なデータベースである。アドバイザリデータベースのコンテンツが公開リポジトリで利用できるようになり、貢献するための特定のインターフェイスが提供された。詳細については、公式発表をお見逃しなく。