

Amazon CodeCatalyst tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Lihat informasi yang lebih lengkap di [Cara bermigrasi dari CodeCatalyst](migration.md).

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

# Mengkonfigurasi dan menggunakan repositori upstream
<a name="packages-upstream-repositories"></a>

Anda dapat menghubungkan kedua repositori gateway, dan repositori CodeCatalyst paket lainnya, sebagai upstream ke repositori paket Anda. Hal ini memungkinkan klien manajer paket untuk mengakses paket yang terkandung dalam lebih dari satu repositori paket dengan menggunakan endpoint repositori paket tunggal. Berikut ini adalah manfaat utama menggunakan repositori hulu:
+ Anda hanya perlu mengonfigurasi manajer paket Anda dengan satu titik akhir repositori untuk menarik dari berbagai sumber.
+ Paket yang dikonsumsi dari repositori upstream disimpan di repositori hilir Anda, yang memastikan paket Anda tersedia meskipun repositori upstream mengalami pemadaman yang tidak terduga atau paket di repositori upstream dihapus.

Anda dapat menambahkan repositori upstream saat Anda membuat repositori paket. Anda juga dapat menambah atau menghapus repositori upstream dari repositori paket yang ada di konsol. CodeCatalyst 

Saat Anda menambahkan repositori gateway sebagai repositori upstream, repositori paket terhubung ke repositori paket publik repositori gateway yang sesuai. Untuk daftar repositori paket publik yang didukung, lihat. [Repositori paket eksternal yang didukung dan repositori gateway mereka](packages-connect-external.md#packages-upstream-repositories-supported-external)

Anda dapat menautkan beberapa repositori bersama-sama sebagai repositori upstream. Misalnya, tim Anda membuat repositori bernama `project-repo` dan sudah menggunakan repositori lain bernama yang telah **npm-public-registry-gateway**ditambahkan sebagai repositori upstream, yang terhubung ke repositori npm publik,. `team-repo` `npmjs.com` Anda dapat menambahkan `team-repo` sebagai repositori upstream ke. `project-repo` Dalam hal ini, Anda hanya perlu mengkonfigurasi manajer paket Anda untuk digunakan `project-repo` untuk menarik paket dari`project-repo`,`team-repo`,`npm-public-registry-gateway`, dan`npmjs.com`.

**Topics**
+ [Menambahkan repositori hulu](packages-upstream-repositories-add.md)
+ [Mengedit urutan pencarian repositori hulu](packages-upstream-repositories-search-order.md)
+ [Meminta versi paket dengan repositori hulu](packages-upstream-repositories-request.md)
+ [Menghapus repositori upstream](packages-upstream-repositories-remove.md)

# Menambahkan repositori hulu
<a name="packages-upstream-repositories-add"></a>

Menambahkan repositori paket publik atau repositori CodeCatalyst paket lain sebagai repositori upstream ke repositori hilir Anda membuat semua paket di repositori upstream tersedia untuk manajer paket yang terhubung ke repositori hilir.

**Untuk menambahkan repositori upstream**

1. Di panel navigasi, pilih **Paket**.

1. Pada halaman **Package repositories**, pilih repositori paket yang ingin Anda tambahkan repositori upstream.

1. **Di bawah nama repositori paket, pilih **Upstream dan pilih Pilih repositori upstream**.**

1. Di **Pilih tipe hulu**, pilih salah satu dari berikut ini:
   + **Repositori gerbang**

     Anda dapat memilih dari daftar repositori gateway yang tersedia.
**catatan**  
Untuk terhubung ke otoritas paket eksternal publik seperti Maven Central, npmjs.com, atau Nuget Gallery, CodeCatalyst menggunakan repositori gateway sebagai repositori perantara yang mencari dan menyimpan paket yang ditarik dari repositori eksternal. Ini menghemat waktu dan transfer data karena semua repositori paket dalam proyek akan menggunakan paket dari repositori perantara gateway. Untuk informasi selengkapnya, lihat [Menghubungkan ke repositori eksternal publik](packages-connect-external.md).
   + **CodeCatalyst repositori**

     Anda dapat memilih dari daftar repositori CodeCatalyst paket yang tersedia di proyek Anda.

1. **Ketika Anda telah memilih semua repositori yang ingin Anda tambahkan sebagai repositori upstream, **pilih Pilih, lalu pilih Simpan**.**

   Untuk informasi selengkapnya tentang mengubah urutan pencarian repositori hulu, lihat. [Mengedit urutan pencarian repositori hulu](packages-upstream-repositories-search-order.md)

Ketika Anda telah menambahkan repositori upstream, Anda dapat menggunakan manajer paket yang terhubung ke repositori lokal Anda untuk mengambil paket dari repositori upstream. Anda tidak perlu memperbarui konfigurasi manajer paket Anda. Untuk informasi selengkapnya tentang meminta versi paket dari repositori upstream, lihat. [Meminta versi paket dengan repositori hulu](packages-upstream-repositories-request.md)

# Mengedit urutan pencarian repositori hulu
<a name="packages-upstream-repositories-search-order"></a>

CodeCatalyst mencari repositori upstream dalam urutan pencarian yang dikonfigurasi. Ketika sebuah paket ditemukan, CodeCatalyst berhenti mencari. Anda dapat mengubah urutan repositori upstream yang dicari untuk paket.

**Untuk mengedit urutan pencarian repositori hulu**

1. Di panel navigasi, pilih **Paket**.

1. Pada halaman **Package repositories**, pilih repositori paket yang urutan pencarian repositori hulu yang ingin Anda edit.

1. **Di bawah nama repositori paket, pilih Upstreams.**

1. Di bagian **Repositori Upstream, Anda dapat melihat repositori** upstream dan urutan pencariannya. Untuk mengubah urutan pencarian, seret dan lepas repositori dalam daftar.

1. **Setelah selesai mengedit urutan pencarian repositori upstream, pilih Simpan.**

# Meminta versi paket dengan repositori hulu
<a name="packages-upstream-repositories-request"></a>

Contoh berikut menunjukkan skenario yang mungkin ketika manajer paket meminta paket dari repositori CodeCatalyst paket yang memiliki repositori upstream.

Untuk contoh ini, manajer paket, seperti`npm`, meminta versi paket dari repositori paket bernama `downstream` yang memiliki beberapa repositori upstream. Ketika paket diminta, hal berikut dapat terjadi:
+  Jika `downstream` berisi versi paket yang diminta, akan dikembalikan ke klien. 
+  Jika `downstream` tidak berisi versi paket yang diminta, CodeCatalyst cari di repositori upstream, dalam `downstream` urutan pencarian yang dikonfigurasi. Jika versi paket ditemukan, referensi untuk itu akan disalin ke `downstream`, dan versi paket dikembalikan ke klien. 
+  Jika tidak ada `downstream` atau repositori upstream yang berisi versi paket, `Not Found` respons HTTP 404 dikembalikan ke klien.

 Jumlah maksimum repositori hulu langsung yang diizinkan untuk satu repositori adalah 10. Jumlah maksimum repositori yang CodeCatalyst dicari saat versi paket diminta adalah 25. 

## Retensi paket dari repositori hulu
<a name="package-retention-upstream-repos"></a>

Jika versi paket yang diminta ditemukan di repositori upstream, referensi untuk itu dipertahankan dan selalu tersedia di repositori yang memintanya. Ini memastikan bahwa Anda memiliki akses ke paket Anda jika ada pemadaman tak terduga dari repositori upstream. Versi paket yang dipertahankan tidak terpengaruh oleh salah satu dari berikut ini: 
+  Menghapus repositori hulu. 
+  Memutuskan koneksi repositori hulu dari repositori hilir. 
+  Menghapus versi paket dari repositori hulu. 
+  Mengedit versi paket di repositori hulu (misalnya, dengan menambahkan aset baru ke dalamnya). 

## Mengambil paket melalui hubungan hulu
<a name="fetching-packages-through-an-upstream-relationship"></a>

CodeCatalyst dapat mengambil paket melalui beberapa repositori tertaut yang disebut repositori upstream. Jika repositori CodeCatalyst paket memiliki koneksi upstream ke repositori CodeCatalyst paket lain yang memiliki koneksi upstream ke repositori gateway, permintaan paket yang tidak ada di repositori upstream disalin dari repositori eksternal. Misalnya, pertimbangkan konfigurasi berikut: repositori bernama `repo-A` memiliki koneksi upstream ke repositori gateway,. `npm-public-registry-gateway` `npm-public-registry-gateway`memiliki koneksi hulu ke repositori paket publik,. [https://npmjs.com](https://npmjs.com)

![\[Diagram repositori hulu sederhana menunjukkan tiga repositori yang dirangkai bersama.\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/packages/upstream-with-external.png)


Jika `npm` dikonfigurasi untuk menggunakan `repo-A` repositori, menjalankan `npm install` memulai penyalinan paket dari ke. [https://npmjs.com](https://npmjs.com)`npm-public-registry-gateway` Versi yang dipasang juga ditarik ke dalam `repo-A`. Contoh berikut menginstal `lodash`.

```
$ npm config get registry
https://packages.region.codecatalyst.aws/npm/space-name/proj-name/repo-name/
$ npm install lodash
+ lodash@4.17.20
added 1 package from 2 contributors in 6.933s
```

Setelah berjalan`npm install`, hanya `repo-A` berisi versi terbaru (`lodash 4.17.20`) karena itulah versi yang diambil oleh `npm` from`repo-A`.

 Karena `npm-public-registry-gateway` memiliki koneksi upstream eksternal ke [https://npmjs.com](https://npmjs.com), semua versi paket yang diimpor dari [https://npmjs.com](https://npmjs.com)disimpan di`npm-public-registry-gateway`. Versi paket ini dapat diambil oleh repositori hilir mana pun dengan koneksi hulu yang mengarah ke. `npm-public-registry-gateway` 

Isi `npm-public-registry-gateway` menyediakan cara bagi Anda untuk melihat semua paket dan versi paket yang diimpor dari waktu [https://npmjs.com](https://npmjs.com)ke waktu.

## Retensi paket dalam repositori menengah
<a name="package-retention-intermediate-repositories"></a>

 CodeCatalyst memungkinkan Anda untuk rantai repositori hulu. Misalnya, `repo-A` dapat memiliki `repo-B` sebagai repositori upstream dan `repo-B` dapat memiliki `repo-C` sebagai repositori upstream. Konfigurasi ini membuat versi paket di `repo-B` dan `repo-C` tersedia dari `repo-A`. 

![\[Diagram repositori hulu sederhana menunjukkan tiga repositori yang dirangkai bersama.\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/packages/upstream-chaining.png)


 Ketika manajer paket terhubung ke repositori `repo-A` dan mengambil versi paket dari repositori`repo-C`, versi paket tidak dipertahankan dalam repositori. `repo-B` Versi paket hanya disimpan di repositori hilir terjauh, yang dalam contoh ini adalah. `repo-A` Itu tidak disimpan di repositori perantara apa pun. Ini juga berlaku untuk rantai yang lebih panjang; misalnya, jika ada empat repositori:`repo-A`,`repo-B`,`repo-C`, dan`repo-D`, dan manajer paket yang terhubung untuk `repo-A` mengambil versi paket dari`repo-D`, versi paket akan dipertahankan `repo-A` tetapi tidak di atau. `repo-B` `repo-C` 

Perilaku retensi paket serupa saat menarik versi paket dari repositori paket publik, kecuali bahwa versi paket selalu dipertahankan di repositori gateway yang memiliki koneksi hulu langsung ke repositori publik. Misalnya, `repo-A` memiliki `repo-B` sebagai repositori hulu. `repo-B`memiliki `npm-public-registry-gateway` sebagai repositori upstream, yang memiliki koneksi upstream ke repositori publik, **npmjs.com**; lihat diagram di bawah ini.

![\[Diagram repositori hulu yang menunjukkan tiga repositori dirantai bersama dengan koneksi hulu eksternal ke npmjs.com.\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/packages/upstream-chaining-external.png)


 **Jika manajer paket terhubung untuk `repo-A` meminta versi paket tertentu, *lodash 4.17.20* misalnya, dan versi paket tidak ada di salah satu dari tiga repositori, itu akan diambil dari npmjs.com.** **Ketika *lodash 4.17.20* diambil, itu dipertahankan karena itu adalah repositori hilir terjauh dan `repo-A` `npm-public-registry-gateway` karena memiliki koneksi hulu ke repositori eksternal publik, npmjs.com.** *lodash 4.17.20* tidak dipertahankan `repo-B` karena itu adalah repositori perantara. 

# Menghapus repositori upstream
<a name="packages-upstream-repositories-remove"></a>

Jika Anda tidak lagi ingin mengakses paket dalam repositori upstream, Anda dapat menghapus repositori upstream dari repositori paket.

**Awas**  
Saat Anda menghapus repositori upstream, Anda dapat memutuskan rantai hubungan hulu, yang dapat merusak proyek atau build Anda.

**Untuk menghapus repositori upstream**

1. Di panel navigasi, pilih **Paket**.

1. Pada halaman **Package repositories**, pilih repositori paket dari mana Anda ingin menghapus repositori upstream.

1. **Di bawah nama repositori paket, pilih Upstreams.**

1. Di bagian **Edit repositori hulu, temukan repositori** upstream yang ingin Anda hapus dan pilih. ![\[Remove\]](http://docs.aws.amazon.com/id_id/codecatalyst/latest/userguide/images/packages/remove.png)

1. **Setelah selesai menghapus repositori upstream, pilih Simpan.**