Skip to main content

GitHub Packages の概要

GitHub Packages はソフトウェア パッケージのホスティング サービスであり、ソフトウェア パッケージをプライベートにまたはパブリックにホストでき、パッケージをプロジェクト中で依存関係として使えるようになります。

GitHub Packages は、GitHub Free、GitHub Pro、Organization の GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 以降、GitHub AE で利用できます。
GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、レガシーのリポジトリごとのプランを使っているアカウントは、リポジトリごとに課金される Container registry にはアクセスできません。 詳細については、「GitHub's products」を参照してください。

GitHub Packages について

GitHub Packages は、コンテナーやその他の依存関係を含むパッケージをホストおよび管理するためのプラットフォームです。 GitHub Packagesは、ソースコードとパッケージを 1 か所にまとめ、統合された権限管理と支払いを提供し、GitHub Enterprise Cloud 上でのソフトウェア開発を一元化できるようにします。

GitHub Packagesは、GitHub API、GitHub Actions、webhookと統合して、コード、CI、デプロイメントのソリューションを含むエンドツーエンドのDevOpsワークフローを作成できます。

GitHub Packagesは、nmp、RubyGems、Apache Maven、Gradle、Docker、NuGetといった、広く使われているパッケージマネージャーに対する様々なパッケージレジストリを提供しています。 GitHub の Container registry はコンテナーに最適化されており、Docker と OCI イメージをサポートします。 GitHub Packages がサポートするさまざまなパッケージ レジストリについての詳しい情報は、「GitHub Packages レジストリの操作」をご覧ください。

コンテナレジストリ、RubyGems、npm、Apache Maven、NuGet、Gradle のパッケージサポートを示す図

GitHub Enterprise Cloudでは、ライセンスのようなメタデータやパッケージのREADMEを表示したり、統計をダウンロードしたり、バージョン履歴を見たりできます。 詳しくは、「パッケージの表示」をご覧ください。

パッケージの権限と可視性の概要

アクセス許可パッケージの権限は、パッケージがホストされているリポジトリから継承したり、Container registry and npm registry内のパッケージの場合は特定のユーザーまたは Organization アカウントに対して定義したりできます。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。
視程パブリックリポジトリで (パブリックパッケージ) パッケージを公開して、GitHub全体と、もしくはプライベートリポジトリ (プライベートパッケージ) でパッケージを公開して、コラボレータあるいは Organization と共有できます。

詳細については、「GitHub Packages のアクセス許可について」を参照してください。

GitHub Packages の請求について

GitHub Packagesの利用は、パブリックパッケージについては無料です。 プライベート パッケージについては、GitHub.com の各アカウントは、一定量の無料のストレージとデータ転送を、そのアカウントで使っている製品に応じて受け取ります。 含まれる量を超える使用は、使用制限によって制御されます。 月額料金のお客様の場合、既定のアカウントの料金の上限は 0 米国ドル (USD) になっており、含まれている量に達した後に追加でストレージやデータ転送が利用されないようになっています。 アカウントを請求書で支払っている場合、そのアカウントの既定の使用制限は無制限となります。 詳しくは、「GitHub Packages の請求について」を参照してください。

サポートされているクライアントとフォーマット

GitHub Packagesは、パッケージのバージョンの公開とインストールに、すでにおなじみのネイティブのパッケージツールコマンドを使います。

パッケージレジストリのサポート

Language説明パッケージの形式パッケージクライアント
JavaScriptNodeのパッケージマネージャーpackage.jsonnpm
RubyRubyGemsパッケージマネージャーGemfilegem
JavaApache Mavenのプロジェクト管理及び包括的ツールpom.xmlmvn
JavaJava用のGradleビルド自動化ツールbuild.gradle または build.gradle.ktsgradle
.NET.NET用のNuGetパッケージ管理nupkgdotnet CLI
該当なしDockerコンテナ管理プラットフォームDockerfileDocker

GitHub Packages と使用するようにパッケージ クライアントを構成する方法について詳しくは、「GitHub Packages レジストリの操作」をご覧ください。

Docker と Container registry について詳しくは、「コンテナー レジストリの操作」を参照してください。

GitHub Packages への認証を行う

パッケージを発行、インストール、および削除するには、アクセス トークンが必要です。

個人アクセス トークン (PAT) を使用し、GitHub Packages または GitHub API の認証を受けることができます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PAT のパッケージ関連のスコープの詳細については、「GitHub パッケージのアクセス許可について」を参照してください。

GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。

  • GITHUB_TOKEN では、ワークフロー リポジトリに関連付けられているパッケージを発行します。
  • packages:read 以上のスコープが設定された PAT では、(GITHUB_TOKEN ではアクセスできない) 他のプライベート リポジトリに関連付けられているパッケージがインストールされます。

GitHub Actions ワークフローで使用される GITHUB_TOKEN の詳細については、「ワークフローで認証する」を参照してください。

パッケージを管理する

GitHub.com ユーザー インターフェイスまたは REST API を使用して、パッケージを削除できます。 詳しくは、「パッケージを削除および復元する」および GitHub Packages API に関するページをご覧ください。

GitHub Packages GraphQL API では、パッケージ名前空間 https://ghcr.io/OWNER/PACKAGE-NAME を使用するコンテナーまたは Docker イメージ、またはパッケージ名前空間 https://npm.pkg.github.com/OWNER/PACKAGE-NAME を使用する npm イメージはサポートされていません。

GraphQL APIを使ってプライベートパッケージに対するクエリや削除を行う場合、GitHub Packagesの認証に使うのと同じトークンを使わなければなりません。

詳しくは、「GraphQL での呼び出しの作成」をご覧ください。

webhookを設定して、パッケージの公開や更新といったパッケージ関連のイベントにサブスクライブできます。 詳細については、「package webhook イベント」を参照してください。

サポートへの問い合わせ

GitHub Packages に対するフィードバックや機能の要求がある場合は、GitHub Community ディスカッションをお使いください。

次の場合は、お問い合わせフォームを使用して、GitHub Packages について GitHub Support にお問い合わせください。

  • ドキュメンテーションに反する何らかの体験をした時
  • 漠然とした、あるいは不明確なエラーを体験した時
  • GDPR違反、APIキー、個人を識別する情報といったセンシティブなデータを含むパッケージを公開した時