Skip to main content

Configuring a package's access control and visibility

Choose who has read, write, or admin access to your container image and the visibility of your container images on GitHub.

GitHub Packages は、GitHub Free、GitHub Pro、Organization の GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 以降、GitHub AE で利用できます。
GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、レガシーのリポジトリごとのプランを使っているアカウントは、リポジトリごとに課金される Container registry にはアクセスできません。 詳細については、「GitHub's products」を参照してください。

Packages with granular permissions are scoped to a personal user or organization account. You can change the access control and visibility of a package separately from the repository that it is connected (or linked) to.

Currently, you can only use granular permissions with the Container registry and npm registry. Granular permissions are not supported in our other package registries, such as the RubyGems registry.

For more information about permissions for repository-scoped packages, packages-related scopes for PATs, or managing permissions for your actions workflows, see "About permissions for GitHub Packages."

Visibility and access permissions for container images

コンテナイメージへの管理権限を持っているなら、そのコンテナイメージへのアクセス権限をプライベートもしくはパブリックに設定できます。 パブリックイメージは匿名でアクセスでき、認証や CLI 経由でサインインすることなくプルできます。

あなたが管理者であれば、Organization レベルおよびリポジトリレベルに設定した権限とは別に、コンテナイメージに対してアクセス権限を付与することもできます。

個人アカウントによって公開および所有されているコンテナー イメージの場合、任意のユーザーにアクセス ロールを付与できます。 Organization が所有し公開しているコンテナイメージには、Organization 内の任意の Team にアクセスロールを付与できます。

アクセス許可アクセス権の内容
Readパッケージをダウンロードできます。
パッケージのメタデータを読み取ることができます。
Writeこのパッケージをアップロードおよびダウンロードできます。
パッケージ メタデータの読み取りと書き込みを行うことができます。
[Admin]このパッケージのアップロード、ダウンロード、削除、管理ができます。
パッケージ メタデータの読み取りと書き込みを行うことができます。
パッケージのアクセス許可を付与できます。

Configuring access to container images for your personal account

If you have admin permissions to a container image that's owned by a personal account, you can assign read, write, or admin roles to other users. For more information about these permission roles, see "Visibility and access permissions for container images."

If your package is private or internal and owned by an organization, then you can only give access to other organization members or teams.

  1. パッケージを検索して選択してください。
  2. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  3. On the package settings page, click Invite teams or people and enter the name, username, or email of the person you want to give access. Teams cannot be given access to a container image owned by a personal account. Container access invite button
  4. Next to the username or team name, use the "Role" drop-down menu to select a desired permission level. Container access options

The selected users will automatically be given access and don't need to accept an invitation first.

Configuring access to container images for an organization

If you have admin permissions to an organization-owned container image, you can assign read, write, or admin roles to other users and teams. For more information about these permission roles, see "Visibility and access permissions for container images."

If your package is private or internal and owned by an organization, then you can only give access to other organization members or teams.

  1. GitHubで、Organizationのメインページにアクセスしてください。
  2. Organization 名の下で、 [パッケージ] をクリックします。 Organization ランディング ページの [パッケージ] タブ
  3. パッケージを検索して選択してください。
  4. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  5. On the package settings page, click Invite teams or people and enter the name, username, or email of the person you want to give access. You can also enter a team name from the organization to give all team members access. Container access invite button
  6. Next to the username or team name, use the "Role" drop-down menu to select a desired permission level. Container access options

The selected users or teams will automatically be given access and don't need to accept an invitation first.

Inheriting access for a container image from a repository

To simplify package management through GitHub Actions workflows, you can enable a container image to inherit the access permissions of a repository by default.

If you inherit the access permissions of the repository where your package's workflows are stored, then you can adjust access to your package through the repository's permissions.

Once a repository is synced, you can't access the package's granular access settings. To customize the package's permissions through the granular package access settings, you must remove the synced repository first.

  1. GitHubで、Organizationのメインページにアクセスしてください。
  2. Organization 名の下で、 [パッケージ] をクリックします。 Organization ランディング ページの [パッケージ] タブ
  3. パッケージを検索して選択してください。
  4. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  5. Under "Repository source", select Inherit access from repository (recommended). Inherit repo access checkbox

Ensuring workflow access to your package

To ensure that a GitHub Actions workflow has access to your package, you must give explicit access to the repository where the workflow is stored.

The specified repository does not need to be the repository where the source code for the package is kept. You can give multiple repositories workflow access to a package.

Note: Syncing your container image with a repository through the Actions access menu option is different than connecting your container to a repository. For more information about linking a repository to your container, see "Connecting a repository to a package."

GitHub Actions access for user-account-owned container images

  1. パッケージを検索して選択してください。
  2. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  3. In the left sidebar, click Actions access. "Actions access" option in left menu
  4. To ensure your workflow has access to your container package, you must add the repository where the workflow is stored. Click Add repository and search for the repository you want to add. "Add repository" button
  5. Using the "role" drop-down menu, select the default access level that you'd like the repository to have to your container image. Permission access levels to give to repositories

To further customize access to your container image, see "Configuring access to container images for your personal account."

GitHub Actions access for organization-owned container images

  1. GitHubで、Organizationのメインページにアクセスしてください。
  2. Organization 名の下で、 [パッケージ] をクリックします。 Organization ランディング ページの [パッケージ] タブ
  3. パッケージを検索して選択してください。
  4. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン
  5. In the left sidebar, click Actions access. "Actions access" option in left menu
  6. Click Add repository and search for the repository you want to add. "Add repository" button
  7. Using the "role" drop-down menu, select the default access level that you'd like repository members to have to your container image. Outside collaborators will not be included. Permission access levels to give to repositories

To further customize access to your container image, see "Configuring access to container images for an organization."

Ensuring GitHub Codespaces access to your package

By default, a codespace can seamlessly access certain packages in the Container registry and npm 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 "Allowing your codespace to access a private image 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.

The specified repository does not need to be the repository where the source code for the package is kept. 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.

  1. In the right sidebar, click Package settings.

    "Package settings" option in right menu

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

    "Add repository" button

  3. Search for the repository you want to add.

    "Add repository" button

  4. Repeat for any additional repositories you would like to allow access.

  5. If the codespaces for a repository no longer need access to an image, you can remove access.

    "Remove repository" button

Configuring visibility of container images for your personal account

When you first publish a package, the default visibility is private and only you can see the package. You can modify a private or public container image's access by changing the access settings.

A public package can be accessed anonymously without authentication. Once you make your package public, you cannot make your package private again.

  1. パッケージを検索して選択してください。

  2. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン

  3. Under "Danger Zone", choose a visibility setting:

    • To make the container image visible to anyone, click Make public.

      Warning: Once you make a package public, you cannot make it private again.

    • To make the container image visible to a custom selection of people, click Make private. Container visibility options

Container creation visibility for organization members

You can choose the visibility of containers that organization members can publish by default.

  1. GitHub.com の右上隅にあるプロファイル写真をクリックし、 [自分の Organization] をクリックします。 プロファイル メニューの組織
  2. 組織の隣の [設定] をクリックします。 [設定] ボタン
  3. On the left, click Packages.
  4. Under "Container creation", choose whether you want to enable the creation of public, private, or internal container images.
    • To enable organization members to create public container images, click Public.
    • To enable organization members to create private container images that are only visible to other organization members, click Private. You can further customize the visibility of private container images.
    • 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. Visibility options for container images published by organization members

Configuring visibility of container images for an organization

When you first publish a package, the default visibility is private and only you can see the package. You can grant users or teams different access roles for your container image through the access settings.

A public package can be accessed anonymously without authentication. Once you make your package public, you cannot make your package private again.

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. Organization 名の下で、 [パッケージ] をクリックします。 Organization ランディング ページの [パッケージ] タブ

  3. パッケージを検索して選択してください。

  4. パッケージのランディング ページの右上にある [パッケージ設定] をクリックします。 [パッケージ設定] ボタン

  5. Under "Danger Zone", choose a visibility setting:

    • To make the container image visible to anyone, click Make public.

      Warning: Once you make a package public, you cannot make it private again.

    • To make the container image visible to a custom selection of people, click Make private. Container visibility options