Perilaku API dengan repositori hulu - CodeArtifact

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Perilaku API dengan repositori hulu

Saat Anda memanggil CodeArtifact API tertentu pada repositori yang terhubung ke repositori upstream, perilakunya mungkin berbeda tergantung pada apakah paket atau versi paket disimpan di repositori target atau repositori upstream. Perilaku API ini didokumentasikan di sini.

Untuk informasi selengkapnya tentang CodeArtifact API, lihat Referensi CodeArtifact API.

Kebanyakan API yang mereferensi paket atau versi paket akan mengembalikan kesalahan ResourceNotFound jika versi paket yang ditentukan tidak ada dalam repositori target. Hal ini berlaku bahkan jika paket atau versi paket ada dalam repositori hulu. Secara efektif, repositori hulu diabaikan ketika memanggil API ini. API ini adalah:

  • DeletePackageVersions

  • DescribePackageVersion

  • GetPackageVersionAsset

  • GetPackageVersionReadme

  • ListPackages

  • ListPackageVersionAssets

  • ListPackageVersionDependencies

  • ListPackageVersions

  • UpdatePackageVersionsStatus

Untuk menunjukkan perilaku ini, kita memiliki dua repositori: target-repo dan upstream-repo. target-repo kosong dan mengonfigurasi upstream-repo sebagai repositori hulu. upstream-repo berisi paket npm lodash.

Ketika memanggil API DescribePackageVersion pada upstream-repo, yang berisi paket lodash, kita mendapatkan output berikut:

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

Ketika memanggil API yang sama pada target-repo, yang kosong tetapi mengonfigurasi upstream-repo sebagai hulu, kita mendapatkan output sebagai berikut:

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

Perilaku API CopyPackageVersions berbeda. Secara default, API CopyPackageVersions hanya menyalin versi paket yang disimpan dalam repositori target. Jika disimpan dalam repositori hulu tetapi tidak dalam repositori target, versi paket tidak akan disalin. Untuk menyertakan paket versi dari paket yang hanya disimpan di repositori hulu, tetapkan nilai includeFromUpstream ke true dalam permintaan API Anda.

Untuk informasi API CopyPackageVersions lebih lanjut, lihat Menyalin paket antar-repositori.