# GitHub Packages の概要

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

<!-- 2148AF7B-5FF8-4B28-A808-D692FEE2225A -->

## GitHub Packages の概要

GitHub Packages は、コンテナーやその他の依存関係を含むパッケージをホストおよび管理するためのプラットフォームです。
GitHub Packages では、ソース コードとパッケージを 1 か所に組み合わせて、統合されたアクセス許可の管理を提供できるため、 GitHubでソフトウェア開発を一元化できます。

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

GitHub Packages では、npm、RubyGems、Apache Maven、Gradle、Docker、NuGet など、一般的に使用されるパッケージ マネージャー用のさまざまなパッケージ レジストリが提供されます。

GitHub Packagesがサポートするさまざまなパッケージ レジストリの詳細については、[GitHub Packagesレジストリの利用](/ja/enterprise-server@3.22/packages/working-with-a-github-packages-registry) を参照してください。

パッケージの README と、ライセンス、ダウンロード統計、バージョン履歴などのメタデータを GitHubで表示できます。 詳しくは、「[パッケージの表示](/ja/enterprise-server@3.22/packages/learn-github-packages/viewing-packages)」をご覧ください。

GitHub PackagesでのGitHub Enterprise Serverの構成の詳細については、[エンタープライズ向けの GitHub パッケージの始め方](/ja/enterprise-server@3.22/admin/configuring-packages/getting-started-with-github-packages-for-your-enterprise) を参照してください。

### パッケージのアクセス許可の概要

パッケージのアクセス許可は、パッケージがホストされているリポジトリから継承されます。特定のユーザーや Organization 用に定義することもできます。 一部のレジストリでは、リポジトリから継承されたアクセス許可のみがサポートされます。 これらのレジストリの一覧については、「[GitHub Packagesの権限について](/ja/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)」を参照してください。 パッケージ アクセスの詳細については、「[パッケージのアクセス制御と可視性の設定](/ja/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)」を参照してください。

### パッケージの可視性の概要

パブリック リポジトリ (パブリック パッケージ) で パッケージを公開して、Enterprise の全員と共有できます。もしくはプライベート リポジトリ (プライベートパッケージ) でパッケージを公開して、コラボレーターあるいは Organization と共有できます。

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

<!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the language support article accordingly. -->

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 レジストリを有効にする場合は、サブドメインの分離も有効にすることを強くお勧めします。 詳しくは、「[サブドメインの分離を有効化する](/ja/enterprise-server@3.22/admin/configuring-settings/hardening-security-for-your-enterprise/enabling-subdomain-isolation)」をご覧ください。

GitHub Packagesで使用するパッケージ クライアントの構成の詳細については、[GitHub Packagesレジストリの利用](/ja/enterprise-server@3.22/packages/working-with-a-github-packages-registry) を参照してください。

## GitHub Packages に認証を行う

> \[!NOTE]
> GitHub Packages では、 personal access token (classic)を使用した認証のみがサポートされます。 詳しくは、「[個人用アクセス トークンを管理する](/ja/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)」をご覧ください。

非公開パッケージ、内部パッケージ、公開パッケージを発行、インストール、削除するには、アクセス トークンが必要です。

personal access token (classic)、あるいは GitHub Packages API で認証を受けるのに、GitHub を利用できます。 personal access token (classic) を作成するときは、必要に応じてさまざまなスコープをトークンに割り当てることができます。 personal access token (classic) のパッケージ関連のスコープについては、「[GitHub Packagesの権限について](/ja/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries)」を参照してください。

GitHub Packagesワークフロー内でGitHub Actionsレジストリに認証を受けるには、以下の方法が使えます。

* `GITHUB_TOKEN` では、ワークフロー リポジトリに関連付けられているパッケージを発行します。
* 他のプライベート リポジトリに関連付けられたパッケージをインストールするために、少なくとも `read:packages` スコープが設定された personal access token (classic) (リポジトリにパッケージへの読み取りアクセス権が付与されている場合は、`GITHUB_TOKEN` を使用できます)。 「[パッケージのアクセス制御と可視性の設定](/ja/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)」を参照してください)。

`GITHUB_TOKEN`ワークフローで使用GitHub Actionsの詳細については、「[ワークフローでの認証に GITHUB\_TOKEN を使用する](/ja/enterprise-server@3.22/actions/tutorials/authenticate-with-github_token#using-the-github_token-in-a-workflow)」を参照してください。

## パッケージを管理する

GitHub ユーザー インターフェイスまたは REST API を使用して、パッケージを削除できます。 詳細については、「[パッケージを削除および復元する](/ja/enterprise-server@3.22/packages/learn-github-packages/deleting-and-restoring-a-package)」と「[パッケージの REST API エンドポイント](/ja/enterprise-server@3.22/rest/packages)」を参照してください。 特定のレジストリでは、GraphQL を使ってプライベート パッケージのバージョンを削除できます。

詳細なアクセス許可をサポートするレジストリでは、GitHub Packages GraphQL API を使用できません。 リポジトリ スコープのアクセス許可**のみ**をサポートし、GraphQL API で使用できるレジストリについては、「[GitHub Packagesの権限について](/ja/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)」をご覧ください。

GraphQL API を使用してプライベート パッケージのクエリと削除を行う場合は、personal access token (classic)の認証に使用するのと同じGitHub Packagesを使用する必要があります。

詳細については、「 [パッケージを削除および復元する](/ja/enterprise-server@3.22/packages/learn-github-packages/deleting-and-restoring-a-package) と [GraphQLでの呼び出しの作成](/ja/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql)」を参照してください。

webhookを設定して、パッケージの公開や更新といったパッケージ関連のイベントにサブスクライブできます。 詳細については、「[Webhook のイベントとペイロード](/ja/enterprise-server@3.22/webhooks/webhook-events-and-payloads#package)」を参照してください。

## サポートへの問い合わせ

GitHub Packagesのサポートが必要な場合は、サイト管理者にお問い合わせください。