パッケージに対するアクセス許可のスコープを、ユーザーまたは organization に、あるいはリポジトリに設定できます。
ユーザー/組織単位のパッケージに対する細分化された権限
詳細なアクセス許可を持つパッケージは、個人アカウントまたは Organization にスコープ設定されます。 パッケージのアクセス制御と可視性は、パッケージに接続(またはリンク)されたリポジトリとは別に変更できます。
次の GitHub Packages レジストリでは、詳細なアクセス許可がサポートされています。
- Container registry
- npm レジストリ
- NuGet レジストリ
- RubyGems レジストリ
リポジトリスコープのパッケージの権限
リポジトリ スコープ パッケージは、パッケージが公開されているリポジトリのアクセス許可と可視性を継承します。 リポジトリをスコープとするパッケージは、リポジトリのメインページにアクセスし、ページ右にあるパッケージリンクをクリックすれば見つかります。 詳細については、 AUTOTITLE を参照してください。
次の GitHub Packages レジストリでは、リポジトリ スコープのアクセス許可 のみが サポートされます。
- Apache Mavenレジストリ
- Gradle レジストリ
では、パッケージのスコープをユーザーまたは組織に許可するか、リポジトリにリンクすることを選択できます。
パッケージの可視性とアクセス許可
パッケージが詳細なアクセス許可をサポートするレジストリに属している場合、パッケージに対する管理者アクセス許可を持つすべてのユーザーは、パッケージをプライベートまたは公開用に設定でき、組織レベルとリポジトリ レベルで設定されたアクセス許可とは別のアクセス許可をパッケージに付与できます。 詳細なアクセス許可をサポートするレジストリの一覧については、「GitHub Packagesの権限について」を参照してください。
ほとんどのレジストリでは、パッケージをプルするには、パッケージが公開用かプライベートかに関係なく、personal access token または GITHUB_TOKEN で認証する必要があります。 ただし、Container registry では、公開用 パッケージは匿名アクセスを許可し、認証や CLI 経由でのサインインなしでプルできます。
メモ
リポジトリにリンクされたパッケージを公開する場合、パッケージは既定でリンクされたリポジトリからアクセス許可を継承します。 パッケージの詳細なアクセス許可の設定にアクセスするには、パッケージの継承されたアクセス許可を削除する必要があります。 Organization の所有者は、自分の Organization を対象とするすべての新しいパッケージで、アクセス許可の自動継承を無効にできます。 詳細については、「パッケージのアクセス制御と可視性の設定」および「パッケージのアクセス制御と可視性の設定」を参照してください。
パッケージを発行すると、パッケージへの管理者アクセス許可を自動的に取得します。 Organization にパッケージを発行する場合、Organization 内の owner ロールを持つすべてのユーザーも、そのパッケージへの管理者アクセス許可を取得します。
個人アカウントにスコープ指定されたパッケージの場合は、任意のユーザーにアクセス ロールを付与できます。 Organization にスコープ指定されたパッケージの場合は、Organization 内の任意のユーザーまたは team にアクセス ロールを付与できます。
GitHub Actions ワークフローを使ってパッケージを管理している場合は、パッケージの設定の [Actions のアクセスの管理] の [リポジトリの追加] ボタンを使用して で、ワークフローが格納されているリポジトリへのアクセス ロールを付与できます。 詳しくは、「パッケージのアクセス制御と可視性の設定」をご覧ください。
| アクセス許可 | アクセスの説明 |
|---|---|
| Read | パッケージをダウンロードできます。 パッケージのメタデータを読み取ることができます。 |
| Write | このパッケージをアップロードおよびダウンロードできます。 パッケージ メタデータの読み取りと書き込みを行うことができます。 |
| 管理者 | このパッケージのアップロード、ダウンロード、削除、管理ができます。 パッケージ メタデータの読み取りと書き込みを行うことができます。 パッケージのアクセス許可を付与できます。 |
メモ
REST API を使ってパッケージを削除および復元する GitHub Actions ワークフローの機能は、現在 パブリック プレビュー 段階であり、変更される可能性があります。
詳しくは、「パッケージのアクセス制御と可視性の設定」をご覧ください。
パッケージレジストリのスコープとパーミッションに関して
メモ
GitHub Packages では、personal access token (classic)を使用した認証のみがサポートされています。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。
パッケージ レジストリによってホストされているパッケージを使用または管理するには、適切なスコープを持つ personal access token (classic) を使用する必要があり、個人アカウントには適切なアクセス許可が必要です。
たとえば、次のように入力します。
- リポジトリからパッケージをダウンロードしてインストールするには、 personal access token (classic) に
read:packagesスコープがあり、ユーザー アカウントに読み取りアクセス許可が必要です。 - パッケージを削除するには、 personal access token (classic) に少なくとも
delete:packagesとread:packagesスコープが必要です。 詳しくは、「パッケージを削除および復元する」をご覧ください。
| Scope | 説明 | 必要な権限 |
|---|---|---|
read:packages | ||
| GitHub Packages からパッケージをダウンロードしてインストール | 読み取り | |
write:packages | ||
| GitHub Packages にパッケージをアップロードして公開する | 書き込み | |
delete:packages | からパッケージを削除する GitHub Packages | 管理者 |
メモ
REST API を使ってパッケージを削除および復元する GitHub Actions ワークフローの機能は、現在 パブリック プレビュー 段階であり、変更される可能性があります。
GitHub Actions ワークフローを作成するときに、GITHUB_TOKENを使用して、GitHub Packagesを格納および管理することなく、personal access tokenでパッケージを発行、インストール、削除、および復元できます。
詳細については、以下を参照してください。
リポジトリの移譲について
リポジトリを別の個人アカウントまたは Organization に移譲できます。 詳しくは、「リポジトリを移譲する」をご覧ください。
リポジトリを転送する場合、 GitHub は、パッケージが属するレジストリに応じて、リポジトリに関連付けられているパッケージを転送できます。
- 詳細なアクセス許可をサポートするレジストリの場合、パッケージのスコープは個人アカウントまたは Organization に設定され、リポジトリを移譲してもパッケージに関連付けられているアカウントは変更されません。 パッケージをリポジトリにリンクした場合、リポジトリを別のユーザーに転送するとリンクが削除されます。 リポジトリに関連付けられている codespaces または GitHub Actions ワークフローは、パッケージにアクセスできなくなります。 リンクされたリポジトリからパッケージがアクセス許可を継承する場合、ユーザーはパッケージにアクセスできなくなります。 これらのレジストリの一覧については、前述の「ユーザーや組織スコープのパッケージの詳細な権限」を参照してください。
- リポジトリ スコープのアクセス許可のみをサポートするレジストリの場合、パッケージはリポジトリに直接発行され、リポジトリ転送の一環としてリポジトリに関連付けられているパッケージを転送 GitHub 。 パッケージに関連付けられているすべての課金対象使用量は、その後、リポジトリの新しい所有者に課金されます。 以前のリポジトリ所有者がリポジトリのコラボレーターとして削除された場合、そのリポジトリに関連付けられているパッケージにアクセスできなくなる可能性があります。 これらのレジストリの一覧については、前述の「リポジトリ スコープ パッケージのアクセス許可」を参照してください。
GitHub Actions ワークフローでのパッケージへのアクセスの維持
ワークフローがパッケージへのアクセスを維持できるようにするには、ワークフローで適切なアクセス トークンを使用していること、およびパッケージへのアクセス GitHub Actions 有効になっていることを確認します。
GitHub Actionsの概念的背景やワークフローでのパッケージの使用例については、GitHub Actionsワークフローを利用したGitHub Packagesの管理 を参照してください。
アクセス トークン
メモ
REST API を使ってパッケージを削除および復元する GitHub Actions ワークフローの機能は、現在 パブリック プレビュー 段階であり、変更される可能性があります。
- ワークフロー リポジトリに関連付けられているパッケージを発行、インストール、削除、および復元するには、
GITHUB_TOKENを使用します。 GITHUB_TOKENがアクセスできない他のプライベート リポジトリに関連するパッケージをインストールするには、personal access token (classic) を使用します
GITHUB_TOKENワークフローで使用GitHub Actionsの詳細については、「ワークフローでの認証に GITHUB_TOKEN を使用する」を参照してください。
GitHub Actions 詳細なアクセス許可を持つパッケージへのアクセス
詳細なアクセス許可をサポートするレジストリに格納されているパッケージにワークフローが確実にアクセスできるようにするには、ワークフローを実行するリポジトリに GitHub Actions アクセス権を付与する必要があります。 この設定は、パッケージの設定ページにあります。 詳しくは、「パッケージのアクセス制御と可視性の設定」をご覧ください。