Comportamento da API com repositórios upstream - 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á.

Comportamento da API com repositórios upstream

Quando você chama determinadas CodeArtifact APIs em repositórios conectados a repositórios upstream, o comportamento pode ser diferente dependendo se os pacotes ou as versões do pacote estão armazenados no repositório de destino ou no repositório upstream. O comportamento dessas APIs está documentado aqui.

Para obter mais informações sobre CodeArtifact APIs, consulte a Referência da CodeArtifact API.

A maioria das APIs que fazem referência a um pacote ou a uma versão de pacote retornará um erro de ResourceNotFound se a versão do pacote especificada não estiver presente no repositório de destino. Isso acontece mesmo se o pacote ou a versão do pacote estiver presente em um repositório upstream. Efetivamente, os repositórios upstream são ignorados ao chamar essas APIs. Essas APIs são:

  • DeletePackageVersions

  • DescribePackageVersion

  • GetPackageVersionAsset

  • GetPackageVersionReadme

  • ListPackages

  • ListPackageVersionAssets

  • ListPackageVersionDependencies

  • ListPackageVersions

  • UpdatePackageVersionsStatus

Para demonstrar esse comportamento, temos dois repositórios: o target-repo e upstream-repo. O target-repo está vazio e tem o upstream-repo configurado como um repositório upstream. O upstream-repo contém o pacote npm lodash.

Ao chamar a API DescribePackageVersion no upstream-repo, que contém o pacote lodash, obtemos o seguinte resultado:

{ "packageVersion": { "format": "npm", "packageName": "lodash", "displayName": "lodash", "version": "4.17.20", "summary": "Lodash modular utilities.", "homePage": "https://lodash.com/", "sourceCodeRepository": "https://github.com/lodash/lodash.git", "publishedTime": "2020-10-14T11:06:10.370000-04:00", "licenses": [ { "name": "MIT" } ], "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", "status": "Published" }

Ao chamar a mesma API no target-repo, que está vazio, mas tem o upstream-repo configurado como upstream, obtemos o seguinte resultado:

An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: Package not found in repository. RepoId: repo-id, Package = PackageCoordinate{packageType=npm, packageName=lodash},

A API CopyPackageVersions se comporta de forma diferente. Por padrão, a API CopyPackageVersions copia somente as versões do pacote que estão armazenadas no repositório de destino. Se uma versão do pacote for armazenada no repositório upstream, mas não no repositório de destino, ela não será copiada. Para incluir versões de pacotes que são armazenados somente no repositório upstream, defina o valor de includeFromUpstream para true na sua solicitação de API.

Para mais informações sobre a API CopyPackageVersions, consulte Copiar pacotes entre repositórios.