Bagikan melalui


Pengaturan untuk menonaktifkan pembuatan repositori TFVC

Dengan pembaruan ini, kami memperkenalkan pengaturan baru untuk menonaktifkan pembuatan repositori TFVC. Perubahan ini berfokus pada proyek baru sambil memastikan bahwa repositori TFVC Anda yang ada tetap tidak terpengaruh.

Selain itu, kami dengan senang hati mengumumkan bahwa di Azure Pipelines, titik akhir REST API baru tersedia untuk meminta token OIDC! Ini memungkinkan pengembang tugas untuk menghasilkan idTokens untuk autentikasi ID Entra, meningkatkan keamanan dan kemudahan penggunaan.

Terakhir, di Azure Boards, jalur area dan iterasi sekarang hanya dapat dihapus jika tidak lagi terkait dengan item kerja apa pun. Peningkatan ini mencegah gangguan dan memastikan tim mempertahankan akses ke papan dan backlog mereka.

Lihat catatan rilis untuk detailnya.

GitHub Advanced Security untuk Azure DevOps

Papan Azure:

Azure Repos

Azure Pipelines

Paket Pengujian Azure:

GitHub Advanced Security untuk Azure DevOps

Dokumentasi API gambaran umum keamanan sekarang tersedia

Dokumentasi untuk API yang mendukung tab risiko gambaran umum Keamanan Tingkat Lanjut sekarang tersedia. Gunakan titik /{organization}/_apis/reporting/summary/alerts akhir untuk melihat ringkasan kekritisan pemberitahuan di semua repositori berkemampuan Keamanan Tingkat Lanjut. Pastikan ADO PAT Anda memiliki vso.advsec izin, yang memberikan kemampuan untuk membaca pemberitahuan, instans hasil, dan instans hasil analisis.

Azure Boards

Perubahan untuk menghapus area dan jalur iterasi

Menghapus area atau jalur iterasi dapat mengganggu. Ini dapat memindahkan item kerja ke jalur baru dan dapat menyebabkan tim kehilangan akses ke papan dan backlog mereka. Meskipun ada peringatan dan perintah, jalur terkadang dihapus tanpa sepenuhnya memahami konsekuensinya. Untuk mengatasi hal ini, kami mengubah perilaku: Jalur area dan Perulangan sekarang hanya dapat dihapus jika tidak lagi digunakan oleh item kerja apa pun.

Cuplikan layar area penghapusan.

Azure Repos

Pengaturan baru untuk menonaktifkan pembuatan repositori TFVC

Dalam beberapa tahun terakhir, tidak ada fitur baru yang ditambahkan ke Team Foundation Version Control (TFVC) karena Git telah menjadi sistem kontrol versi pilihan di Azure Repos. Semua peningkatan terbaru dalam keamanan, performa, dan aksesibilitas telah dilakukan secara eksklusif ke repositori Git, yang menyebabkan penurunan berkelanjutan dalam penggunaan TFVC. Meskipun beberapa masih mengandalkan TFVC dan kami tidak berniat untuk menghapus set fitur ini, kami berencana untuk mengeluarkan TFVC secara bertahap untuk proyek dan organisasi baru, serta untuk proyek yang saat ini tidak menggunakan TFVC.

Sebagai bagian dari transisi ini, kami memperkenalkan pengaturan baru ke "Nonaktifkan pembuatan repositori TFVC," yang hanya akan memengaruhi pembuatan repositori TFVC baru dan tidak akan memengaruhi repositori yang ada.

Gif ke demo Nonaktifkan pembuatan repositori TFVC.

Azure Pipelines

Mengakses Azure Bus Layanan dari Alur menggunakan autentikasi ID Microsoft Entra

Sekarang Anda dapat menggunakan autentikasi ID Microsoft Entra untuk mengakses Azure Bus Layanan dari Azure Pipelines. Ini memungkinkan Anda memanfaatkan federasi identitas Beban Kerja untuk menghapus manajemen rahasia dan Azure RBAC untuk kontrol akses terperinci.

Identitas yang mengakses Azure Bus Layanan perlu diberikan salah satu peran bawaan Azure untuk Azure Bus Layanan pada Bus Layanan diakses.

tugas PublishToAzureServiceBus@2

Tugas PublishToAzureServiceBus@2 baru dapat dikonfigurasi menggunakan koneksi layanan Azure. Buat koneksi layanan Azure dan isi serviceBusQueueName properti dan serviceBusNamespace tugas baru:

- task: PublishToAzureServiceBus@2
  inputs:
    azureSubscription: my-azure-service-connection
    serviceBusQueueName: my-service-bus-queue
    serviceBusNamespace: my-service-bus-namespace
    useDataContractSerializer: false
    messageBody: |
      {
        "foo": "bar"
      }
Tugas server

Tugas server kustom (tanpa agen) yang menggunakan ServiceBus eksekusi dapat menentukan Koneksi Layanan Azure sebagai EndpointId dan menghilangkan ConnectionString. Lihat Penulisan tugas server.

Alur dan tugas mengisi variabel untuk menyesuaikan autentikasi federasi identitas Beban Kerja

Titik akhir REST API untuk meminta token OIDC sekarang tersedia dalam System.OidcRequestUri variabel alur. Pengembang tugas dapat memanfaatkan variabel ini untuk menghasilkan idToken untuk autentikasi dengan ID Entra.

Jika Anda menggunakan tugas Marketplace atau tugas kustom untuk disebarkan ke Azure, perlu diketahui bahwa tugas-tugas ini mungkin belum mendukung federasi identitas beban kerja. Kami merekomendasikan pengembang tugas untuk mengaktifkan federasi identitas beban kerja untuk meningkatkan langkah-langkah keamanan.

Cuplikan layar kolaborasi oidc.

Tugas yang mengambil connectedService:AzureRM input di task.json dapat diperbarui untuk mendukung federasi identitas beban kerja dengan mengikuti langkah-langkah berikut:

  • Gunakan Oidctoken REST API untuk meminta idToken (panah 1 dalam diagram di atas).
  • Tukarkan idToken dengan token akses menggunakan alur kredensial federasi OAuth API, menentukan idToken sebagai client_assertion (panah 2 & 4 dalam diagram di atas);
    atau:
  • Untuk tugas yang bertindak sebagai pembungkus di sekitar alat yang melakukan autentikasi itu sendiri, gunakan metode autentikasi alat untuk menentukan token federasi.

Tugas simpul dapat menggunakan paket npm azure-pipelines-tasks-artifacts-common untuk mendapatkan idToken. Lihat contoh kode untuk detail implementasi.

Meminta idToken baru

System.OidcRequestUri Variabel alur dan AZURESUBSCRIPTION_SERVICE_CONNECTION_ID variabel lingkungan yang diekspos dalam AzureCLI@2 tugas dan AzurePowerShell@5 memungkinkan penulis alur untuk mengautentikasi dari skrip mereka sendiri:

PowerShell Az
- task: AzurePowerShell@5
  inputs:
    azureSubscription: 'my-azure-subscription'
    scriptType: inlineScript
    inline: |        
      # Request fresh idToken
      Invoke-RestMethod -Headers @{
                        Authorization  = "Bearer $(System.AccessToken)"
                        'Content-Type' = 'application/json'
                      } `
                      -Uri "${env:SYSTEM_OIDCREQUESTURI}?api-version=7.1&serviceConnectionId=${env:AZURESUBSCRIPTION_SERVICE_CONNECTION_ID}" `
                      -Method Post `
                      | Select-Object -ExpandProperty oidcToken
                      | Set-Variable idToken

    # Fetch current context
    $azContext = Get-AzContext

    # Start new Az session
    Connect-AzAccount -ApplicationId $azContext.Account.Id `
                      -TenantId $azContext.Tenant.Id `
                      -SubscriptionId $azContext.Subscription.Id `
                      -FederatedToken $idToken
Azure CLI
- task: AzureCLI@2
  inputs:
    addSpnToEnvironment: true
    azureSubscription: 'my-azure-subscription'
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      # Request fresh idToken
      OIDC_REQUEST_URL="${SYSTEM_OIDCREQUESTURI}?api-version=7.1&serviceConnectionId=${AZURESUBSCRIPTION_SERVICE_CONNECTION_ID}"
      ARM_OIDC_TOKEN=$(curl -s -H "Content-Length: 0" -H "Content-Type: application/json" -H "Authorization: Bearer $(System.AccessToken)" -X POST $OIDC_REQUEST_URL | jq -r '.oidcToken')

      # Save subscription context
      ARM_SUBSCRIPTION_ID=$(az account show --query id -o tsv)

      # New az-cli session
      az login --service-principal -u $servicePrincipalId --tenant $tenantId --allow-no-subscriptions --federated-token $ARM_OIDC_TOKEN
      az account set --subscription $ARM_SUBSCRIPTION_ID

Coba lagi untuk tugas server

Tugas server yang memanggil sistem eksternal, seperti AzureFunction atau InvokeRESTAPI, terkadang dapat gagal karena kesalahan sementara seperti kelelahan sumber daya komputasi. Sebelumnya, kegagalan tersebut akan menyebabkan seluruh pekerjaan, dan berpotensi alur, gagal.

Untuk meningkatkan ketahanan terhadap kesalahan sementara, kami telah memperkenalkan dukungan untuk retryCountOnTaskFailure properti dalam tugas server. Asumsikan Anda memiliki kode YAML berikut di alur Anda:

- stage: deploy
  jobs:
  - job:
    pool: server
    steps:
    - task: AzureFunction@1
      retryCountOnTaskFailure: 2
      inputs:
        function: 'https://api.fabrikamfiber.com'
        key: $(functionKey)
        method: 'POST'
        waitForCompletion: 'false'

Jika https://api.fabrikamfiber.com mengalami kesalahan sementara, Azure Pipelines akan mencoba kembali permintaan hingga tiga kali (upaya awal ditambah dua percobaan ulang yang ditentukan oleh retryCountOnTaskFailure). Setiap percobaan ulang mencakup periode tunggu yang meningkat. Jumlah maksimum percobaan ulang yang diizinkan adalah 10.

retryCountOnTaskFailure tidak tersedia untuk ManualValidation tugas dan tugas lain yang tidak melibatkan panggilan sistem eksternal.

Tugas yang menggunakan versi runner Node akhir masa pakai untuk menjalankan peringatan

Tugas alur yang mengandalkan versi Node tidak lagi dipertahankan akan mulai menerima peringatan:

Versi <version> tugas TaskName bergantung pada versi Node (10) yang merupakan akhir masa pakai. Hubungi pemilik ekstensi untuk versi tugas yang diperbarui. Pengelola tugas harus meninjau panduan peningkatan Simpul: https://aka.ms/node-runner-guidance

Untuk menekan peringatan ini, Anda dapat mengatur lingkungan atau variabel alur di tingkat alur (pekerjaan) atau tugas. Contohnya:

variables:
  AZP_AGENT_CHECK_IF_TASK_NODE_RUNNER_IS_DEPRECATED: false

DockerCompose@0 menggunakan Docker Compose v2 dalam mode kompatibilitas v1

Docker Compose v1 akan mencapai akhir masa pakainya dan akan dihapus dari Hosted Agents 24 Juli 2024. Kami telah memperbarui tugas DockerCompose@0 untuk menggunakan Docker Compose v2 dalam mode kompatibilitas v1 jika Docker Compose v1 tidak tersedia di agen.

Namun, mode kompatibilitas tidak mengatasi semua masalah kompatibilitas. Lihat Migrasi ke Buat V2. Beberapa pengguna akan membutuhkan lebih banyak waktu untuk memperbarui proyek Docker Compose mereka untuk kompatibilitas Docker Compose v2. Dalam kasus tersebut , ikuti instruksi ini untuk menggunakan tugas DockerComposeV0 dengan docker-compose v1.

CATATAN: Panduan ini didasarkan pada dokumentasi Instal Compose mandiri

Menggunakan docker-compose v1 di Windows

Tambahkan langkah powershell ke alur Anda untuk mengunduh docker-Compose v1.29.2 dan gunakan dengan tugas DockerComposeV0 di Windows:

variables:
    dockerComposePath: C:\docker-compose

steps:
- powershell: |
    mkdir -f $(dockerComposePath)
    # GitHub now requires TLS1.2. In PowerShell, run the following
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    Start-BitsTransfer -Source "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-windows-x86_64.exe" -Destination $(dockerComposePath)\docker-compose.exe
  displayName: Download docker-compose
- task: DockerCompose@0
  inputs:
    containerregistrytype: 'Azure Container Registry'
    dockerComposeFile: '**/docker-compose.yml'
    action: 'Run a Docker Compose command'
    dockerComposeCommand: 'run'
    dockerComposePath: $(dockerComposePath)\docker-compose.exe

Menggunakan docker-compose v1 di Linux

Tambahkan langkah bash ke alur Anda untuk mengunduh Docker-Compose v1.29.2 dan gunakan dengan tugas DockerComposeV0 di Linux:

variables:
    dockerComposePath: /tmp/docker-compose

steps:
- bash: |
    sudo mkdir $(dockerComposePath)
    sudo curl -SL https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64 -o $(dockerComposePath)/docker-compose
    sudo chmod 755 $(dockerComposePath)/docker-compose
  displayName: Download docker-compose
- task: DockerCompose@0
  inputs:
    containerregistrytype: 'Azure Container Registry'
    dockerComposeFile: $(Build.SourcesDirectory)/DockerComposeV0/docker-compose.yml
    action: 'Run a Docker Compose command'
    dockerComposeCommand: 'run'
    dockerComposePath: $(dockerComposePath)/docker-compose

Azure Test Plans

Ekstensi Uji dan Umpan Balik di Manifest V3

Kami sangat senang mengumumkan pembaruan baru untuk ekstensi Pengujian dan Umpan Balik Azure DevOps! Peningkatan ini mentransisikan implementasi kami dari Manifes Versi 2 ke Versi 3, selaras dengan jadwal penghentian Google untuk Manifest V2.

Meskipun fitur inti ekstensi tetap tidak berubah, pembaruan ini meningkatkan keamanan dan performa. Ekstensi yang diperbarui akan diluncurkan secara bertahap ke browser Chrome dan Edge selama beberapa minggu mendatang. Kami akan memantau performa dan umpan balik untuk memastikan transisi yang lancar sebelum memperluas peluncuran berdasarkan hasilnya.

Untuk detail selengkapnya, lihat posting blog terbaru kami tentang pembaruan ini. Uji & Ekstensi Umpan Balik di Manifes V3

Langkah berikutnya

Catatan

Fitur-fitur ini akan diluncurkan selama dua hingga tiga minggu ke depan.

Buka Azure DevOps dan lihat.

Cara memberikan umpan balik

Kami akan senang mendengar apa yang Anda pikirkan tentang fitur-fitur ini. Gunakan menu bantuan untuk melaporkan masalah atau memberikan saran.

Buat saran

Anda juga bisa mendapatkan saran dan pertanyaan yang dijawab oleh komunitas di Stack Overflow.

Terima kasih,

Silviu Andrica