Yukarı akış davranışını yapılandırma

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Artifacts yukarı akış kaynaklarıyla geliştiriciler, Yapıt akışlarından ve NuGet.org veya npmjs.com gibi popüler genel kayıt defterlerinden paketleri yayımlamak ve kullanmak için birleşik akış kullanma kolaylığı elde eder. Daha önce Yapıt akışları hem akışın kendisinden hem de yapılandırılmış tüm yukarı akış kaynaklarından kullanılabilir paket sürümlerinin listesini bir araya getiriyor.

Akışın içeriğini gösteren çizim.

Yukarı akış davranışı, geliştiricilerin dış kaynaklı paket sürümlerini kullanmak isteyip istemediklerini seçmelerini sağlayan bir özelliktir. Belirli paketler için genel kayıt defterlerinden erişilebilen paketleri yönetir.

Yukarı akış davranışı etkinleştirildikten sonra, bir paket Azure Artifacts akışınızda yayımlandığında, genel kayıt defterindeki tüm sürümler engellenir ve indirilmeye sunulmaz.

Bu yaklaşım, genel kayıt defterlerine sızmış olabilecek kötü amaçlı paketlerin açığa çıkmasını önleyerek ek bir güvenlik katmanı ekler.

Ancak kullanıcılar yine de yukarı akış davranışı ayarını devre dışı bırakarak tercih ettikleri takdirde genel kayıt defterlerinden gelen paketleri kullanmalarına izin verebilir.

Not

Yeni davranış, akışın @local görünümünde korunduğu için şu anda kullanımda olan paket sürümlerini etkilemez.

Uygulanabilir senaryolar

Aşağıdaki bölümde, dış kaynaklı paket sürümlerini engellemek için yukarı akış davranışının tetiklendiği çeşitli yaygın senaryolar ve genel paketlere erişimi engellemeye gerek olmayan diğer senaryolar gösterilmektedir.

Genel sürümler engellendi

Genel kullanıma açık özel paket sürümü

Bu senaryoda, bir ekibin genel kullanıma açık özel bir paketi vardır. Bu durumda yukarı akış davranışı, yeni genel sürümleri (güvenilmeyen paketler) engellemek için tetiklenir.

Genel kullanıma açık iç paket sürümünü gösteren çizim.

Hem özel hem de genel paketlere sahip olma

Bu senaryoda, bir ekip özel ve genel paketlerin birleşimini kullanıyorsa, yukarı akış davranışının etkinleştirilmesi genel kayıt defterinden yeni paket sürümlerini engeller.

Kullanılabilir özel ve genel paketleri gösteren çizim.

Genel sürümler engellenmez

Tüm paketler özeldir*

Mevcut tüm paketler özelse ve ekibin genel paketleri kullanma planı yoksa, yeni yukarı akış davranışının bu senaryoda ekibin iş akışı üzerinde hiçbir etkisi olmaz.

Yalnızca özel paketler içeren akışı gösteren çizim.

Tüm paketler geneldir

Bu senaryoda, ister genel kayıt defterinden ister diğer açık kaynak depolarından olsun, ekip yalnızca genel paketleri kullanıyorsa, yeni yukarı akış davranışı iş akışlarını hiçbir şekilde etkilemez.

Yalnızca genel paketleri içeren akışı gösteren çizim.

Özel yapılan genel paket

Bu durumda, genel paket özel pakete dönüştürüldüğünde, yeni yukarı akış davranışı ekibin iş akışını hiçbir şekilde etkilemez.

Genelden özele dönüştürülmüş bir paketi gösteren çizim.

Dış sürümlere izin ver

Not

Dış kaynaklı sürümlere izin vermek için Akış Sahibi olmanız gerekir. Daha fazla bilgi için bkz . Akış izinleri.

  1. Azure DevOps kuruluşunuzda oturum açın ve projenize gidin.

  2. Yapıtlar'ı seçin ve ardından açılan menüden akışınızı seçin.

  3. Paketinizi seçin ve ardından diğer seçenekler için üç nokta düğmesini seçin. Dış kaynaklı sürümlere izin ver'i seçin.

    Dış kaynaklı sürümlere izin verme işlemini gösteren ekran görüntüsü.

  4. Dış sürümlere izin vermek için iki durumlu düğmeyi seçin. İşiniz bittiğinde Kapat'ı seçin.

    Dış sürümleri etkinleştirmeyi gösteren ekran görüntüsü.

REST API kullanarak dış sürümlere izin ver

PowerShell kullanarak dış sürümlere izin ver

  1. Paketleme>Okuma, yazma ve yönetme izinleriyle kişisel erişim belirtecioluşturun.

    Paketleme izinlerinin nasıl seçiliyor olduğunu gösteren ekran görüntüsü.

  2. Kişisel erişim belirteciniz için bir ortam değişkeni oluşturun.

    $env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
    
  3. Kişisel erişim belirtecinizi baser64 ile kodlanmış 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"
    }
    
  4. Uç nokta URL'nizi oluşturma. Örnek: //pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/upstreaming?api-version=6.1-preview.1

    • Proje kapsamlı akış:

      $url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
      
    • Kuruluş kapsamlı akış:

      $url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
      

Paketinizin yukarı akış davranış durumunu almak için aşağıdaki komutu çalıştırın. $url ve $headers önceki bölümde kullandığımız değişkenlerle aynıdır.

Invoke-RestMethod -Uri $url -Headers $headers