A csapatautomatizálási szabályok általános elérhetősége és továbbfejlesztett AB#-ellenőrzés

Örömmel jelentjük be, hogy általánosan elérhető az Azure Boards App továbbfejlesztett AB#-ellenőrzése a GitHubon és a Team Automation-szabályokban! Javítottuk az AB#-ellenőrzést, hogy értesítést kapjon, ha egy munkaelemre mutató hivatkozás érvénytelen. A Csapatautomatizálási szabályokban most már konfigurálhatja az egyes hátralékszinteket a munkaelemek megnyitásának és bezárásának/feloldásának automatizálására a gyermekelem állapota(i) alapján.

Ezzel a frissítéssel az egyéni CodeQL-lekérdezések támogatását is bevezetjük a Kódkeresésben! Ez lehetővé teszi saját lekérdezések készítését, amelyek a kódbázissal kapcsolatos problémák azonosítására vannak kialakítva.

Részletekért tekintse meg a kibocsátási megjegyzéseket.

GitHub Advanced Security for Azure DevOps

Azure Boards

Azure Pipelines

GitHub Advanced Security for Azure DevOps

Az Egyéni CodeQL-lekérdezések mostantól támogatottak az Azure DevOps GitHub Advanced Security szolgáltatásában

Örömmel jelentjük be az egyéni CodeQL-lekérdezések támogatásának bevezetését a Kódkeresésben! Ez lehetővé teszi a saját, a kódbázisra jellemző problémák azonosítására szabott lekérdezések készítését. Most létrehozhat és közzétehet egyéni lekérdezéseket tartalmazó csomagokat, végrehajthatja ezeket a lekérdezéseket a folyamatokban, és testre szabhatja a szervezet számára lényeges biztonsági rések észlelését.

Az egyéni lekérdezések Azure DevOpshoz készült GitHub Advanced Securityben történő kódvizsgálathoz való használatával kapcsolatos további információkért tekintse meg az Azure DevOps GitHub Advanced Securityre vonatkozó kódvizsgálati riasztásait.

Nagyra értékeljük a bemenetet. Ha bármilyen kérdése vagy visszajelzése van, javasoljuk, hogy vegye fel a kapcsolatot közösségünkkel a Fejlesztői közösségnél.

Azure Boards

GitHub-integráció – Általánosan elérhető a továbbfejlesztett AB#-ellenőrzés

Néhány sprintel ezelőtt bejelentettük, hogy az Azure Boards App továbbfejlesztett AB#-érvényesítési előzetes verziója a GitHubon. Továbbfejlesztettük az alkalmazást, hogy jobban értesítsük a felhasználókat a munkaelem-hivatkozások érvényességéről, így könnyebben észlelhetik és kijavíthatják a problémákat a lekéréses kérelmek egyesítése előtt.

Több hetes tesztelés és visszajelzés után ez a funkció már elérhető a GitHub + Azure Boards integrációt használó összes felhasználó számára.

Screenshots of improved validation.

Ez az első olyan funkció, amelyet a jelenlegi integráció javítása érdekében teszünk. Mindenképpen tekintse meg a nyilvános ütemtervben tervezett többi Azure Boards + GitHub integrációs funkciót .

A csapatautomatizálási szabályok általánosan elérhetők

Örömmel jelentjük be a funkció kiadását az Azure DevOps Service összes ügyfele számára.

Feljegyzés

Ez a funkció a következő két-három hétben jelenik meg. Előfordulhat, hogy 2024 február elejéig nem érhető el a szervezet számára.

Most már konfigurálhatja az egyes hátralékszinteket, hogy automatizálják a munkaelemek megnyitását és bezárását (vagy feloldását) a gyermekelemek állapota alapján. Két fő forgatókönyvet próbálunk megoldani.

  • Egyetlen gyermekelem aktiválása után aktiválja a szülőt.
  • Ha az összes gyermekelem bezárul, zárja be a szülőt (vagy oldja fel).

A beállítások engedélyezéséhez kattintson a csapat hátralékszintű konfigurációjára. Ezután lépjen az Automation-szabályok > lapra , és tekintse meg a hátralékra alkalmazható két különböző szabályt. Az egyes hátralékszintek (követelmények, funkciók, eposzok) a csapat működésétől függően eltérően konfigurálhatók.

Screenshots of team settings.

Ha például egy gyermekfeladat aktív értékre van állítva, a szülő felhasználói történet aktívvá tétele. Ezután, amikor az összes tevékenység befejeződött, állítsa be a felhasználói történetet lezártra.

Gif to demo closing user story.

Erről a funkcióról a dokumentáció és a blogbejegyzés áttekintésével tudhat meg többet.

Ez a funkció a fejlesztői közösség javaslati jegye alapján lett rangsorolásra.

Azure Pipelines

Elavult tevékenységek frissítése január 31-ig

2024. január 31-én megszüntetjük az elavult feladatokat. A feladatokat használó folyamatok azonosításához egy javasolt alternatívát tartalmazó figyelmeztető üzenetet tartalmaztunk. Javasoljuk, hogy 2024. január 31-ig frissítse a folyamatokat egy újabb feladatverzió vagy alternatív verzió használatára.

Screenshot of task-specific deprecation warnings.

Tekintse meg az elavult tevékenységekkel kapcsolatos korábbi közleményeket:

A Microsoft által üzemeltetett ügynökök a PowerShell 7.4-et használják

Január 28-tól minden Microsoft által üzemeltetett ügynök a PowerShell 7.2 LTS-t fogja használni a PowerShell 7.4 LTS-hez. A PowerShell 7.4 és a PowerShell 7.4 általános rendelkezésre állásának újdonságai.

Jegyezze fel a kompatibilitástörő változásokat, és frissítse a szkripteket ennek megfelelően:

Az Új Azure-szolgáltatás kapcsolati titkos kódjai három hónap múlva lejárnak

Az Azure Service Csatlakozás, ahol az Azure DevOps létrehozza a titkos kódot, két év helyett három hónap titkos lejárati idővel rendelkezik.

A titkos kulcsok elforgatására való igény kiküszöbölése érdekében alakítsa át a szolgáltatáskapcsolatot számítási feladatok identitás-összevonásának használatára. Az alábbi példaszkripttel gyorsan konvertálhat több Azure-szolgáltatáskapcsolatot számítási feladat identitás-összevonássá:

#!/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)'"
}

Következő lépések

Feljegyzés

Ezek a funkciók a következő két-három hétben jelennek meg.

Lépjen az Azure DevOpsba, és nézze meg.

Visszajelzés küldése

Szeretnénk hallani, mit gondol ezekről a funkciókról. A súgómenüvel jelentheti a problémát, vagy javaslatot adhat.

Make a suggestion

Tanácsokat és kérdéseket is kaphat a közösség által a Stack Overflow-on.

Köszönettel:

Dan Hellem