GitHub Packages について
GitHub Packages は、コンテナーやその他の依存関係を含むパッケージをホストおよび管理するためのプラットフォームです。 GitHub Packagesは、ソースコードとパッケージを 1 か所にまとめ、統合された権限管理を提供し、GitHub Enterprise Server 上でのソフトウェア開発を一元化できるようにします。
GitHub Packagesは、GitHub Enterprise Server API、GitHub Actions、webhookと統合して、コード、CI、デプロイメントのソリューションを含むエンドツーエンドのDevOpsワークフローを作成できます。
GitHub Packagesは、nmp、RubyGems、Apache Maven、Gradle、Docker、NuGetといった、広く使われているパッケージマネージャーに対する様々なパッケージレジストリを提供しています。 GitHub Packages がサポートしているさまざまなパッケージ レジストリの詳細については、「GitHub Packagesレジストリの利用」を参照してください。
GitHub Enterprise Serverでは、ライセンスのようなメタデータやパッケージのREADMEを表示したり、統計をダウンロードしたり、バージョン履歴を見たりできます。 詳しくは、「パッケージの表示」をご覧ください。
GitHub Enterprise Server での GitHub Packages の構成の詳細については、「Enterprise 向けの GitHub Packages を使い始める」を参照してください。
パッケージのアクセス許可の概要
パッケージのアクセス許可は、パッケージがホストされているリポジトリから継承されます。特定のユーザーや Organization 用に定義することもできます。 一部のレジストリでは、リポジトリから継承されたアクセス許可のみがサポートされます。 これらのレジストリの一覧については、「GitHub Packagesの権限について」を参照してください。 パッケージ アクセスの詳細については、「パッケージのアクセス制御と可視性の設定」を参照してください。
パッケージの可視性の概要
パブリック リポジトリ (パブリック パッケージ) で パッケージを公開して、Enterprise の全員と共有できます。もしくはプライベート リポジトリ (プライベートパッケージ) でパッケージを公開して、コラボレーターあるいは Organization と共有できます。
サポートされているクライアントとフォーマット
GitHub Packagesは、パッケージのバージョンの公開とインストールに、すでにおなじみのネイティブのパッケージツールコマンドを使います。
パッケージレジストリのサポート
Language | 説明 | パッケージの形式 | パッケージ クライアント |
---|---|---|---|
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 |
Note
Docker レジストリを有効にする場合は、サブドメインの分離も有効にすることを強くお勧めします。 詳しくは、「Subdomain Isolationの有効化」をご覧ください。
GitHub Packages で使うパッケージ クライアントの構成の詳細については、「GitHub Packagesレジストリの利用」を参照してください。
GitHub Packages への認証を行う
Note
GitHub Packages では、personal access token (classic)を使用した認証のみがサポートされています。 詳しくは、「個人用アクセス トークンを管理する」を参照してください。
非公開パッケージ、内部パッケージ、公開パッケージを発行、インストール、削除するには、アクセス トークンが必要です。
personal access token (classic) を使って、GitHub Packages または GitHub Enterprise Server API の認証を受けることができます。 personal access token (classic) を作成するときは、必要に応じてさまざまなスコープをトークンに割り当てることができます。 personal access token (classic) のパッケージ関連のスコープの詳細については、「GitHub Packagesの権限について」を参照してください。
GitHub Actionsワークフロー内でGitHub Packagesレジストリに認証を受けるには、以下の方法が使えます。
GITHUB_TOKEN
では、ワークフロー リポジトリに関連付けられているパッケージを発行します。read:packages
以上のスコープが設定された personal access token (classic) では、他のプライベート リポジトリ (GITHUB_TOKEN
ではアクセスできない) に関連付けられているパッケージがインストールされます。
GitHub Actions ワークフローで使われる GITHUB_TOKEN
の詳細については、「自動トークン認証」を参照してください。
パッケージを管理する
パッケージの削除は、GitHub Enterprise Server のユーザー インターフェイスから、もしくは REST API を使って行うことができます。 詳細については、「パッケージを削除および復元する」と「パッケージの REST API エンドポイント」を参照してください。 特定のレジストリでは、GraphQL を使ってプライベート パッケージのバージョンを削除することができます。
詳細なアクセス許可をサポートするレジストリとともに GitHub Packages GraphQL API を使うことはできません。 リポジトリがスコープされたアクセス許可のみをサポートし、GraphQL API で使用できるレジストリについては、「GitHub Packagesの権限について」を参照してください。
GraphQL API を使ってプライベート パッケージに対するクエリや削除を行う場合、GitHub Packages の認証に使うのと同じ personal access token (classic) を使わなければなりません。
詳細については、「パッケージを削除および復元する」と「GraphQLでの呼び出しの作成」を参照してください。
webhookを設定して、パッケージの公開や更新といったパッケージ関連のイベントにサブスクライブできます。 詳細については、「Webhook のイベントとペイロード」を参照してください。
サポートへの問い合わせ
GitHub Packages のサポートが必要な場合は、サイト管理者にお問い合わせください。