GitHub Packages とは
GitHub Packages は、ソース コードの横にパブリック パッケージまたはプライベート パッケージを簡単に発行できるようにするパッケージ管理サービスです。
注
GitHub にまだ慣れていない場合は、「 GitHub Learn の概要 」モジュールを参照してください。
GitHub Packages はパッケージ レジストリです
GitHub パッケージを使用すると、組織内またはパブリックでプロジェクトの依存関係を共有できます。
パッケージの依存関係を持つプロジェクトで作業する場合は、それらを信頼し、そのコードを理解し、それらを構築したコミュニティに接続することが重要です。 組織内では、使用が承認された内容をすばやく見つけることができる必要もあります。
GitHub パッケージでは、同じ使い慣れた GitHub インターフェイスを使用して、GitHub 上の任意の場所にあるパブリック パッケージ、または組織内またはリポジトリ内のプライベート パッケージを検索します。
標準パッケージ マネージャー
GitHub Packages は一般的なパッケージ管理クライアントと互換性があるため、選択したツールでパッケージを発行できます。 リポジトリがより複雑な場合は、異なる種類の複数のパッケージを発行することが必要になる場合があります。 Webhook または GitHub Actions を使用して、発行ワークフローと発行後ワークフローを完全にカスタマイズすることもできます。
オープンソース パッケージを発行していますか? 多くのオープンソース プロジェクトでは、コードが GitHub に格納されるため、コミュニティ内でテストするためにパッケージのプレリリース バージョンを公開し、特定のバージョンを任意のパブリック レジストリに簡単に昇格させることができます。
執筆時点では、GitHub Packages は次のパッケージ マネージャーと互換性があります。
- npm、NodeJS パッケージ マネージャー
- NuGet、.NET パッケージ マネージャー
- Ruby パッケージ マネージャーである RubyGems
- Maven と Gradle、Java 用の 2 つのパッケージ マネージャー
GitHub パッケージもコンテナー レジストリです
完全なアプリケーションから CLI ユーティリティまで、コンテナーはコードを配布するもう 1 つの形式です。 GitHub パッケージを使用すると、コンテナー イメージを発行して配布できます。 公開後 (パブリックまたはプライベート) では、次のような場所からこれらのイメージを使用できます。
- ローカル開発環境内
- GitHub Codespaces 開発環境の基本イメージとして
- GitHub Actions を使用して継続的インテグレーション (CI) / 継続的デプロイ (CD) ワークフローに実行する手順として
- サーバーまたはクラウド サービス上
GitHub パッケージと GitHub リリースの比較
GitHub パッケージは、ライブラリのリリースを標準のパッケージ フィードまたはコンテナー レジストリに発行するために使用されます。 これらは、パッケージが作成されたリポジトリや使用されたコードのバージョンにリンクするなど、特定のパッケージ管理クライアントがそのフィードで動作する方法を活用するためのものです。
GitHub リリース は、パッケージ化されたソフトウェアのバンドルと、リリース ノートとバイナリ ファイルへのリンクをリリースするために使用されます。 これらのリリースは一意の URL から直接ダウンロードでき、それらが作成される基になった特定のコミットまで追跡できます。 リリースは、tarball または ZIP ファイルとしてのみダウンロードできます。
統合 ID とアクセス許可
たとえば、GitHub を使用してソース コード (フロントエンド用の JavaScript、バックエンドに npm、Java) を使用してプロジェクトに取り組んでいるとします。 これで、Git、npm、Maven リポジトリの 3 つ以上の異なるユーザー資格情報とアクセス許可のセットが保持されます。
GitHub Packages を使用すると、ソース コード リポジトリ、プライベート npm レジストリ、Maven または Gradle プライベート レジストリ全体で 1 つの資格情報セットを使用できます。 GitHub を通じて発行されたパッケージは、リポジトリ レベルで割り当てられた可視性とアクセス許可を継承します。 新しいチーム メンバーは、パッケージとそのコードへの読み取りアクセス権を必要としますか? リポジトリへの読み取りアクセス権を付与すると、完了です。
GitHub からパッケージをビルドして発行する
GitHub Actions は、ソフトウェア ワークフローを自動化できるもう 1 つの GitHub 機能です。 GitHub から直接コードをビルド、テスト、デプロイできます。
ヒント
GitHub Actions の詳細については、GitHub Actions Learn モジュールを 使用した継続的インテグレーション (CI) ワークフローの構築 に関するページを参照してください。
GitHub Actions と GitHub Packages を組み合わせることで、コードをビルドしてテストするワークフローを構築し、リポジトリにコードをプッシュするだけで GitHub Packages に発行できます。
次のユニットでは、ワークフローを使用して GitHub パッケージと GitHub Container Registry に発行する方法について説明します。