Sicurezza avanzata e flussi di lavoro della pipeline
Con questo sprint si sta migliorando il flusso di lavoro DevOps con maggiore visibilità sulla sicurezza e flussi di lavoro della pipeline semplificati. GitHub Advanced Security include ora il rilevamento dettagliato dell'abilitazione per analisi delle dipendenze, l'analisi del codicee l'analisi dei segreti, offrendo informazioni più approfondite sulla copertura della sicurezza dell'organizzazione.
Inoltre, siamo lieti di introdurre miglioramenti incentrati sulla pipeline, tra cui nuove funzioni di espressione YAML e controlli espansi per le attività di convalida manuale, consentendo di creare flussi di lavoro più efficienti e sicuri.
Consulta le note sulla versione per dettagli.
Sicurezza avanzata di GitHub per Azure DevOps
Azure Boards:
Azure Repos
- Controllo di versione sparsa per Azure Repos
- Rendere i criteri tra repository sensibili al maiuscolo/minuscolo
Azure Pipelines
Piani di test
Sicurezza avanzata di GitHub per Azure DevOps
Copertura della panoramica della sicurezza specifica degli strumenti
La panoramica della sicurezza in GitHub Advanced Security per Azure DevOps offre ora una suddivisione dettagliata dello stato di abilitazione per ogni strumento di analisi, tra cui l'analisi delle dipendenze, l'analisi del codicee l'analisi dei segreti . Questo miglioramento consente di visualizzare gli stati di abilitazione con granularità fine in tutti i repository dell'organizzazione.
Per ulteriori informazioni, vedere la Panoramica della Sicurezza di per Sicurezza Avanzata.
Azure Boards
Integrazione di Azure Boards con GitHub Enterprise Cloud con residenza dei dati (anteprima)
Nota
Questa funzionalità è attualmente in anteprima. Se siete interessati a provare l'integrazione di Boards con GitHub Enterprise Cloud con la residenza dei dati, mandateci un'email.
Azure Boards supporta ora l'integrazione con le organizzazioni GitHub Enterprise Cloud con residenza dei dati abilitata. Questo aggiornamento è allineato con annuncio di settembre 2024 di GitHub l'introduzione della residenza dei dati per i clienti di Enterprise Cloud, a partire da quelli nell'Unione europea (UE).
Per connettere un progetto di Azure Boards all'organizzazione GitHub Enterprise Cloud con residenza dei dati:
- Creare una nuova connessione in Azure Boards.
- Seleziona l'opzione GitHub Enterprise Cloud, con residenza dei dati.
Azure Repos
Estrazione di tipo sparse per Azure Repos
Il comando git sparse-checkout è ora supportato nell'attività di estrazione YAML, insieme al filtro di clonazione parziale , per migliorare le prestazioni di estrazione del repository. È possibile usare le proprietà sparseCheckoutDirectories
e sparseCheckoutPatterns
.
L'impostazione sparseCheckoutDirectories
abilita la modalità cono, in cui il processo di checkout usa la corrispondenza delle directory. In alternativa, è possibile impostare sparseCheckoutPatterns
che attiva la modalità senza cono, consentendo corrispondenza di modelli più complessi.
Se entrambe le proprietà sono impostate, l'agente inizializza la modalità cono con l'allineamento alla directory. Se nessuna delle proprietà è specificata nell'attività di estrazione, il processo di estrazione di tipo sparse è disabilitato. Eventuali problemi riscontrati durante l'esecuzione del comando determinano il fallimento dell'attività di checkout.
Esempio YAML per la modalità "sparse checkout cone"
checkout: repo
sparseCheckoutDirectories: src
Esempio YAML per la modalità di estrazione di tipo sparse non cono:
checkout: repo
sparseCheckoutPatterns: /* !/img
Importante
La funzionalità sparse checkout richiede l'agente versione 3.248.0 (v4.248.0 per .NET 8) o versioni successive.
È possibile trovare l'agente nella pagina di rilascio delle versioni .
Fare in modo che i criteri tra repository facciano distinzione tra maiuscole e minuscole
In precedenza, l'anteprima del candidato ramo per i criteri trasversali tra repository visualizzava i risultati senza distinzione tra maiuscole e minuscole, nonostante la corrispondenza dei rami fosse sensibile alle maiuscole. Questa incoerenza ha creato un potenziale disallineamento, in quanto sembrava che alcuni rami fossero protetti quando non lo erano. Per risolvere questo problema, è stata aggiornata l'anteprima del modello di ramo per allinearsi al comportamento con distinzione tra maiuscole e minuscole dell'applicazione dei criteri.
Precedentemente:
Dopo:
Azure Pipelines
Nuove funzioni di espressione della pipeline
Le funzioni di espressione della pipeline consentono di scrivere pipeline YAML avanzate. In questo sprint sono state introdotte due nuove funzioni:
iif(condition, value_when_true, value_when_false)
che restituiscevalue_when_true
quandocondition
valutatrue
ovalue_when_false
, altrimentitrim(string)
che restituisce una nuova stringa in cui gli spazi vuoti all'inizio e alla fine della stringa vengono rimossi
Ad esempio, è possibile usare la funzione iif
per selezionare dinamicamente un pool per l'esecuzione della pipeline. Se si vogliono compilare richieste pull usando il pool di Azure Pipelines, ma tutte le altre esecuzioni devono usare un pool DevOps gestito, è possibile scrivere la pipeline seguente.
variables:
poolToUse: ${{ iif(eq(variables['Build.Reason'], 'PullRequest'), 'Azure Pipelines', 'ManagedDevOpsPool')}}
stages:
- stage: build
pool: ${{variables.poolToUse}}
jobs:
- job:
steps:
- task: DotNetCoreCLI@2
inputs:
command: 'build'
È possibile usare la funzione trim
per rendere il file YAML più resiliente all'input dell'utente. Nella pipeline seguente, ad esempio, viene usata la funzione trim
per assicurarsi che il nome della fase non inizi con spazi vuoti.
parameters:
- name: regions
type: string
default: ' wus1, wus2, wus3,wus4'
stages:
- ${{ each region in split(parameters.regions, ',')}}:
- stage: stage_${{trim(region)}}
displayName: Deploy to ${{trim(region)}}
jobs:
- job: deploy
steps:
- script: ./deploy.sh ${{trim(region)}}
Miglioramenti all'attività ManualValidation
L'attività ManualValidation ti consente di sospendere l'esecuzione di una pipeline e di attendere un intervento manuale. Uno scenario per l'uso di questa attività è il test manuale.
Per aumentare la sicurezza della tua pipeline, potresti voler limitare chi può completare l'attività e riprendere la corsa della pipeline. A questo scopo, verrà introduttiva una nuova versione dell'attività che fornisce due parametri aggiuntivi:
approvers
: limitare chi può completare l'attività a un set predefinito di utenti/gruppi di sicurezza/teamallowApproversToApproveTheirOwnRuns
: impedire all'utente che ha accodato l'esecuzione della pipeline di riprenderla
Ad esempio, il frammento YAML seguente limita il set di persone che possono riprendere l'esecuzione della pipeline ai membri del gruppo Release Approvers, ma non dall'utente che ha attivato l'esecuzione della pipeline.
- task: ManualValidation@1
inputs:
notifyUsers: 'Release Approvers'
approvers: 'Release Approvers'
allowApproversToApproveTheirOwnRuns: false
Nella proprietà approvers
è possibile usare i valori seguenti (delimitati da virgole):
- Indirizzo email
- Gruppo di autorizzazioni,
- Gruppo di progetto
- [ProjectName][Gruppo di autorizzazioni],
- [Organizzazione][Gruppo di autorizzazioni],
- [NomeProgetto][Team di Progetto]
Piani di test
Correzioni di bug di Piani di test di Azure
Con questo sprint sono stati apportati aggiornamenti ai piani di test di Azure per risolvere diversi bug e migliorare l'usabilità. Ecco cosa è stato risolto:
Risultati dei passaggi condivisi visibili: Corretto un bug in cui i risultati dei passaggi condivisi non venivano visualizzati nell'editor di query quando si accede ai test case nel New Boards Hub.
Sessioni in modalità stakeholder migliorate: Risolto un problema nell'estensione test e feedback che impediva agli utenti con accesso stakeholder di avviare le sessioni.
Copia del piano di test di Cleaner. È stato risolto un problema a causa del quale i requisiti venivano duplicati durante la copia di un piano di test utilizzando l'opzione "Riferimento a casi di test esistenti".
Passaggi successivi
Nota
Queste funzionalità verranno implementate nelle prossime due o tre settimane.
Passare ad Azure DevOps e dare un'occhiata.
Come fornire commenti e suggerimenti
Ci piacerebbe sentire ciò che pensi a queste funzionalità. Usare il menu Guida per segnalare un problema o fornire un suggerimento.
È anche possibile ottenere consigli e risposte alle domande della community su Stack Overflow.
Grazie
Silviu Andrica