Ketersediaan umum aturan otomatisasi Tim dan validasi AB# yang ditingkatkan
Kami sangat senang mengumumkan bahwa validasi AB# yang ditingkatkan oleh Aplikasi Azure Boards di GitHub dan aturan Team Automation umumnya tersedia! Kami meningkatkan validasi AB# sehingga Anda bisa mendapatkan pemberitahuan ketika tautan ke item kerja tidak valid. Di Aturan Otomatisasi Tim, Anda sekarang dapat mengonfigurasi setiap tingkat backlog untuk mengotomatiskan pembukaan dan penutupan/penyelesaian item kerja berdasarkan status item anak.
Dengan pembaruan ini, kami juga memperkenalkan dukungan untuk kueri CodeQL kustom dalam Pemindaian kode! Ini akan memungkinkan Anda membuat kueri Anda sendiri yang disesuaikan untuk mengidentifikasi masalah khusus untuk basis kode Anda.
Lihat catatan rilis untuk detailnya.
GitHub Advanced Security untuk Azure DevOps
Azure Boards
- Integrasi GitHub - Validasi AB# yang ditingkatkan umumnya tersedia
- Aturan Team Automation umumnya tersedia
Azure Pipelines
- Memperbarui tugas yang tidak digunakan lagi sebelum 31 Januari
- Agen yang dihosting Microsoft menggunakan PowerShell 7.4
- Rahasia koneksi layanan Azure baru kedaluwarsa dalam tiga bulan
GitHub Advanced Security untuk Azure DevOps
Kueri CodeQL kustom sekarang didukung di GitHub Advanced Security untuk Azure DevOps
Kami sangat senang mengumumkan pengenalan dukungan untuk kueri CodeQL kustom dalam Pemindaian kode! Ini memungkinkan Anda membuat kueri Anda sendiri yang disesuaikan untuk mengidentifikasi masalah khusus untuk basis kode Anda. Sekarang, Anda dapat membuat dan menerbitkan paket yang berisi kueri kustom, menjalankan kueri ini di alur Anda, dan menyesuaikan deteksi kerentanan yang berkaitan dengan organisasi Anda.
Untuk informasi selengkapnya tentang menggunakan kueri kustom untuk pemindaian kode di GitHub Advanced Security untuk Azure DevOps, lihat Pemberitahuan pemindaian kode untuk GitHub Advanced Security untuk Azure DevOps.
Kami menghargai input Anda. Jika Anda memiliki pertanyaan atau umpan balik, kami mendorong Anda untuk terlibat dengan komunitas kami di Komunitas Pengembang.
Azure Boards
Integrasi GitHub - Validasi AB# yang ditingkatkan umumnya tersedia
Beberapa sprint yang lalu kami mengumumkan pratinjau untuk peningkatan validasi AB# oleh Aplikasi Azure Boards di GitHub. Kami telah meningkatkan aplikasi untuk memberi tahu pengguna dengan lebih baik tentang validitas tautan item kerja, membantu mereka menemukan dan memperbaiki masalah apa pun sebelum menggabungkan Permintaan Pull.
Setelah beberapa minggu pengujian dan umpan balik, fitur ini sekarang tersedia untuk semua pengguna menggunakan integrasi GitHub + Azure Boards.
Ini adalah fitur pertama dari beberapa fitur yang kami buat untuk meningkatkan integrasi saat ini. Pastikan untuk memeriksa fitur integrasi Azure Boards + GitHub lainnya yang telah kami rencanakan pada peta jalan publik.
Penting
Mulai 6/8/2024, Aplikasi Azure Boards di GitHub tidak akan lagi memvalidasi tautan AB#. Anda masih dapat menggunakan AB#
sintaks untuk menautkan item kerja dalam permintaan pull GitHub, penerapan, dan masalah seperti yang Anda bisa sebelum perubahan ini.
Aturan Automasi Tim umumnya tersedia
Kami dengan senang hati mengumumkan rilis fitur ini kepada semua pelanggan Azure DevOps Service.
Catatan
Fitur ini akan diluncurkan selama dua hingga tiga minggu ke depan. Ini mungkin tidak tersedia untuk organisasi Anda hingga awal Februari 2024.
Anda sekarang dapat mengonfigurasi setiap tingkat backlog untuk mengotomatiskan pembukaan dan penutupan (atau penyelesaian) item kerja berdasarkan status item anak. Ada dua skenario utama yang kami coba pecahkan.
- Saat satu item anak diaktifkan, aktifkan induk.
- Ketika semua item anak ditutup, tutup induk (atau atasi).
Untuk mengaktifkan pengaturan ini, klik konfigurasi tingkat backlog untuk tim Anda. Kemudian buka tab Aturan Otomatisasi > untuk melihat dua aturan berbeda yang dapat Anda terapkan ke backlog Anda. Setiap tingkat backlog (persyaratan, fitur, epik) dapat dikonfigurasi secara berbeda tergantung pada cara kerja tim Anda.
Misalnya, ketika tugas turunan diatur ke Aktif, buat Cerita Pengguna induk aktif. Kemudian, ketika semua Tugas selesai, atur Cerita Pengguna ke Ditutup.
Anda dapat mempelajari lebih lanjut tentang fitur ini dengan meninjau dokumentasi dan posting blog ini.
Fitur ini diprioritaskan berdasarkan tiket saran Komunitas Pengembang ini.
Azure Pipelines
Memperbarui tugas yang tidak digunakan lagi sebelum 31 Januari
Kami menghentikan tugas yang tidak digunakan lagi pada 31 Januari 2024. Untuk membantu Anda mengidentifikasi alur yang menggunakan tugas-tugas ini, kami telah menyertakan pesan peringatan dengan alternatif yang disarankan. Kami mendorong Anda untuk memperbarui alur Anda untuk menggunakan versi tugas yang lebih baru atau alternatif sebelum 31 Januari 2024.
Lihat pengumuman sebelumnya yang terkait dengan tugas yang tidak digunakan lagi:
- Mengumumkan penghentian tugas yang tidak digunakan lagi
- Pengumuman untuk tugas alur NuGet Restore v1 dan NuGet Installer v0
Agen yang dihosting Microsoft menggunakan PowerShell 7.4
Semua agen yang dihosting Microsoft akan mulai menggunakan PowerShell 7.2 LTS ke PowerShell 7.4 LTS mulai 28 Januari. Lihat Apa yang Baru di Ketersediaan Umum PowerShell 7.4 dan PowerShell 7.4.
Catat perubahan yang melanggar dan perbarui skrip Anda dengan sesuai:
- Melanggar perubahan antara PowerShell 7.3 & 7.4 LTS
- Melanggar perubahan antara PowerShell 7.2 LTS & 7.3
- Perilaku penguraian argumen yang diperbarui dikontrol melalui
$PSNativeCommandArgumentPassing
. Contoh skrip di bawah ini memberlakukan perilaku yang sama di seluruh Linux, macOS & Windows dengan mengatur$PSNativeCommandArgumentPassing
secara eksplisit.
Rahasia koneksi layanan Azure baru kedaluwarsa dalam tiga bulan
Koneksi Layanan Azure tempat Azure DevOps membuat rahasia, akan memiliki kedaluwarsa rahasia tiga bulan alih-alih dua tahun.
Untuk menghilangkan kebutuhan untuk memutar rahasia, konversikan koneksi layanan Anda untuk menggunakan federasi identitas Beban Kerja sebagai gantinya. Anda dapat menggunakan contoh skrip di bawah ini untuk mengonversi beberapa koneksi layanan Azure dengan cepat ke federasi identitas Beban Kerja:
#!/usr/bin/env pwsh
<#
.SYNOPSIS
Convert multiple Azure Resource Manager service connection(s) to use Workload identity federation
.LINK
https://aka.ms/azdo-rm-workload-identity-conversion
.EXAMPLE
./convert_azurerm_service_connection_to_oidc_simple.ps1 -Project <project> -OrganizationUrl https://dev.azure.com/<organization>
#>
#Requires -Version 7.3
param (
[parameter(Mandatory=$true,HelpMessage="Name of the Azure DevOps Project")]
[string]
[ValidateNotNullOrEmpty()]
$Project,
[parameter(Mandatory=$true,HelpMessage="Url of the Azure DevOps Organization")]
[uri]
[ValidateNotNullOrEmpty()]
$OrganizationUrl
)
$apiVersion = "7.1"
$PSNativeCommandArgumentPassing = "Standard"
#-----------------------------------------------------------
# Log in to Azure
$azdoResource = "499b84ac-1321-427f-aa17-267ca6975798"
az login --allow-no-subscriptions --scope ${azdoResource}/.default
$OrganizationUrl = $OrganizationUrl.ToString().Trim('/')
#-----------------------------------------------------------
# Retrieve the service connection
$getApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints?authSchemes=ServicePrincipal&type=azurerm&includeFailed=false&includeDetails=true&api-version=${apiVersion}"
az rest --resource $azdoResource -u "${getApiUrl} " -m GET --query "sort_by(value[?authorization.scheme=='ServicePrincipal' && data.creationMode=='Automatic' && !(isShared && serviceEndpointProjectReferences[0].projectReference.name!='${Project}')],&name)" -o json `
| Tee-Object -Variable rawResponse | ConvertFrom-Json | Tee-Object -Variable serviceEndpoints | Format-List | Out-String | Write-Debug
if (!$serviceEndpoints -or ($serviceEndpoints.count-eq 0)) {
Write-Warning "No convertible service connections found"
exit 1
}
foreach ($serviceEndpoint in $serviceEndpoints) {
# Prompt user to confirm conversion
$choices = @(
[System.Management.Automation.Host.ChoiceDescription]::new("&Convert", "Converting service connection '$($serviceEndpoint.name)'...")
[System.Management.Automation.Host.ChoiceDescription]::new("&Skip", "Skipping service connection '$($serviceEndpoint.name)'...")
[System.Management.Automation.Host.ChoiceDescription]::new("&Exit", "Exit script")
)
$prompt = $serviceEndpoint.isShared ? "Convert shared service connection '$($serviceEndpoint.name)'?" : "Convert service connection '$($serviceEndpoint.name)'?"
$decision = $Host.UI.PromptForChoice([string]::Empty, $prompt, $choices, $serviceEndpoint.isShared ? 1 : 0)
if ($decision -eq 0) {
Write-Host "$($choices[$decision].HelpMessage)"
} elseif ($decision -eq 1) {
Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
continue
} elseif ($decision -ge 2) {
Write-Host "$($PSStyle.Formatting.Warning)$($choices[$decision].HelpMessage)$($PSStyle.Reset)"
exit
}
# Prepare request body
$serviceEndpoint.authorization.scheme = "WorkloadIdentityFederation"
$serviceEndpoint.data.PSObject.Properties.Remove('revertSchemeDeadline')
$serviceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
$serviceEndpoint | ConvertTo-Json -Depth 4 -Compress | Set-Variable serviceEndpointRequest
$putApiUrl = "${OrganizationUrl}/${Project}/_apis/serviceendpoint/endpoints/$($serviceEndpoint.id)?operation=ConvertAuthenticationScheme&api-version=${apiVersion}"
# Convert service connection
az rest -u "${putApiUrl} " -m PUT -b $serviceEndpointRequest --headers content-type=application/json --resource $azdoResource -o json `
| ConvertFrom-Json | Set-Variable updatedServiceEndpoint
$updatedServiceEndpoint | ConvertTo-Json -Depth 4 | Write-Debug
if (!$updatedServiceEndpoint) {
Write-Debug "Empty response"
Write-Error "Failed to convert service connection '$($serviceEndpoint.name)'"
exit 1
}
Write-Host "Successfully converted service connection '$($serviceEndpoint.name)'"
}
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.
Anda juga bisa mendapatkan saran dan pertanyaan yang dijawab oleh komunitas di Stack Overflow.
Terima kasih,
Dan Hellem