Atualizar o status da versão do pacote - CodeArtifact

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atualizar o status da versão do pacote

Cada versão do pacote CodeArtifact tem um status que descreve o estado atual e a disponibilidade da versão do pacote. Você pode alterar o status da versão do pacote usando o console AWS CLI e o console.

nota

Para obter mais informações sobre o status da versão do pacote, incluindo uma lista dos status disponíveis, consulte Satus da versão do pacote.

Atualizar o status da versão do pacote

Definir o status de uma versão de pacote permite controlar como uma versão de pacote pode ser usada sem excluí-la completamente do repositório. Por exemplo, quando uma versão de pacote tem o status de Unlisted, ela ainda pode ser baixada normalmente, mas não aparecerá nas listas de versões de pacotes retornadas para comandos como npm view. O UpdatePackageVersionsStatus APIpermite definir o status da versão do pacote de várias versões do mesmo pacote em uma única API chamada. Para obter uma descrição dos diferentes status, consulte Visão geral dos pacotes.

Use o comando update-package-versions-status para alterar o status de uma versão do pacote para Published, Unlisted ou Archived. Para ver as IAM permissões necessárias para usar o comando, consulteIAMPermissões necessárias para atualizar o status da versão de um pacote. O exemplo a seguir define o status da versão 4.1.0 do pacote npm chalk como Archived.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 --target-status Archived

Exemplo de resultado:

{ "successfulVersions": { "4.1.0": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }

Este exemplo usa um pacote npm, mas o comando funciona de forma idêntica para outros formatos. Várias versões podem ser movidas para o mesmo status de destino usando um único comando, confira o exemplo a seguir.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.1.1 --target-status Archived

Exemplo de resultado:

{ "successfulVersions": { "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Archived" }, "4.1.1": { "revision": "+Oz8skWbwY3k8M6SrNIqNj6bVH/ax+CxvkJx+No5j8I=", "status": "Archived" } }, "failedVersions": {} }

Observe que, uma vez publicada, uma versão do pacote não pode ser movida de volta ao estado Unfinished, portanto, esse status não é permitido como um valor para o parâmetro --target-status. Para mover a versão do pacote para o estado Disposed, use o comando dispose-package-versions no lugar, conforme descrito abaixo.

IAMPermissões necessárias para atualizar o status da versão de um pacote

Para chamar update-package-versions-status para um pacote, você deve ter a permissão codeartifact:UpdatePackageVersionsStatus no recurso do pacote. Isso significa que você pode conceder permissão para chamar update-package-versions-status por pacote. Por exemplo, uma IAM política que concede permissão para chamar update-package-versions-status o pacote npm chalk incluiria uma declaração como a seguinte.

{ "Action": [ "codeartifact:UpdatePackageVersionsStatus" ], "Effect": "Allow", "Resource": "arn:aws:codeartifact:us-east-1:111122223333:package/my_domain/my_repo/npm//chalk" }

Atualizar o status de um pacote npm com escopo definido

Para atualizar o status da versão do pacote de uma versão do pacote npm com um escopo, use o parâmetro --namespace. Por exemplo, para remover da lista a versão 8.0.0 do @nestjs/core, use o comando a seguir.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --namespace nestjs --package core --versions 8.0.0 --target-status Unlisted

Atualizar o status de um pacote Maven

Os pacotes Maven sempre têm um ID de grupo, chamado de namespace em. CodeArtifact Use o parâmetro --namespace para especificar o ID do grupo Maven ao chamar update-package-versions-status. Por exemplo, para arquivar a versão 2.13.1 do pacote Maven org.apache.logging.log4j:log4j, use o comando a seguir.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format maven --namespace org.apache.logging.log4j --package log4j --versions 2.13.1 --target-status Archived

Especificar uma revisão da versão do pacote

A revisão da versão do pacote é uma string que especifica um determinado conjunto de ativos e metadados da versão de um pacote. Você pode especificar uma revisão da versão do pacote para atualizar o status das versões do pacote que estão em um estado definido. Para especificar uma revisão da versão do pacote, use o parâmetro --version-revisions para passar uma ou mais versões do pacote separadas por vírgula e os pares de revisão da versão do pacote. O status de uma versão do pacote só será atualizado se a revisão atual da versão do pacote corresponder ao valor especificado.

nota

O parâmetro —-versions também deve ser definido ao usar o parâmetro --version-revisions.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8bzVMJ4=" --versions 4.1.0 --target-status Archived

Para atualizar várias versões com um único comando, passe uma lista separada por vírgulas de pares de versão e de revisão de versão para as opções --version-revisions. O comando de exemplo a seguir define dois pares diferentes de versão do pacote e de revisão da versão do pacote.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Published

Exemplo de resultado:

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Published" }, "4.1.0": { "revision": "25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=", "status": "Published" } }, "failedVersions": {} }

Ao atualizar várias versões do pacote, as versões passadas para --version-revisions devem ser iguais às versões passadas para --versions. Se uma revisão for especificada de forma incorreta, o status dessa versão não será atualizado.

Usar o parâmetro de status esperado

O comando update-package-versions-status apresenta o parâmetro --expected-status compatível com a especificação do status atual esperado de uma versão do pacote. Se o status atual não corresponder ao valor passado para --expected-status, o status dessa versão do pacote não será atualizado.

Por exemplo, em my_repo, as versões 4.0.0 e 4.1.0 do pacote npm chalk atualmente têm o status de. Published Uma chamada para update-package-versions-status que especifica um status esperado de Unlisted falhará na atualização de ambas as versões do pacote devido à incompatibilidade de status.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.1.0 4.0.0 --target-status Archived --expected-status Unlisted

Exemplo de resultado:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" }, "4.1.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }

Erros com versões de pacotes individuais

Há vários motivos pelos quais o status de uma versão do pacote não será atualizado durante a chamada de update-package-versions-status. Por exemplo, a revisão da versão do pacote pode ter sido especificada de maneira incorreta ou o status esperado não corresponde ao status atual. Nesses casos, a versão será incluída no failedVersions mapa na API resposta. Se uma versão falhar, outras versões especificadas na mesma chamada para update-package-versions-status poderão ser ignoradas e não ter seu status atualizado. Essas versões também serão incluídas no mapa failedVersions com um errorCode deSKIPPED.

Na implementação atual do update-package-versions-status, se uma ou mais versões não puderem ter seu status alterado, todas as outras versões serão ignoradas. Ou seja, todas as versões são atualizadas com sucesso ou nenhuma versão é atualizada. Esse comportamento não é garantido no API contrato; no futuro, algumas versões podem ser bem-sucedidas, enquanto outras falham em uma única chamada paraupdate-package-versions-status.

O exemplo de comando a seguir inclui uma falha na atualização do status da versão causada por uma incompatibilidade na revisão da versão do pacote. Essa falha na atualização faz com que outra chamada de atualização de status da versão seja ignorada.

aws codeartifact update-package-versions-status --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --version-revisions "4.1.0=25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=,4.0.0=E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=" --versions 4.1.0 4.0.0 --target-status Archived

Exemplo de resultado:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "SKIPPED", "errorMessage": "version 4.0.0 is skipped" }, "4.1.0": { "errorCode": "MISMATCHED_REVISION", "errorMessage": "current revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ4=, expected revision: 25/UjBleHs1DZewk+zozoeqH/R80Rc9gL1P8vbzVMJ=" } } }

Descartar as versões do pacote

O status do Disposed pacote tem um comportamento semelhante aoArchived, exceto que os ativos do pacote serão excluídos permanentemente CodeArtifact para que a conta do proprietário do domínio não seja mais cobrada pelo armazenamento de ativos. Consulte mais informações sobre o status da versão do pacote em Satus da versão do pacote. Para alterar o status de uma versão do pacote para Disposed, use o comando dispose-package-versions. Esse recurso é separado de update-package-versions-status porque o descarte de uma versão do pacote não é reversível. Como os ativos do pacote serão excluídos, o status da versão não pode ser alterado de volta para Archived, Unlisted ou Published. A única ação que pode ser executada em uma versão de pacote que foi descartada é excluí-la usando o comando delete-package-versions.

Para chamar dispose-package-versions com sucesso, o IAM responsável pela chamada deve ter a codeartifact:DisposePackageVersions permissão no recurso do pacote.

O comportamento do comando dispose-package-versions é semelhante a update-package-versions-status, incluindo o comportamento das opções --version-revisions e --expected-status descritas nas seções de revisão da versão e status esperado. Por exemplo, o comando a seguir tenta descartar uma versão do pacote, mas falha devido a um status esperado incompatível.

aws codeartifact dispose-package-versions —domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Unlisted

Exemplo de resultado:

{ "successfulVersions": {}, "failedVersions": { "4.0.0": { "errorCode": "MISMATCHED_STATUS", "errorMessage": "current status: Published, expected status: Unlisted" } } }

Se o mesmo comando for executado outra vez com um --expected-status de Published, o descarte será bem-sucedido.

aws codeartifact dispose-package-versions —domain my_domain --domain-owner 111122223333 --repository my_repo --format npm --package chalk --versions 4.0.0 --expected-status Published

Exemplo de resultado:

{ "successfulVersions": { "4.0.0": { "revision": "E3lhBp0RObRTut4pkjV5c1AQGkgSA7Oxtil6hMMzelc=", "status": "Disposed" } }, "failedVersions": {} }