GitHub Packages について
GitHub Packagesはパッケージホスティングサービスで、GitHubと完全に統合されています。 GitHub Packagesは、ソースコードとパッケージを一カ所にまとめ、統合された権限管理と支払いを提供し、GitHub上でのソフトウェア開発を一元化できるようにします。
GitHub Packagesは、GitHub API、GitHub Actions、webhookと統合して、コード、CI、デプロイメントのソリューションを含むエンドツーエンドのDevOpsワークフローを作成できます。
GitHub Packagesは、nmp、RubyGems、Apache Maven、Gradle、Docker、NuGetといった、広く使われているパッケージマネージャーに対する様々なパッケージレジストリを提供しています。 GitHubのコンテナレジストリはコンテナに特化しており、DockerとOCIイメージをサポートします。 GitHub Packagesがサポートする様々なパッケージレジストリに関する詳しい情報については「GitHub Packagesレジストリの利用」を参照してください。

GitHubでは、ライセンスのようなメタデータやパッケージのREADMEを表示したり、統計をダウンロードしたり、バージョン履歴を見たりできます。 詳しい情報については「パッケージの表示」を参照してください。
パッケージの権限と可視性の概要
| 権限 | |
| パッケージの権限は、パッケージがホストされているリポジトリから継承したり、コンテナレジストリ中のパッケージであれば特定のユーザあるいはOrganizationアカウントに対して定義したりできます。 詳しい情報については「パッケージのアクセス制御と可視性の設定」を参照してください。 | |
| 可視性 | パブリックリポジトリで(パブリックパッケージ)パッケージを公開して、GitHub全体と、もしくはプライベートリポジトリ(プライベートパッケージ)でパッケージを公開して、コラボレータあるいはOrganizationと共有できます。 |
詳しい情報については「GitHub Packagesの権限について」を参照してください。
GitHub Packagesの支払いについて
GitHub Packagesの利用は、パブリックパッケージについては無料です。 プライベートパッケージについては、それぞれのGitHubアカウントは一定量の無料のストレージとデータ転送を、そのアカウントで使っている製品に応じて受け取ります。 含まれる金額を超える利用については、支出制限によって管理されます。 If you are a monthly-billed customer, your account will have a default spending limit of 0 US dollars (USD), which prevents additional usage of storage or data transfer after you reach the included amounts. 請求書でアカウントの支払いを行う場合、アカウントのデフォルトの支払い制限は無制限になります。 詳しい情報については「GitHub Packagesの支払いについて」を参照してください。
サポートされているクライアントとフォーマット
GitHub Packagesは、パッケージのバージョンの公開とインストールに、すでにおなじみのネイティブのパッケージツールコマンドを使います。
パッケージレジストリのサポート
| 言語 | 説明 | パッケージフォーマット | パッケージクライアント |
|---|---|---|---|
| JavaScript | Nodeのパッケージマネージャー | package.json | npm |
| Ruby | RubyGemsパッケージマネージャー | Gemfile | gem |
| Java | Apache Mavenのプロジェクト管理及び包括的ツール | pom.xml | mvn |
| Java | Java用のGradleビルド自動化ツール | build.gradle または build.gradle.kts | gradle |
| .NET | .NET用のNuGetパッケージ管理 | nupkg | dotnet CLI |
| なし | Dockerコンテナ管理プラットフォーム | Dockerfile | Docker |
GitHub Packagesと使うためのパッケージクライアントの設定に関する詳しい情報については「GitHub Packagesレジストリの利用」を参照してください。
Dockerとコンテナレジストリに関する詳しい情報については「コンテナレジストリの利用」を参照してください。
GitHub Packages への認証を行う
GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。
GitHub Packages、あるいはGitHub APIで認証を受けるのに、個人のアクセストークン(PAT)が利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。 PATに関するパッケージ関連のスコープについての詳しい情報は、「GitHub Packagesの権限について」を参照してください。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKENを使って、ワークフローリポジトリに関連づけられたパッケージを公開。- PATで他のプライベートリポジトリ(これには
GITHUB_TOKENがアクセスできない)に関連づけられたパッケージをインストール。
GitHub Actionsワークフローで使われるGITHUB_TOKENに関する詳しい情報については「ワークフローでの認証」を参照してください。
パッケージの管理
パッケージの削除は、GitHubのユーザインターフェースから、もしくはREST APIを使って行えます。 詳しい情報については、「GitHub Packages API」を参照してください。
GraphQL APIを使ってプライベートパッケージに対するクエリや削除を行う場合、GitHub Packagesの認証に使うのと同じトークンを使わなければなりません。 詳しい情報については、 「パッケージを削除および復元する」および「"GraphQLでの呼び出しの作成」を参照してください。
webhookを設定して、パッケージの公開や更新といったパッケージ関連のイベントにサブスクライブできます。 詳しい情報については、「package webhookイベント」を参照してください。
サポートへの連絡
GitHub Packagesについてのフィードバックあるいは機能リクエストがある場合は、GitHub Packagesのフィードバックフォームを利用してください。
連絡フォームを使い、GitHub PackagesについてGitHub Supportに連絡してください。
- ドキュメンテーションに反する何らかの体験をした時
- 漠然とした、あるいは不明確なエラーを体験した時
- GDPR違反、APIキー、個人を識別する情報といったセンシティブなデータを含むパッケージを公開した時