GitHub Packagesの紹介

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

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


GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、レガシーのリポジトリごとのプランを使っているアカウントは、リポジトリごとに課金されるため、コンテナレジストリにはアクセスできません。 詳しい情報については「[GitHubの製品](/articles/github-s-products)」を参照してください。

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レジストリの利用」を参照してください。

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

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は、パッケージのバージョンの公開とインストールに、すでにおなじみのネイティブのパッケージツールコマンドを使います。

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

言語説明パッケージフォーマットパッケージクライアント
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とコンテナレジストリに関する詳しい情報については「コンテナレジストリの利用」を参照してください。

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キー、個人を識別する情報といったセンシティブなデータを含むパッケージを公開した時

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?