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

GitHub Packagesについて

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

GitHub PackagesはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 2.22、GitHub One、GitHub AEで利用できます。


GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 GitHub PackagesはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Oneで利用できます。 詳しい情報については「[GitHubの製品](/articles/github-s-products)」を参照してください。

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

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を使用するには、機能プレビューを有効化しなければなりません。 詳しい情報については「GitHub Container Registryについて」及び「改善されたコンテナサポートの有効化」を参照してください。

Diagram showing the GitHub Packages hosting urls for npm, RubyGems, Apache Maven, Gradle, Nuget, and Docker

パッケージの表示

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

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

パッケージレジストリ
ホスト場所1 つのリポジトリに複数のパッケージをホストできます。
権限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. パッケージはリポジトリの権限を継承するので、GitHubのロールとTeamを使い、各パッケージをインストールしたり公開したりできる人を制限できます。 リポジトリの読み取り権限を持っている人は、パッケージを依存関係としてプロジェクトにインストールでき、書き込み権限を持っている人は新しいパッケージのバージョンを公開できます。
可視性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.

GitHub Packagesの支払いについて

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

コンテナイメージのストレージの支払いに関するアップデート: GitHub Container Registryのベータ期間は、古いdocker.pkg.github.com及び新しいghcr.ioホスティングサービスにおいて、Dockerイメージのストレージと帯域は無料です。 詳しい情報については「GitHub Container Registryについて」を参照してください。

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

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

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

パッケージレジストリは、PACKAGE-TYPE.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME をパッケージのホスト URL として使用します。PACKAGE-TYPE は、パッケージの名前空間に置き換えます。 たとえば、Gemfile は rubygems.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.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
JavaJava用のGradleビルド自動化ツールbuild.gradle または build.gradle.ktsgradlemaven.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
.NET.NET用のNuGetパッケージ管理nupkgdotnet CLInuget.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME

For more information about configuring your package client for use with GitHub Packages, see "Package client guides for GitHub Packages."

For more information about Docker and GitHub Container Registry, see "Container guides for GitHub Packages."

GitHub Packages への認証を行う

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

認証を GitHub Actionsのワークフローで行うには:

  • パッケージレジストリの場合(PACKAGE-REGISTRY.pkg.github.com)は、GITHUB_TOKENを利用できます。
  • コンテナレジストリ(ghcr.io/OWNER/IMAGE-NAME)の場合は、GITHUB_TOKENもしくは個人アクセストークンを利用できます。 GITHUB_TOKENを利用し、リポジトリに不要なアクセスをしないようにすることを強くおすすめします。

GitHub Actionsワークフローで使われるGITHUB_TOKENに関する情報については、「暗号化されたシークレット」及び「ワークフロー内での認証」を参照してください。

パッケージの管理

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

例:

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

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

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

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

パッケージの管理

You can delete a version of a private package in the GitHub user interface 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?

Privacy policy

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.