詳細な権限を持つパッケージは、個人ユーザもしくはOrganizationアカウントをスコープとします。 パッケージのアクセス制御と可視性は、パッケージに接続された(あるいはリンクされた)リポジトリは別個に変更できます。
現在は、コンテナレジストリでのみ詳細な権限を使うことができます。 詳細な権限は、npmレジストリなど他のパッケージレジストリではサポートされていません。
リポジトリをスコープとするパッケージの権限や、PATに関するパッケージ関連のスコープ、Actionsのワークフローの権限の管理についての詳しい情報は、「GitHub Packagesの権限について」を参照してください。
コンテナイメージの可視性とアクセス権限
コンテナイメージへの管理権限を持っているなら、そのコンテナイメージへのアクセス権限をプライベートもしくはパブリックに設定できます。 パブリックイメージは匿名でアクセスでき、認証や CLI 経由でサインインすることなくプルできます。
あなたが管理者であれば、Organization レベルおよびリポジトリレベルに設定した権限とは別に、コンテナイメージに対してアクセス権限を付与することもできます。
ユーザアカウントが所有し公開しているコンテナイメージには、任意のユーザにアクセスロールを付与できます。 Organization が所有し公開しているコンテナイメージには、Organization 内の任意の Team にアクセスロールを付与できます。
| 権限 | アクセス権の内容 |
|---|---|
| 読み取り | パッケージをダウンロードできます。 メタデータの読み取りができます。 |
| 書き込み | このパッケージをアップロードおよびダウンロードできます。 パッケージのメタデータの読み取りおよび書き込みができます。 |
| 管理 | このパッケージのアップロード、ダウンロード、削除、管理ができます。 パッケージのメタデータの読み取りおよび書き込みができます。 パッケージに権限を付与できます。 |
個人アカウントにコンテナイメージへのアクセス権限を設定する
ユーザアカウントが所有するコンテナイメージに対する管理者権限がある場合には、他のユーザに読み取り、書き込み、管理者ロールを割り当てることができます。 これらの権限ロールに関する詳しい情報については、コンテナイメージの可視性とアクセス権限」を参照してください。
パッケージがプライベートもしくはインターナルで、Organizationによって所有されているなら、あなたにできることは他のOrganizationメンバーやTeamにアクセス権を与えることだけです。
- GitHubで、ユーザアカウントのメインページにアクセスしてください。
- In the top right corner of GitHub.com, click your profile photo, then click Your profile.

- プロフィールページで、右上のPackages(パッケージ)をクリックしてください。

- パッケージ設定ページで [Invite teams or people] をクリックして、アクセス権を付与するユーザの名前、ユーザ名、またはメールアドレスを入力します。 Team には、ユーザアカウントが所持するコンテナイメージのアクセス権限を与えることができません。

- ユーザ名または Team 名の隣にある [Role] のドロップダウンメニューで、付与する権限レベルを選択します。

選択したユーザには自動的にアクセス権限が与えられ、招待を承諾する必要はありません。
Organization にコンテナイメージへのアクセス権限を設定する
Organization が所有するコンテナイメージに対する管理者権限がある場合には、他のユーザや Team に読み取り、書き込み、管理者ロールを割り当てることができます。 これらの権限ロールに関する詳しい情報については、コンテナイメージの可視性とアクセス権限」を参照してください。
パッケージがプライベートもしくはインターナルで、Organizationによって所有されているなら、あなたにできることは他のOrganizationメンバーやTeamにアクセス権を与えることだけです。
-
GitHubで、Organizationのメインページにアクセスしてください。
-
Organization名の下で、Packages(パッケージ)をクリックしてください。

-
パッケージ設定ページで [Invite teams or people] をクリックして、アクセス権を付与するユーザの名前、ユーザ名、またはメールアドレスを入力します。 また、Organization から Team 名を入力して、全 Team メンバーにアクセスを付与することもできます。

-
ユーザ名または Team 名の隣にある [Role] のドロップダウンメニューで、付与する権限レベルを選択します。

選択したユーザや Team には自動的にアクセス権限が与えられ、招待を承諾する必要はありません。
リポジトリからコンテナイメージへのアクセスの継承
GitHub Actionsワークフローを通じたパッケージ管理を単純化するには、デフォルトでリポジトリのアクセス権をコンテナイメージが継承できるようにすることができます。
パッケージのワークフローが保存されているリポジトリのアクセス権限を継承する場合、リポジトリの権限を通じてパッケージへのアクセスを調整できます。
リポジトリが同期されると、パッケージの詳細なアクセス設定にはアクセスできなくなります。 詳細なパッケージのアクセス設定を通じてパッケージの権限をカスタマイズするには、まず同期されたリポジトリを取り除かなければなりません。
-
GitHubで、Organizationのメインページにアクセスしてください。
-
Organization名の下で、Packages(パッケージ)をクリックしてください。

-
"Repository source(リポジトリソース)"の下で、Inherit access from repository (recommended)(アクセスをリポジトリから継承(推奨))を選択してください。

パッケージへのワークフローのアクセスの確保
GitHub Actionsワークフローがパッケージに確実にアクセスできるようにするためには、ワークフローが保存されているリポジトリに対する明示的なアクセスを与えなければなりません。
指定するリポジトリは、パッケージのソースコードが保存されているリポジトリである必要はありません。 パッケージに対して複数のリポジトリワークフローにアクセスを与えることができます。
ノート: Actionsのアクセスメニューオプションを通じてコンテナイメージをリポジトリと同期することは、コンテナをリポジトリに接続することとは異なります。 リポジトリのコンテナへのリンクに関する詳しい情報については、「リポジトリのパッケージへの接続」を参照してください。
ユーザアカウントが所有するコンテナイメージへのGitHub Actionsのアクセス
- GitHubで、ユーザアカウントのメインページにアクセスしてください。
- In the top right corner of GitHub.com, click your profile photo, then click Your profile.

- プロフィールページで、右上のPackages(パッケージ)をクリックしてください。

- ひだりのサイドバーで、Actions access(Actionsのアクセス)をクリックしてください。

- ワークフローがコンテナパッケージに確実にアクセスできるようにするには、ワークフローが保存されるリポジトリを追加しなければなりません。 Add repository(リポジトリの追加)をクリックし、追加したいリポジトリを検索してください。

- "role(ロール)"ドロップダウンメニューを使い、コンテナイメージに対してリポジトリに持たせたいデフォルトのアクセスレベルを選択してください。

コンテナイメージへのアクセスをさらにカスタマイズするには、「個人アカウントのためのコンテナイメージへのアクセスの設定」を参照してください。
Organizationが所有するコンテナイメージへのGitHub Actionsのアクセス
-
GitHubで、Organizationのメインページにアクセスしてください。
-
Organization名の下で、Packages(パッケージ)をクリックしてください。

-
ひだりのサイドバーで、Actions access(Actionsのアクセス)をクリックしてください。

-
Add repository(リポジトリの追加)をクリックし、追加したいリポジトリを検索してください。

-
"role(ロール)"ドロップダウンメニューを使い、リポジトリのメンバーからコンテナイメージに対して持たせたいデフォルトのアクセスレベルを選択してください。 外部のコラボレータは含まれません。

コンテナイメージへのアクセスをさらにカスタマイズするには、「Organizationのためのコンテナイメージへのアクセスの設定」を参照してください。
Ensuring Codespaces access to your package
By default, a codespace can seamlessly access certain packages in the GitHub Container Registry, such as those published in the same repository with the Inherit access option selected. For more information on which access is automatically configured, see "Accessing images stored in GitHub Container Registry."
Otherwise, to ensure that a codespace has access to your package, you must grant access to the repository where the codespace is being launched.
指定するリポジトリは、パッケージのソースコードが保存されているリポジトリである必要はありません。 You can give codespaces in multiple repositories access to a package.
Once you've selected the package you're interested in sharing with codespaces in a repository, you can grant that repo access.
-
In the right sidebar, click Package settings.

-
Under "Manage Codespaces access", click Add repository.

-
Search for the repository you want to add.

-
Repeat for any additional repositories you would like to allow access.
-
If the codespaces for a repository no longer need access to an image, you can remove access.

個人アカウントにコンテナイメージの可視性を設定する
パッケージを最初に公開する際のデフォルトの可視性はプライベートで、パッケージを表示できるのは公開したユーザだけです。 アクセス設定を変更することで、プライベートやパブリックなコンテナイメージのアクセス権限を変更できます。
パブリックパッケージは認証なしに匿名でアクセスできます。 いったんパッケージをパブリックに設定すると、そのパッケージをプライベートに戻すことはできません。
-
GitHubで、ユーザアカウントのメインページにアクセスしてください。
-
In the top right corner of GitHub.com, click your profile photo, then click Your profile.

-
プロフィールページで、右上のPackages(パッケージ)をクリックしてください。

-
[Danger Zone] の下で、可視性の設定を選択します。
- あらゆる人がコンテナイメージを表示できるようにするには、[Make public] をクリックします。
警告: いったんパッケージをパブリックにすると、プライベートに戻すことはできません。
- 指定したユーザだけがコンテナイメージを表示できるようにするには、[**Make private**] をクリックします。  - あらゆる人がコンテナイメージを表示できるようにするには、[Make public] をクリックします。
Organizationメンバーのためのコンテナ作成の可視性
デフォルトでは、Organizationのメンバーが公開できるコンテナの可視性を選択できます。
- In the top right corner of GitHub.com, click your profile photo, then click Your organizations.

- Organizationの隣のSettings(設定)をクリックしてください。

- 左側にある [Packages] をクリックします。
- "Container creation(コンテナ作成)"の下で、パブリック、プライベート、インターナルのコンテナイメージの作成を有効化するかを選択してください。
- Organization のメンバーがパブリックのコンテナイメージを作成できるようにするには、[Public] をクリックします。
- Organization のメンバーに、Organization のメンバーのみが表示できるプライベートコンテナイメージの作成ができるようにするには、[Private] をクリックします。 プライベートコンテナイメージの可視性については、さらに細かくカスタマイズできます。
- To enable organization members to create internal container images that are visible to all organization members, click Internal. If the organization belongs to an enterprise, the container images will be visible to all enterprise members.

Organization にコンテナイメージの可視性を設定する
パッケージを最初に公開する際のデフォルトの可視性はプライベートで、パッケージを表示できるのは公開したユーザだけです。 アクセス設定を使用して、コンテナイメージに対するさまざまなアクセスロールをユーザや Team に付与できます。
パブリックパッケージは認証なしに匿名でアクセスできます。 いったんパッケージをパブリックに設定すると、そのパッケージをプライベートに戻すことはできません。
-
GitHubで、Organizationのメインページにアクセスしてください。
-
Organization名の下で、Packages(パッケージ)をクリックしてください。

-
[Danger Zone] の下で、可視性の設定を選択します。
- あらゆる人がコンテナイメージを表示できるようにするには、[Make public] をクリックします。
警告: いったんパッケージをパブリックにすると、プライベートに戻すことはできません。
- 指定したユーザだけがコンテナイメージを表示できるようにするには、[**Make private**] をクリックします。  - あらゆる人がコンテナイメージを表示できるようにするには、[Make public] をクリックします。

