Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts yukarı akış kaynakları, geliştiricilerin hem yayımlanmış paketleri hem de NuGet.org gibi genel kayıt defterlerinden tüketilenleri depolamak için tek bir akış kullanarak paket yönetimini merkezileştirmesini sağlar.
Yukarı akış kaynakları basitlik, güvenilirlik ve paket bütünlüğü gibi bağımlılıkları yönetmek için çeşitli avantajlar sunar. Bkz. Yukarı akış kaynakları nedir? Daha fazla bilgi için.
Dış kaynaklı sürümlere izin ver
Bu özellik, geliştiricilerin NuGet.org veya npmjs.com gibi genel kayıt defterlerinden paket sürümlerini kullanmak isteyip istemediklerini denetlemesini sağlar.
Belirli bir paket için Dış Sürümlere İzin Ver anahtarı etkinleştirildikten sonra, genel kayıt defterindeki sürümler depoya kaydedilebilecek hale gelir. Varsayılan olarak, bu seçenek devre dışı bırakılır ve genel kayıt defterlerinden gelen kötü amaçlı olabilecek paketlere maruz kalma olasılığını azaltarak ek bir güvenlik katmanı eklenir. Bu ayarın değiştirilmesi, akışa kaydedilmiş paket sürümlerini etkilemez. Bu sürümler bu ayardan bağımsız olarak erişilebilir durumda kalır. Dış kaynaklı sürümlere izin verme özelliğini etkinleştirmek için Besleme Sahibi olmanız gerekir.
Paket için dış sürümlere izin verme
Belirli bir paket için dış sürümlerin tüketilmesine olanak tanımak için şu adımları izleyin:
Not
Dış kaynaklı sürümlere izin vermek için Akış Sahibi olmanız gerekir.
Azure DevOps'ta oturum açın ve projenize gidin.
Nesneler'i seçin ve ardından açılan menüden beslemenizi seçin.
Paketinizi seçin, diğer seçenekler için üç nokta düğmesini ve ardından Dış kaynaklı sürümlere izin ver'i seçin.
Özelliği etkinleştirmek için Dış Sürümlere İzin Ver'i açıp bitirdiğinizde Kapat'ı seçin.
REST API kullanarak dış sürümlere izin ver
REST API kullanarak belirli bir paket için dış sürümleri etkinleştirmek için aşağıdaki uç noktaları kullanın:
| Paket Türü | API Uç Noktaları |
|---|---|
| NuGet |
-
Akış davranışını ayarlama - Yukarı akış davranışı alma |
| npm |
-
Akış davranışını ayarlama - Kapsamlı yukarı akış davranışını ayarlama - Paket yukarı akış davranışını alma - Kapsamlı paket yukarı akış davranışını elde etme |
| Piton |
-
Yukarı akış davranışı alma - Akış davranışını ayarlama |
| Maven |
-
Yukarı akış davranışı alma - Akış davranışını ayarlama |
| Kargo |
-
Yukarı akış davranışı alma - Akış davranışını ayarlama |
PowerShell kullanarak dış sürümlere izin ver
PowerShell kullanarak belirli bir paket için dış sürümleri etkinleştirmek için şu adımları izleyin:
Kişisel erişim belirteciniz için bir ortam değişkeni oluşturun.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"Kişisel erişim belirtecinizi Base64 ile kodlanmış bir dizeye dönüştürün ve HTTP isteği üst bilgisini oluşturun.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }Akış türünüz temelinde uç nokta URL'sini oluşturma:
Proje odaklı besleme:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"Kuruluş bazlı besleme:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"
Senaryonuza göre tablodan komutunu çalıştırın:
Eylem Description Command Yukarı Akış Davranışı Alma Paketinizin yukarı akış davranış durumunu alın. Önceki adımlardaki $urlve$headerskullanır.Invoke-RestMethod -Uri $url -Headers $headersYukarı Akış Davranışını Ayarlama Paketiniz için dış kaynaklı sürümlere izin vermek üzere versionsFromExternalUpstreamsdeğeriniAllowExternalVersionsolarak ayarlayın.$body = '{"versionsFromExternalUpstreams": "AllowExternalVersions"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"Yukarı Akış Davranışını Temizle olarak ayarlayarak versionsFromExternalUpstreamsAutoyukarı akış davranışını sıfırlayın.$body = '{"versionsFromExternalUpstreams": "Auto"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"
Not
Yukarı akış davranışındaki değişikliklerin hizmet genelinde yayılması zaman alabilir. Ayarları güncelleştirdikten sonra paketiniz kullanılamıyorsa değişikliklerin etkili olması için 3 saate kadar bekleyin.
Uygulanabilir senaryolar
Bu bölümde, harici sürümlerin (genel kayıt defterlerindeki paketler) beslemeye kaydedilmesinin engellendiği veya izin verildiği yaygın senaryolar açıklanmaktadır. Bu makalenin geri kalanında, genel kayıt defterlerindeki paketlere genel paketler ve Azure Artifacts akışında özel paketler olarak depolanan paketler olarak başvuracağız.
Senaryo 1: Genel sürümler engellendi
Aşağıdaki iki durumda Dış Sürümlere İzin Ver özelliği etkinleştirildiğinde genel sürümlerin akışa kaydedilmesi engellenir:
Genel kullanıma açık özel paket sürümü
Özel paket daha sonra genel kullanıma açık hale getirilirse akış, ortak kaynaklardan aynı paket adına sahip yeni sürümleri engeller.
Hem özel hem de genel paketlere sahip olma
Bir ekip hem özel hem de genel paketleri kullandığında, dış sürüme izin ver etkinleştirildiğinde akış, genel kayıt defterinden yeni paket sürümlerini engeller.
Senaryo 2: Genel sürümlere izin verilir
Aşağıdaki üç durumda Dış Sürümlere İzin Ver özelliği etkinleştirildiğinde genel sürümlerin akışa kaydedilmesine izin verilir:
Tüm paketler özeldir
Tüm paketler özelse ve ekip genel paketleri kullanmayı planlamıyorsa, bu ayarın etkinleştirilmesinin ekibin iş akışı üzerinde hiçbir etkisi olmaz.
Tüm paketler geneldir
Ekip yalnızca kayıt defterlerinden veya açık kaynak depolarından genel paketler kullanıyorsa, ayarın etkinleştirilmesi iş akışını etkilemez.
Genel bir paket özel hale getirildi
Genel paket daha sonra özele dönüştürüldüğünde, dış sürümlere izin ver ayarının etkinleştirilmesi ekibin iş akışını etkilemez.