Exclusão de pacote e suporte de restauração em GitHub
Em GitHub se você tiver o acesso necessário, você poderá excluir:
- um pacote privado inteiro
- um pacote público inteiro, se não houver mais de 5.000 downloads de qualquer versão do pacote
- uma versão específica de um pacote privado
- uma versão específica de um pacote público, se a versão do pacote não tiver mais de 5.000 downloads
Note
- Você não pode excluir um pacote público se uma versão do pacote tiver mais de 5,000 downloads. Nesse cenário, entre em contato conosco por meio do Portal de Suporte do GitHub para obter mais assistência.
- Ao excluir pacotes públicos, esteja ciente de que você pode quebrar projetos que dependem do seu pacote.
Em GitHub, você também pode restaurar um pacote inteiro ou uma versão do pacote, se:
- Você restaurar o pacote dentro de 30 dias após a exclusão.
- O mesmo namespace do pacote ainda estiver disponível e não for usado para um novo pacote.
Suporte de API de pacotes
O GitHub Packages dá suporte apenas à autenticação que usa um personal access token (classic). Para obter mais informações, confira "Gerenciar seus tokens de acesso pessoal".
Você pode usar a API REST para gerenciar seus pacotes. Para obter mais informações, confira "Pontos de extremidade de API REST para pacotes".
Observação: a capacidade dos fluxos de trabalho do GitHub Actions de excluir e restaurar pacotes usando a API REST está atualmente em beta e sujeita a alterações.
Com registros compatíveis com permissões granulares, você pode usar um GITHUB_TOKEN
em um fluxo de trabalho do GitHub Actions para excluir ou restaurar pacotes usando a API REST. O token precisam ter permissão admin
para o pacote. Se o fluxo de trabalho publicar um pacote, a função admin
será concedida por padrão ao repositório em que o fluxo de trabalho é armazenado. Para pacotes existentes não publicados por um fluxo de trabalho, você precisa conceder ao repositório a função admin
para poder usar um fluxo de trabalho do GitHub Actions para excluir ou restaurar pacotes usando a API REST. Para obter mais informações, confira "Configurando o controle de acesso e visibilidade de um pacote".
Para certos registros, você pode usar GraphQL para excluir uma versão de um pacote privado.
Você não pode usar a API do GraphQL GitHub Packages com registros que dão suporte a permissões granulares. Para os registros que dão suporte apenas a permissões no escopo do repositório e podem ser usados com a API do GraphQL, confira "Sobre permissões para o GitHub Packages".
Permissões necessárias para excluir ou restaurar um pacote
Com registros que oferecem suporte a permissões granulares, você pode optar por permitir que os pacotes tenham como escopo um usuário ou uma organização ou sejam vinculados a um repositório.
Para excluir um pacote com permissões granulares separadas de um repositório, como imagens de contêiner armazenadas emhttps://containers.HOSTNAME/NAMESPACE/PACKAGE-NAME
(em que NAMESPACE
é o nome da conta pessoal ou organização a qual o pacote tem escopo definido), você deverá ter acesso de administrador ao pacote. Para obter mais informações, confira "Sobre permissões para o GitHub Packages".
Para pacotes que herdam as permissões de acesso dos repositórios, é possível excluir um pacote se você tiver permissões de administrador para o repositório.
Alguns registros só dão suporte a pacotes com escopo de repositório. Para obter uma lista desses registros, confira "Sobre permissões para o GitHub Packages".
Excluir a versão de um pacote
Excluir uma versão de um pacote com escopo de repositório em GitHub
Para excluir uma versão de um pacote com escopo de repositório, você deve ter permissões de administrador no repositório em que o pacote está publicado. Para obter mais informações, confira "Permissões necessárias".
-
Em GitHub, acesse a página principal do repositório.
-
Na barra lateral direita do repositório, clique em Pacotes.
-
Procure e clique no nome do pacote que deseja gerenciar.
-
Procure o local em que você pode gerenciar as versões para o tipo de pacote.
- Se o pacote for um contêiner, na seção "Versões Recentes", clique em Exibir e gerenciar todas as versões.
- Para tipos de pacotes diferentes de contêineres:
- No lado direito, clique em Configurações do pacote.
- À esquerda, clique em Gerenciar versões.
-
Na lista de pacotes, localize a versão do pacote que deseja excluir.
- Se o pacote for um contêiner, à direita da versão do pacote, clique em e selecione Excluir versão no menu suspenso.
- Para tipos de pacotes diferentes de contêineres, à direita da versão do pacote, clique em Excluir.
-
Para confirmar a exclusão, digite o nome do pacote e clique em Eu entendo as consequências, exclua esta versão.
Excluir uma versão de um pacote com escopo do repositório com o GraphQL
Para certos registros, você pode usar GraphQL para excluir uma versão de um pacote privado.
Você não pode usar a API do GraphQL GitHub Packages com registros que dão suporte a permissões granulares. Para os registros que dão suporte apenas a permissões no escopo do repositório e podem ser usados com a API do GraphQL, confira "Sobre permissões para o GitHub Packages". Para saber como usar a API REST como alternativa, confira "Pontos de extremidade de API REST para pacotes".
Use a mutação deletePackageVersion
na API do GraphQL. Você deve usar um personal access token (classic) com os escopos read:packages
, delete:packages
e repo
. Para obter mais informações sobre personal access tokens (classic), confira "Introdução ao GitHub Packages".
O exemplo a seguir demonstra como excluir uma versão do pacote usando um packageVersionId
de MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg
.
curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer TOKEN" \
-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg==\"}) { success }}"}' \
HOSTNAME/graphql
Para encontrar todos os pacotes privados que você publicou em GitHub Packages, junto com os IDs de versão dos pacotes, você pode usar a conexão dos packages
através do objeto repository
. Você precisará de um personal access token (classic) com os escopos read:packages
e repo
. Para obter mais informações, confira a conexão dos packages
ou da interface do PackageOwner
.
Para obter mais informações sobre a mutação deletePackageVersion
, confira "Mutações".
Você não pode excluir diretamente um pacote inteiro usando o GraphQL, mas se você excluir todas as versões de um pacote, o pacote não será mostrado em GitHub Enterprise Server.
Excluindo um pacote inteiro
Excluindo um pacote com escopo de repositório completo em GitHub
Para excluir todo um pacote com escopo do repositório, você deve ter permissões de administrador no repositório que possui o pacote. Para obter mais informações, confira "Permissões necessárias".
-
Em GitHub, acesse a página principal do repositório.
-
Na barra lateral direita do repositório, clique em Pacotes.
-
Procure e clique no nome do pacote que deseja gerenciar.
-
Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.
-
Na parte inferior da página, em "Zona de perigo", clique em Excluir este pacote.
-
Para confirmar, leia a mensagem de confirmação, insira o nome do pacote e clique em Entendi. Excluir este pacote.
Excluir um pacote inteiro com escopo do usuário em GitHub
Para revisar quem pode excluir um pacote, confira "Permissões necessárias".
-
No GitHub, acesse a página principal da sua conta pessoal.
-
No canto superior direito do GitHub, selecione sua foto de perfil e selecione Seu perfil.
-
Na página do perfil, no cabeçalho, clique na guia Pacotes .
-
Procure e clique no nome do pacote que deseja gerenciar.
-
Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.
-
À esquerda, clique em Opções.
-
Na parte inferior da página, em "Zona de perigo", clique em Excluir este pacote.
-
Na caixa de confirmação, digite o nome do pacote para confirmar que deseja excluí-lo.
-
Clique em Entendi as consequências. Excluir este pacote.
Excluir um pacote inteiro com escopo da organização em GitHub
Para revisar quem pode excluir um pacote, confira "Permissões necessárias".
-
Em GitHub, acesse a página principal da sua organização.
-
No nome da sua organização, clique na guia Pacotes.
-
Procure e clique no nome do pacote que deseja gerenciar.
-
Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.
-
À esquerda, clique em Opções.
-
Na parte inferior da página, em "Zona de perigo", clique em Excluir este pacote.
-
Na caixa de confirmação, digite o nome do pacote para confirmar que deseja excluí-lo.
-
Clique em Entendi as consequências. Excluir este pacote.
Restaurando pacotes
Você pode restaurar um pacote ou versão excluído, se:
- Você restaurar o pacote dentro de 30 dias após a exclusão.
- O mesmo namespace e versão do pacote ainda estiverem disponíveis e não forem reutilizados para um novo pacote.
Por exemplo, se você for o usuário octocat
e tiver um pacote RubyGems excluído chamado my-package
com escopo no repositório octocat/my-repo
, só será possível restaurar o pacote se o namespace do pacote rubygem.pkg.github.com/octocat/my-repo/my-package
ainda estiver disponível e não houver transcorrido 30 dias.
Para excluir um pacote, você também deve ter permissões de administrador no repositório no qual o pacote foi publicado.
Para obter mais informações, confira "Permissões necessárias".
Uma vez restaurado o pacote, este usará o mesmo namespace de antes. Se o mesmo namespace não estiver disponível, você não poderá restaurar seu pacote. Neste cenário, para restaurar o pacote excluído, você deverá excluir o novo pacote que usa o namespace do pacote excluído primeiro.
Restaurando um pacote de uma organização
Você pode restaurar um pacote excluído por meio das configurações da conta da organização, desde que o pacote esteja em um repositório de propriedade da organização ou tenha permissões granulares e escopo para a conta da organização.
Para revisar quem pode restaurar um pacote em uma organização, confira "Permissões necessárias".
-
Em GitHub, acesse a página principal da organização.
-
No nome da sua organização, clique Configurações. Caso não consiga ver a guia "Configurações", selecione o menu suspenso , clique em Configurações.
-
À esquerda, clique em Pacotes.
-
Em "Pacotes excluídos", ao lado do pacote que você deseja restaurar, clique em Restaurar.
-
Para confirmar, digite o nome do pacote e clique em Eu entendo as consequências, restaure este pacote.
Restaurar um pacote com escopo de conta de usuário
Você pode restaurar um pacote excluído por meio das configurações da sua conta pessoal, se o pacote estiver em um de seus repositórios ou escopo para sua conta pessoal. Para obter mais informações, confira "Permissões necessárias".
- No canto superior direito de qualquer página do GitHub, clique sua foto de perfil e, em seguida, clique em Configurações.
- Na barra lateral esquerda, clique em Pacotes.
- Em "Pacotes excluídos", ao lado do pacote que você deseja restaurar, clique em Restaurar.
- Para confirmar, digite o nome do pacote e clique em Eu entendo as consequências, restaure este pacote.
Restaurar uma versão do pacote
Você pode restaurar uma versão do pacote a partir da página inicial do seu pacote. Para revisar quem pode restaurar um pacote, confira "Permissões necessárias".
-
Acesse a página inicial do seu pacote.
-
Procure e clique no nome do pacote que deseja gerenciar.
-
Na página de aterrissagem do pacote, no lado direito, clique em Configurações do pacote.
-
Procure o local em que você pode gerenciar as versões para o tipo de pacote.
- Se o pacote for um contêiner, na seção "Versões Recentes", clique em Exibir e gerenciar todas as versões.
- Para tipos de pacotes diferentes de contêineres:
- No lado direito, clique em Configurações do pacote.
- À esquerda, clique em Gerenciar versões.
-
No canto superior direito da lista de versões do pacote, use a lista suspensa Selecionar exibição das versões e selecione Excluído.
-
Ao lado da versão do pacote excluído que deseja restaurar, clique em Restaurar.
-
Para confirmar, clique em Entendo as consequências. Restaurar esta versão.