Skip to main content

Sobre permissões para o GitHub Packages

Saiba como gerenciar as permissões dos seus pacotes.

As permissões para pacotes podem ter como escopo um usuário, uma organização ou um repositório.

Permissões granulares para pacotes destinados a usuários/organizações

Pacotes com permissões granulares são atribuídos a uma conta pessoal ou organização. Você pode alterar o controle de acesso e a visibilidade do pacote separadamente de um repositório que está conectado (ou vinculado) a um pacote.

GitHub Packages Os registros a seguir dão suporte a permissões granulares.

  • Container registry
  • registro npm
  • Registro do NuGet
  • Registro RubyGems

Permissões para pacotes com escopo do repositório

Um pacote com escopo de repositório herda as permissões e a visibilidade do repositório no qual ele foi publicado. Encontre um pacote com escopo para um repositório acessando a página principal do repositório e clicando no link Pacotes à direita da página. Para obter mais informações, consulte Conectar um repositório a um pacote.

Os registros a seguir GitHub Packagesdão suporte apenas a permissões com escopo de repositório.

  • Registro do Apache Maven
  • Registro Gradle

Para outros registros, você pode optar por permitir que os pacotes sejam definidos como escopo para um usuário ou uma organização ou vinculados a um repositório.

Visibilidade e permissões de acesso para pacotes

Se um pacote pertencer a um registro que dá suporte a permissões granulares, qualquer pessoa com permissões de administrador para o pacote poderá defini-lo como privado ou público e conceder permissões de acesso separadas das permissões definidas nos níveis de organização e repositório. Para ver a lista dos registros que dão suporte a permissões granulares, confira Sobre permissões para o GitHub Packages.

Na maioria dos registros, para efetuar pull de um pacote, você deve autenticá-lo com um personal access token ou GITHUB_TOKEN, independentemente de o pacote ser público ou privado. No entanto, no Container registry, os pacotes públicos permitem acesso anônimo e podem ser extraídos sem autenticação ou logon por meio da CLI.

Observação

Se você publicar um pacote vinculado a um repositório, o pacote herdará as permissões do repositório vinculado por padrão. Para acessar as configurações de permissões granulares do pacote, você precisa remover as permissões herdadas do pacote. Se você for o proprietário de uma organização, poderá desabilitar a herança automática de permissões para todos os novos pacotes que têm como escopo a sua organização. Para saber mais, confira Configurando o controle de acesso e visibilidade de um pacote e Configurando o controle de acesso e visibilidade de um pacote.

Ao publicar um pacote, você obtém automaticamente permissões de administrador para ele. Se você publicar um pacote em uma organização, qualquer pessoa com a função owner na organização também obterá permissões de administrador para o pacote.

Para pacotes com escopo definido para uma conta pessoal, você pode dar uma função de acesso a qualquer pessoa. Para pacotes com escopo definido para uma organização, você pode dar uma função de acesso a qualquer pessoa ou equipe na organização.

Se você estiver usando um fluxo de trabalho do GitHub Actions para gerenciar seus pacotes, poderá conceder uma função de acesso ao repositório no qual o fluxo de trabalho está armazenado no usando o botão Adicionar Repositório em "Gerenciar acesso a Ações" nas configurações do pacote. Para saber mais, confira Configurando o controle de acesso e visibilidade de um pacote.

PermissãoDescrição do acesso
LerPode fazer o download do pacote.
Pode ler metadados do pacote.
GravarPode fazer upload e download deste pacote.
Pode ler e gravar metadados do pacote.
AdminPode fazer upload, download, excluir e gerenciar este pacote.
Pode ler e gravar metadados do pacote.
Pode conceder permissões de pacote.

Observação

A capacidade dos fluxos de trabalho do GitHub Actions de excluir e restaurar pacotes usando a API REST está em prévia pública e está sujeita a alterações.

Para saber mais, confira Configurando o controle de acesso e visibilidade de um pacote.

Sobre escopos e permissões para registros de pacotes

Observação

O GitHub Packages dá suporte apenas à autenticação que usa um personal access token (classic). Para saber mais, confira Gerenciar seus tokens de acesso pessoal.

Para usar ou gerenciar um pacote hospedado por um registro de pacote, você deve usar um personal access token (classic) com o escopo apropriado e sua conta pessoal deve ter permissões apropriadas.

Por exemplo:

  • Para baixar e instalar pacotes de um repositório, seu personal access token (classic) deve ter o escopo read:packages, e sua conta de usuário deve ter permissão de leitura.
  • Para excluir um pacote, seu personal access token (classic) deve ter pelo menos o escopo delete:packages e read:packages. Para saber mais, confira Excluir e restaurar um pacote.
ScopeDescriçãoPermissão necessária
read:packagesBaixar e instalar pacotes de GitHub Packagesleitura
write:packagesCarregar e publicar pacotes para GitHub Packagesgravação
delete:packagesExcluir pacotes de GitHub Packagesadministrador

Observação

A capacidade dos fluxos de trabalho do GitHub Actions de excluir e restaurar pacotes usando a API REST está em prévia pública e está sujeita a alterações.

Ao criar um fluxo de trabalho GitHub Actions, você pode usar o GITHUB_TOKEN para publicar, instalar, excluir e restaurar pacotes no GitHub Packages sem precisar armazenar e gerenciar um personal access token.

Para obter mais informações, consulte:

Sobre transferências de repositório

Você pode transferir um repositório para outra conta pessoal ou organização. Para saber mais, confira Transferir um repositório.

Quando você transfere um repositório, GitHub pode transferir os pacotes associados ao repositório, dependendo do registro ao qual os pacotes pertencem.

  • Para Registros que dão suporte a permissões granulares, os pacotes têm como escopo uma conta pessoal ou uma organização, e a conta associada ao pacote não é alterada quando você transfere um repositório. Se você tiver vinculado um pacote a um repositório, o link será removido quando você transferir o repositório para outro usuário. Todos os codespaces ou GitHub Actions fluxos de trabalho associados ao repositório perderão acesso ao pacote. Se o pacote herdou as permissões de acesso do repositório vinculado, os usuários perderão o acesso ao pacote. Para ver a lista desses registros, confira Permissões granulares para pacotes com escopo de usuário/organização acima.
  • Para registros que dão suporte apenas a permissões com escopo de repositório, os pacotes são publicados diretamente em repositórios e GitHub transferem os pacotes associados a um repositório como parte da transferência do repositório. Todo o uso faturável associado aos pacotes de software será cobrado do novo proprietário do repositório. Se o proprietário do repositório anterior for removido como colaborador no repositório, talvez ele não consiga mais acessar os pacotes associados ao repositório. Para obter a lista desses registros, confira Permissões para pacotes com escopo de repositório acima.

Mantendo o acesso a pacotes nos GitHub Actions fluxos de trabalho

Para garantir que seus fluxos de trabalho mantenham o acesso aos pacotes, verifique se você está usando o token de acesso certo no fluxo de trabalho e se você habilitou GitHub Actions o acesso ao pacote.

Para obter mais informações conceituais sobre GitHub Actions ou exemplos de como usar pacotes em fluxos de trabalho, consulte Gerenciar pacotes do GitHub usando fluxos de trabalho do GitHub Actions.

Tokens de acesso

Observação

A capacidade dos fluxos de trabalho do GitHub Actions de excluir e restaurar pacotes usando a API REST está em prévia pública e está sujeita a alterações.

  • Para publicar, instalar, excluir e restaurar pacotes associados ao repositório de fluxo de trabalho, use o GITHUB_TOKEN.
  • Para instalar pacotes associados a outros repositórios privados que GITHUB_TOKEN não podem ser acessados, use um personal access token (classic)

Para obter mais informações sobre GITHUB_TOKEN usado em fluxos de trabalho de GitHub Actions, consulte Usar GITHUB_TOKEN para autenticação em fluxos de trabalho.

GitHub Actions acesso a pacotes com permissões granulares

Para garantir que seus fluxos de trabalho tenham acesso a pacotes armazenados em registros que dão suporte a permissões granulares, você deve conceder GitHub Actions acesso aos repositórios em que o fluxo de trabalho é executado. Você pode encontrar essa configuração na página de configurações do seu pacote. Para saber mais, confira Configurando o controle de acesso e visibilidade de um pacote.