ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

GitHub Packagesについて

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

GitHub Packages is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 2.22, and GitHub One.


GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 GitHub PackagesはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Oneで利用できます。 For more information, see "[GitHub's products](/articles/github-s-products)."

ここには以下の内容があります:

Did this doc help you?

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.

GitHub Packages について

GitHub Packagesはパッケージホスティングサービスで、GitHubと完全に統合されています。 GitHub Packagesは、ソースコードとパッケージを一カ所にまとめ、統合された権限管理と支払いを提供し、GitHub上でのソフトウェア開発を一元化できるようにします。

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

1つのリポジトリで複数のパッケージをホストし、各パッケージのREADMEを見たり、統計をダウンロードしたり、バージョン履歴を見たりすることで、各パッケージに関する詳しい情報を見ることができます。

GitHub Actionsワークフローを作成する際には、GITHUB_TOKENを使ってGitHub Packagesにパッケージを公開してインストールでき、個人アクセストークンを保存して管理する必要はありません。 詳しい情報については「GitHub Container Registryについて」を参照してください。

注釈: GitHub Container Registry は現在パブリックベータであり、変更されることがあります。 現在のところ、GitHub Container Registry がサポートしているのは Docker イメージフォーマットのみです。 ベータ期間中は、ストレージおよび帯域幅の制限はありません。 詳しい情報については「GitHub Container Registryについて」を参照してください。

パッケージの表示

パッケージの README や、ライセンス、ダウンロード統計、バージョン履歴などのメタデータを GitHub 上で確認できます。 詳しい情報については「パッケージの表示」を参照してください。

パッケージの権限と可視性について

パッケージレジストリGitHub Container Registry
ホスト場所1 つのリポジトリに複数のパッケージをホストできます。1 つの Organization またはユーザアカウントに複数のコンテナをホストできます。
権限You can publish packages in a public repository (public packages) to share with {% if currentVersion == "free-pro-team@latest" %}all of {% data variables.product.prodname_dotcom %}{% else %}everyone on your instance{% endif %}, or in a private repository (private packages) to share with collaborators or an organization. パッケージはリポジトリの権限を継承するので、GitHubのロールとTeamを使い、各パッケージをインストールしたり公開したりできる人を制限できます。 リポジトリの読み取り権限を持っている人は、パッケージを依存関係としてプロジェクトにインストールでき、書き込み権限を持っている人は新しいパッケージのバージョンを公開できます。コンテナイメージごとに、他のユーザが持つアクセスレベルを選択できます。 コンテナイメージへのアクセス権限は、Organization およびリポジトリの権限とは別になります。
可視性You can publish packages in a public repository (public packages) to share with all of GitHub, or in a private repository (private packages) to share with collaborators or an organization.それぞれのコンテナイメージに可視性を設定できます。 プライベートコンテナイメージは、Organization 内でアクセス権を付与されたユーザおよび Team のみに表示されます。 パブリックコンテナは誰でも表示できます。

GitHub Container Registry のアクセス権限や可視性に関する詳しい情報については、「コンテナイメージにアクセス制御と可視性を設定する」を参照してください。

GitHub Packagesの支払いについて

GitHub Packagesの利用は、パブリックパッケージについては無料です。 プライベートパッケージについては、それぞれのGitHubアカウントは一定量の無料のストレージとデータ転送を、そのアカウントで使っている製品に応じて受け取ります。 デフォルトではアカウントの料金の上限は$0になっており、含まれている量に達した後に追加でストレージやデータ転送が利用されないようになっています。 デフォルトの$0を超えて利用上限を増やしたなら、追加のストレージやデータ転送に対しては利用上限を最大として課金されます。これは過剰分とも呼ばれます。 アカウントのクーポンは、GitHub Packagesの過剰分には適用されません。 詳細は「GitHub Packages の支払いについて」を参照してください。

Billing update for container image storage: During the beta phase of GitHub Container Registry, Docker image storage and bandwidth are free for the old docker.pkg.github.com and new ghcr.io hosting services. 詳しい情報については「GitHub Container Registryについて」を参照してください。

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

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

GitHub Container Registry のサポート

GitHub Container Registry は、コンテナを ghcr.io/OWNER/IMAGE-NAME にホストします。

パッケージクライアント言語パッケージフォーマット説明
dockerなしDockerfileNodeのパッケージマネージャー

GitHub Container Registry が提供するコンテナのサポートに関する詳しい情報については、

About GitHub Container Registry について」を参照してください。

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

パッケージレジストリは、PACKAGE-TYPE.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME をパッケージのホスト URL として使用します。PACKAGE-TYPE は、パッケージの名前空間に置き換えます。 たとえば、Gemfile は rubygem.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME にホストされます。

言語説明パッケージフォーマットパッケージクライアントパッケージ名前空間
JavaScriptNodeのパッケージマネージャーpackage.jsonnpmnpm.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
RubyRubyGemsパッケージマネージャーGemfilegemrubygems.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
JavaApache Mavenのプロジェクト管理及び包括的ツールpom.xmlmvnmaven.HOSTNAME/OWNER/REPOSITORY/IMAGE-NAME
JavaJava用のGradleビルド自動化ツールbuild.gradle または build.gradle.ktsgradlemaven.HOSTNAME/OWNER/REPOSITORY/IMAGE-NAME
.NET.NET用のNuGetパッケージ管理nupkgdotnet CLInuget.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME`

GitHub Packagesとの利用のためのパッケージクライアントの設定に関する詳しい情報については「プロジェクトのエコシステムとのGitHub Packagesの利用」を参照してください。

GitHub Packages への認証を行う

GitHub Packagesでパッケージを公開、インストール、削除するにはアクセストークンが必要です。 GitHub Packagesに直接、あるいはGitHub APIでユーザ名で認証を受けるのに、個人のアクセストークンが利用できます。 個人トークンを作成する際には、必要に応じて様々なスコープをトークンに割り当てできます。

To authenticate using a GitHub Actionsのワークフロー:

  • For package registries (PACKAGE-REGISTRY.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME), you can use a GITHUB_TOKEN.
  • For the container registry (ghcr.io/OWNER/IMAGE-NAME), you must use a personal access token.

トークンについて

スコープ説明
read:packagesGitHub Container Registryからのコンテナイメージのダウンロードとインストール
write:packagesGitHub Container Registryへのコンテナイメージのアップロードと公開
delete:packagesGitHub Container Registryからの特定バージョンのプライベートまたはパブリックコンテナイメージの削除。 詳細は「コンテナイメージを削除する」を参照してください。

コンテナイメージで利用できるスコープおよび権限については、「GitHub Container Registry について」または「コンテナイメージにアクセス制御と可視性を設定する」を参照してください。

詳しい情報については、「個人アクセストークンを作成する」と「利用可能なスコープ」を参照してください。

パッケージの管理

パッケージをインストールあるいは公開するには、適切なスコープを持つトークンを使い、ユーザアカウントがそのリポジトリに対する適切な権限を持っていなければなりません。

例:

  • リポジトリからパッケージをダウンロードしてインストールするには、トークンはread:packagesスコープを持っていなければならず、ユーザアカウントはそのリポジトリの読み取り権限を持っていなければなりません。 リポジトリがプライベートの場合は、トークンはrepoスコープも持っていなければなりません。
  • GitHub上の特定バージョンのプライベートパッケージを削除するには、トークンはdelete:packages及びrepoスコープを持っていなければなりません。 パブリックなパッケージは削除できません。 詳しい情報については「パッケージの削除」を参照してください。
スコープ説明リポジトリの権限
read:packagesGitHub Packagesからのパッケージのダウンロードとインストール読み取り
write:packagesGitHub Packagesへのパッケージのアップロードと公開書き込み
delete:packagesGitHub Packagesからの特定バージョンのプライベートパッケージの削除管理
repoプライベートリポジトリ内の特定パッケージのインストール、アップロード、削除(read:packageswrite:packagesあるいはdelete:packagesと併せて)読み取り、書き込み、あるいは管理

GitHub Actionsワークフローを作成する際には、GITHUB_TOKENを使ってGitHub Packagesにパッケージを公開してインストールでき、個人アクセストークンを保存して管理する必要はありません。

詳しい情報については、以下を参照してください。

  • ドキュメンテーションに反する何らかの体験をした時
  • 個人アクセストークンを作成する
  • GDPR違反、APIキー、個人を識別する情報といったセンシティブなデータを含むパッケージを公開した時

パッケージの管理

You can delete a version of a private package on GitHub or using the GraphQL API. GraphQL APIを使ってプライベートパッケージに対するクエリや削除を行う場合、GitHub Packagesの認証に使うのと同じトークンを使わなければなりません。 詳しい情報については、「パッケージの削除」と「GraphQLでの呼び出しの作成」を参照してください。

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

サポートへの連絡

GitHub Packages についてのフィードバックあるいは機能リクエストがある場合は、 GitHub Packages のフィードバックフォームを利用してください。

連絡フォームを使い、GitHub PackagesについてGitHub Supportに連絡してください。

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

Did this doc help you?

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

OR, learn how to contribute.