Comportement des API avec les référentiels en amont - CodeArtifact

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Comportement des API avec les référentiels en amont

Lorsque vous appelez certaines CodeArtifact API sur des référentiels connectés à des référentiels en amont, le comportement peut être différent selon que les packages ou les versions de packages sont stockés dans le référentiel cible ou dans le référentiel amont. Le comportement de ces API est documenté ici.

Pour plus d'informations sur CodeArtifact les API, consultez la référence des CodeArtifact API.

La plupart des API qui font référence à un package ou à une version de package renvoient une ResourceNotFound erreur si la version de package spécifiée n'est pas présente dans le référentiel cible. Cela est vrai même si le package ou la version du package est présent dans un référentiel en amont. En fait, les référentiels en amont sont ignorés lors de l'appel de ces API. Ces API sont les suivantes :

  • DeletePackageVersions

  • DescribePackageVersion

  • GetPackageVersionAsset

  • GetPackageVersionReadme

  • ListPackages

  • ListPackageVersionAssets

  • ListPackageVersionDependencies

  • ListPackageVersions

  • UpdatePackageVersionsStatus

Pour illustrer ce comportement, nous avons deux référentiels : target-repo etupstream-repo. target-repoest vide et a été upstream-repo configuré en tant que référentiel en amont. upstream-repocontient le package lodash npm.

Lorsque l'DescribePackageVersionAPI est appeléeupstream-repo, qui contient le lodash package, nous obtenons le résultat suivant :

{ "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" }

Lorsque vous appelez la même APItarget-repo, qui est vide mais upstream-repo configurée en amont, nous obtenons le résultat suivant :

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

L'CopyPackageVersionsAPI se comporte différemment. Par défaut, CopyPackageVersions l'API copie uniquement les versions de package stockées dans le référentiel cible. Si une version de package est stockée dans le référentiel en amont mais pas dans le référentiel cible, elle ne sera pas copiée. Pour inclure les versions de packages qui sont stockées uniquement dans le référentiel en amont, définissez la valeur de includeFromUpstream to true dans votre demande d'API.

Pour plus d'informations sur l'CopyPackageVersionsAPI, consultezCopier des packages entre des référentiels.