Skip to main content

Configurando o controle de acesso e visibilidade de um pacote

Escolha quem tem acesso de leitura, gravação ou administrador ao seu pacote, bem como a visibilidade dos seus pacotes em GitHub.

Quem pode usar esse recurso?

O GitHub Packages está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub Enterprise Server 3.0 ou superior.
O GitHub Packages não está disponível para repositórios privados de contas que utilizam planos antigos por-repositório. Além disso, as contas que usam planos herdados por repositório não podem acessar registros que oferecem suporte a permissões granulares, pois essas contas são cobradas por repositório. Enterprise Managed Users não têm alocação de armazenamento individual para publicar pacotes no namespace da conta, mas podem publicar no namespace de uma organização. Para obter informações adicionais sobre Enterprise Managed Users, confira “Sobre os Enterprise Managed Users”. Para obter a lista de registros que oferecem suporte a permissões granulares, confira “Sobre permissões para o GitHub Packages”. Para mais informações, confira "Planos do GitHub".

Um pacote pode herdar as permissões de visibilidade e de acesso de um repositório ou, para registros que dão suporte a permissões granulares, você pode definir a visibilidade e as permissões do pacote separadamente de um repositório.

Para ver a lista de registros que dão suporte a permissões granulares e para obter mais informações sobre permissões para pacotes, escopos relacionados a pacotes para PATs ou gerenciamento de permissões para fluxos de trabalho do GitHub Actions, confira "Sobre permissões para o GitHub Packages".

Sobre a herança de permissões de acesso

Em registros que dão suporte a permissões granulares, os pacotes têm como escopo uma conta pessoal ou de organização. Nesses registros, você pode publicar um pacote sem vinculá-lo a um repositório e determinar quem pode acessar o pacote definindo permissões de acesso e visibilidade nas configurações do pacote.

Por padrão, se você publicar um pacote vinculado a um repositório, o pacote herdará automaticamente as permissões de acesso (mas não a visibilidade) do repositório vinculado. Por exemplo, um usuário que tem acesso de leitura no repositório vinculado também terá acesso de leitura no pacote. Quando um pacote herda automaticamente as permissões de acesso, os fluxos de trabalho do GitHub Actions no repositório vinculado também obtêm automaticamente acesso ao pacote.

Um pacote só herda as permissões de acesso de um repositório vinculado automaticamente se você vincula o repositório ao pacote antes de publicar o pacote, como adicionando o rótulo org.opencontainers.image.source do Docker a uma imagem de contêiner. Se você conectar um pacote publicado a um repositório na página de configurações do pacote, o pacote manterá as permissões de acesso existentes e não herdará as permissões de acesso do repositório, a menos que você selecione explicitamente essa opção. Além disso, as organizações podem desabilitar a herança automática de permissões de acesso para todos os novos pacotes que têm como escopo a respectiva organização. Para obter mais informações, confira "Como desabilitar a herança automática das permissões de acesso em uma organização" abaixo.

Quando um pacote herda as permissões de um repositório, para permitir ou remover o acesso ao pacote, você precisa definir as configurações de permissões do repositório vinculado. Caso você queira definir as configurações de acesso de um pacote separadamente do repositório vinculado ao pacote, remova as permissões herdadas do pacote. Para obter mais informações, confira "Como selecionar se um pacote herda as permissões de um repositório" abaixo.

Se você publicar um pacote em um registro que só dê suporte a permissões no escopo do repositório, o pacote sempre será vinculado a um repositório e sempre herdará as permissões do repositório vinculado.

Sobre a configuração das permissões de acesso e visibilidade 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 obter mais informações, 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 obter mais informações, 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.
AdministradorPode 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á atualmente em versão prévia pública e sujeita a alterações.

Configurar acesso a pacotes para sua conta pessoal

Se tiver permissões de administrador para um pacote que pertence a uma conta pessoal, você poderá atribuir funções de leitura, gravação ou administração a outros usuários. Para obter mais informações sobre essas funções de permissão, consulte "Sobre a herança de permissões de acesso".

Se o seu pacote for privado ou interno e tiver escopo definido para uma organização, você somente poderá dar acesso a outros membros ou equipes da organização.

  1. Procure e clique no nome do pacote que deseja gerenciar.

  2. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  3. Em "Gerenciar acesso" ou "Acesso herdado", clique em Convidar equipes ou pessoas e insira o nome, o nome de usuário ou o email da pessoa à qual deseja permitir acesso. As equipes não podem receber acesso a um pacote que tem como escopo uma conta pessoal.

  4. Ao lado do nome de usuário ou do nome de equipe, use o menu suspenso Função para selecionar um nível de permissão desejado.

Os usuários selecionados receberão acesso automaticamente e não precisarão aceitar um convite primeiro.

Configurar o acesso a pacotes para uma organização

Se você tiver permissões de administrador para um pacote com escopo definido para uma organização, poderá atribuir funções de leitura, gravação ou administrador para outros usuários e equipes. Para obter mais informações sobre essas funções de permissão, consulte "Sobre a herança de permissões de acesso".

Se o seu pacote for privado ou interno e tiver escopo definido para uma organização, você somente poderá dar acesso a outros membros ou equipes da organização.

  1. Em GitHub, acesse a página principal da sua organização.

  2. No nome da sua organização, clique na guia Pacotes.

    Captura de tela da página de perfil de @octo-org. A guia "Pacotes " é realçada com um contorno laranja.

  3. Procure e clique no nome do pacote que deseja gerenciar.

  4. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  5. Em "Gerenciar acesso" ou "Acesso herdado", clique em Convidar equipes ou pessoas e insira o nome, o nome de usuário ou o email da pessoa à qual deseja permitir acesso. Você também pode inserir um nome de equipe da organização para dar acesso a todos os membros da equipe.

  6. Ao lado do nome de usuário ou do nome de equipe, use o menu suspenso Função para selecionar um nível de permissão desejado.

Os usuários selecionados receberão acesso automaticamente e não precisarão aceitar um convite primeiro.

Como selecionar se um pacote herda as permissões de um repositório

Por padrão, se você publicar um pacote vinculado a um repositório, o pacote herda as permissões de acesso do repositório vinculado. Recomendamos que você permita que os pacotes herdem as permissões de um repositório, pois isso simplifica o processo de gerenciamento de acesso a um pacote.

Quando um pacote herda as permissões de um repositório, para permitir ou remover o acesso ao pacote, você precisa configurar as permissões do repositório vinculado.

Caso você deseje definir as configurações de acesso de um pacote em um nível granular, separadamente do repositório vinculado, remova as permissões herdadas do pacote.

Observação: se você alterar como um pacote obtém as permissões de acesso, todas as permissões existentes para o pacote serão substituídas.

Como selecionar a configuração de herança para os pacotes que têm como escopo a sua conta pessoal

  1. No GitHub, acesse a página principal da sua conta pessoal.

  2. No canto superior direito do GitHub, selecione sua foto de perfil e selecione Seu perfil.

    Captura de tela do menu suspenso na imagem de perfil de @octocat. "Seu perfil" está contornado em laranja escuro.

  3. Na página do perfil, no cabeçalho, clique na guia Pacotes .

  4. Procure e clique no nome do pacote que deseja gerenciar.

  5. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  6. Para escolher se um pacote herda as permissões de acesso do repositório vinculado, em "Gerenciar acesso" ou "Acesso herdado", marque ou desmarque Herdar acesso do repositório (recomendado) .

    Observação: o nome desta seção é alterado dependendo se o pacote já herdar as permissões de um repositório.

Como selecionar a configuração de herança para os pacotes que têm como escopo uma organização

Dica: se você for o proprietário de uma organização, poderá impedir que todos os novos pacotes que têm como escopo a sua organização herdem automaticamente as permissões de um repositório vinculado. Para obter mais informações, confira "Como desabilitar a herança automática das permissões de acesso em uma organização" abaixo.

  1. Em GitHub, acesse a página principal da sua organização.

  2. No nome da sua organização, clique na guia Pacotes.

    Captura de tela da página de perfil de @octo-org. A guia "Pacotes " é realçada com um contorno laranja.

  3. Procure e clique no nome do pacote que deseja gerenciar.

  4. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  5. Para escolher se um pacote herda as permissões de acesso do repositório vinculado, em "Gerenciar acesso" ou "Acesso herdado", marque ou desmarque Herdar acesso do repositório (recomendado) .

    Observação: o nome desta seção é alterado dependendo se o pacote já herdar as permissões de um repositório.

Como desabilitar a herança automática das permissões de acesso em uma organização

Por padrão, se você publicar um pacote vinculado a um repositório, o pacote herdará automaticamente as permissões de acesso do repositório vinculado. Como proprietário da organização, você pode desabilitar a herança automática para todos os pacotes que têm como escopo a sua organização.

Se você desabilitar a herança automática das permissões de acesso, os novos pacotes que têm como escopo a sua organização não herdarão automaticamente as permissões de um repositório vinculado. No entanto, qualquer pessoa com permissões de administrador em um pacote na sua organização poderá habilitar ou desabilitar a herança de permissões para esse pacote.

  1. No canto superior direito de GitHub, selecione sua foto de perfil e selecione Suas organizações.
  2. Ao lado da organização, clique em Configurações.
  3. Na barra lateral, na seção "Código, planejamento e automação", clique em Pacotes.
  4. Em "Configurações de Pacote Padrão", desmarque Herdar acesso do repositório de origem.
  5. Clique em Salvar.

Garantir o acesso ao fluxo de trabalho para o seu pacote

Para pacotes com escopo definido para uma conta pessoal ou uma organização, para garantir que um fluxo de trabalho do GitHub Actions tenha acesso ao seu pacote, você deverá conceder acesso explícito ao repositório em que o fluxo de trabalho é armazenado.

O repositório especificado não precisa ser o repositório onde o código-fonte do pacote é mantido. Você pode conceder acesso ao fluxo de trabalho de vários repositórios para um pacote.

Se você publicar um pacote vinculado a um repositório, os fluxos de trabalho do GitHub Actions no repositório vinculado obterão automaticamente acesso ao pacote, a menos que a sua organização tenha desabilitado a herança automática das permissões de acesso. Para obter mais informações, confira "Sobre a herança de permissões de acesso" acima.

Observações:

  • A sincronização do pacote com o usando o botão Adicionar Repositório em "Gerenciar acesso a Ações" nas configurações do pacote de um repositório é diferente da conexão do pacote com um repositório. Para obter mais informações sobre como vincular um repositório ao seu pacote, confira "Conectar um repositório a um pacote".
  • Você pode optar por limitar as permissões para trabalhos de fluxo de trabalho usando a chave packages e o escopo permissions. Para obter mais informações, confira "Controlando permissões para GITHUB_TOKEN".
  • Se você conceder a um repositório público acesso a pacotes privados, forks do repositório poderão acessar os pacotes privados.

Acesso do GitHub Actions para pacotes com escopo definido para contas pessoais

  1. Procure e clique no nome do pacote que deseja gerenciar.

  2. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  3. Para garantir que seu fluxo de trabalho tenha acesso ao seu pacote, você deve adicionar o repositório em que o fluxo de trabalho é armazenado. Em "Gerenciar acesso a Ações", clique em Adicionar repositório e pesquise o repositório que deseja adicionar.

    Captura de tela da seção "Gerenciar acesso a Ações" da página de configurações do pacote. O botão "Adicionar repositório" é realçado com um contorno laranja.

  4. Use o menu suspenso Função, para selecionar o nível de acesso padrão que deseja conceder ao repositório no pacote.

Para personalizar ainda mais o acesso ao seu pacote, confira "Configurar o acesso a pacotes para sua conta pessoal".

Acesso do GitHub Actions para pacotes com escopo definido para organizações

  1. Em GitHub, acesse a página principal da sua organização.

  2. No nome da sua organização, clique na guia Pacotes.

    Captura de tela da página de perfil de @octo-org. A guia "Pacotes " é realçada com um contorno laranja.

  3. Procure e clique no nome do pacote que deseja gerenciar.

  4. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  5. Em "Gerenciar acesso a Ações", clique em Adicionar repositório e pesquise o repositório que deseja adicionar.

    Captura de tela da seção "Gerenciar acesso a Ações" da página de configurações do pacote. O botão "Adicionar repositório" é realçado com um contorno laranja.

  6. Use o menu suspenso Função, para selecionar o nível de acesso padrão que deseja conceder ao repositório no pacote.

Para personalizar ainda mais o acesso ao seu pacote, confira "Configurar o acesso a pacotes para uma organização".

Garantir acesso do GitHub Codespaces ao seu pacote

Por padrão, um codespace pode acessar diretamente determinados pacotes em registros que oferecem suporte a permissões granulares, como pacotes publicados no mesmo repositório com a opção Herdar acesso selecionada. Para ver a lista de registros do GitHub Packages que dão suporte a permissões granulares e acesso contínuo ao GitHub Codespaces, confira "Sobre permissões para o GitHub Packages".

Caso contrário, para garantir que um código tenha acesso ao seu pacote, você deverá conceder acesso ao repositório onde o codespace está sendo iniciado.

O repositório especificado não precisa ser o repositório onde o código-fonte do pacote é mantido. Você pode dar acesso a codespaces em vários repositórios a um pacote.

Depois de selecionar o pacote que você está interessado em compartilhar com codespaces de um repositório, você poderá conceder esse acesso ao repositório.

  1. Procure e clique no nome do pacote que deseja gerenciar.

  2. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  3. Em "Gerenciar acesso ao Codespaces", clique em Adicionar repositório.

    Captura de tela da seção "Gerenciar o acesso ao Codespaces" da página de configurações do pacote. O botão "Adicionar repositório" é realçado com um contorno laranja.

  4. Pesquise o repositório que você deseja adicionar.

  5. Repita o procedimento para todos os repositórios adicionais que você gostaria de permitir o acesso.

  6. Se os codespaces de um repositório não precisarem mais acessar um pacote, você poderá remover o acesso. Clique em .

    Captura de tela da seção "Gerenciar o acesso ao Codespaces" da página de configurações do pacote. Um ícone de lixeira é realçado com um contorno laranja.

Configurar a visibilidade de pacotes para sua conta pessoal

Ao publicar um pacote com escopo definido para uma conta pessoal, a visibilidade padrão é privada e só você poderá ver o pacote. Você pode modificar o acesso de um pacote privado ou público alterando as configurações de acesso.

  1. Procure e clique no nome do pacote que deseja gerenciar.

  2. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  3. Na parte inferior da página, em "Zona de Perigo", clique em Alterar visibilidade.

  4. Selecione uma configuração de visibilidade:

    • Para tornar o pacote visível para qualquer pessoa, selecione Público.

      Aviso: depois de tornar um pacote público, você não poderá torná-lo privado novamente.

    • Para tornar o pacote visível para uma seleção personalizada de pessoas, selecione Particular.

  5. Para confirmar, digite o nome do pacote e clique em Entendo as consequências. Alterar visibilidade do pacote.

Visibilidade da criação de pacote para os membros da organização

Para Registros que dão suporte a permissões granulares, você pode escolher a visibilidade dos pacotes que os membros da organização podem publicar por padrão. Para ver uma lista desses registros, confira "Sobre permissões para o GitHub Packages".

  1. No canto superior direito de GitHub, selecione sua foto de perfil e selecione Suas organizações.
  2. Ao lado da organização, clique em Configurações.
  3. À esquerda, clique em Pacotes.
  4. Em "Criação de Pacote", escolha se deseja habilitar a criação de pacotes públicos, privados ou internos.
    • Para permitir que os membros da organização criem pacotes públicos, clique em Público.
    • Para permitir que os membros da organização criem pacotes privados visíveis apenas para outros membros da organização, clique em Privado. Você pode personalizar ainda mais a visibilidade de pacotes privados.
    • Para permitir que os membros da organização criem pacotes internos que são visíveis para todos os membros da organização, clique em Interno. Se a organização pertencer a uma empresa, os pacotes ficarão visíveis para todos os membros da empresa.

Configurar a visibilidade de pacotes para uma organização

Ao publicar um pacote, a visibilidade-padrão é privada e só você poderá ver o pacote. Você pode conceder a usuários ou equipes diferentes funções de acesso para seu pacote por meio das configurações de acesso. Uma vez que você torna público o seu pacote, mas você não poderá tornar o seu pacote privado novamente.

  1. Em GitHub, acesse a página principal da sua organização.

  2. No nome da sua organização, clique na guia Pacotes.

    Captura de tela da página de perfil de @octo-org. A guia "Pacotes " é realçada com um contorno laranja.

  3. Procure e clique no nome do pacote que deseja gerenciar.

  4. Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.

    Captura de tela da página de aterrissagem de um pacote. No canto inferior direito, a opção "Configurações do pacote" é realçada com um contorno laranja.

  5. Na parte inferior da página, em "Zona de Perigo", clique em Alterar visibilidade e escolha uma configuração de visibilidade:

    • Para tornar o pacote visível para qualquer pessoa, clique em Público.

      Aviso: depois de tornar um pacote público, você não poderá torná-lo privado novamente.

    • Para tornar o pacote visível para uma seleção personalizada de pessoas da sua organização, clique em Particular.

    • Para tornar o pacote visível para todos os membros da organização, clique em Interno. Se a organização pertencer a uma empresa, os pacotes ficarão visíveis para todos os membros da empresa.