GitHub Packages とは

完了

GitHub Packages は、パブリックまたはプライベートのパッケージをソース コードと共に簡単に公開できるようにするパッケージ管理サービスです。

Note

GitHub についてまだよく理解していない場合は、「GitHub の概要」の Learn モジュールを確認してください。

GitHub Packages はパッケージ レジストリである

GitHub Packages を使用すると、プロジェクトの依存関係を組織内で、またはパブリックに共有できます。

パッケージの依存関係があるプロジェクトで作業する場合は、それらを信頼し、それらのコードを理解して、それらを構築したコミュニティとつながることが重要です。 組織内では、使用が承認されているものをすばやく見つけられる必要もあります。

GitHub Packages では、同じ使い慣れた GitHub インターフェイスを使用して、GitHub の任意の場所にあるパブリック パッケージ、または組織やリポジトリ内のプライベート パッケージを見つけます。

標準パッケージ マネージャー

GitHub Packages は、一般的なパッケージ管理クライアントと互換性があるため、選んだツールを使ってパッケージを公開できます。 リポジトリがより複雑な場合は、異なる種類の複数のパッケージを公開することが必要になる場合があります。 また、Webhook または GitHub Actions を使用して、公開および公開後のワークフローを完全にカスタマイズできます。

オープンソース パッケージを公開しますか? 多くのオープンソース プロジェクトでは、それらのコードを GitHub 上に格納するため、コミュニティ内でテストするためにパッケージのプレリリース バージョンを公開してから、特定のバージョンを任意のパブリック レジストリに簡単に昇格させることができます。

GitHub n p m package page, with description, and instructions about how to install it.

このドキュメントの執筆時点で、GitHub Packages は、次のパッケージ マネージャーと互換性があります。

  • npm (NodeJS パッケージ マネージャー)
  • NuGet (.NET パッケージ マネージャー)
  • RubyGems (Ruby パッケージ マネージャー)
  • Maven と Gradle (Java 用の 2 つのパッケージ マネージャー)

GitHub Packages はコンテナー レジストリでもある

完全なアプリケーションから CLI ユーティリティまで、コンテナーはコードを配布するもう 1 つの形式です。 GitHub Packages を使用すると、コンテナー イメージを公開および配布できます。 (パブリックかプライベートで) 公開すると、これらのイメージは次のような任意の場所から使用できます。

  • ローカルの開発環境内
  • ご利用の GitHub Codespaces 開発環境から基本イメージとして
  • GitHub Actions を使用して継続的インテグレーション (CI)/継続的配置 (CD) ワークフローを実行するための手順として
  • サーバーまたはクラウド サービス上

GitHub container image page, with image versions listing, statistics and instructions about how to install it.

GitHub Packages と GitHub Releases を比較する

GitHub Packages は、各リリースのライブラリを標準のパッケージ フィードかコンテナー レジストリに公開するために使われます。 それらは、使用されたコードのバージョンだけでなく、パッケージが作成されたリポジトリに戻るリンクの作成など、特定のパッケージ管理クライアントがそのフィードで動作する方法を利用することを意図しています。

GitHub Releases は、リリース ノートとバイナリ ファイルへのリンクと共に、パッケージ化されたソフトウェアのバンドルをリリースするために使用されます。 これらのリリースは一意の URL から直接ダウンロードでき、作成された特定のコミットまで追跡することができます。 リリースのダウンロードは tarball か ZIP ファイルでのみ可能です。

統合された ID とアクセス許可

ソース コードのホスティングに GitHub、フロントエンドに JavaScript と npm、バックエンドに Java を使用するプロジェクトで作業しているとします。 現在、ユーザー資格情報とアクセス許可の少なくとも 3 つの異なるセット (Git、npm、Maven リポジトリ) を保持しています。

GitHub Packages を使用すると、ソース コード リポジトリ、プライベート npm レジストリ、Maven または Gradle プライベート レジストリ全体で単一の資格情報セットを使用できます。 GitHub を介して公開されたパッケージでは、リポジトリ レベルで割り当てられた可視性とアクセス許可が継承されます。 新しいチーム メンバーには、パッケージとそのコードに対する読み取りアクセスが必要ですか? それらにリポジトリへの読み取りアクセス権を付与して、完了です。

GitHub からパッケージをビルドして公開する

GitHub Actions は、ソフトウェア ワークフローを自動化できるようにする GitHub のもう 1 つの機能です。 GitHub から直接コードをビルドし、テストして配置できます。

ヒント

GitHub Actions の詳細については、「GitHub Actions を使用して継続的インテグレーション (CI) ワークフローを作成する」 Learn モジュールを参照してください。

GitHub Actions と GitHub Packages を組み合わせることにより、コードをビルドしてテストするワークフローをビルドし、その後、コードをリポジトリにプッシュするだけで GitHub Packages に公開することができます。

次のユニットでは、ワークフローを使用して GitHub Packages と GitHub Container Registry に公開する方法について説明します。