Disponibilidade geral de regras de automação de equipe e validação AB# aprimorada
Temos o prazer de anunciar que a validação AB# aprimorada pelo aplicativo Azure Boards no GitHub e as regras de Automação de Equipe estão em disponibilidade geral! Melhoramos a validação AB# para que você possa ser notificado quando um link para um item de trabalho não for válido. Nas Regras de Automação de Equipe, agora você pode configurar cada nível de lista de pendências para automatizar a abertura e o fechamento/resolução de itens de trabalho com base nos estados do item filho.
Com essa atualização, também introduzimos suporte para consultas CodeQL personalizadas na Varredura de código! Isso permitirá que você crie suas próprias consultas personalizadas para identificar problemas específicos da sua base de código.
Confira as notas sobre a versão para obter detalhes.
GitHub Advanced Security para Azure DevOps
Azure Boards
- Integração com o GitHub – a validação aprimorada do AB# está em disponibilidade geral
- As regras de Automação de Equipe estão em disponibilidade geral
Azure Pipelines
- Atualizar tarefas obsoletas antes de 31 de janeiro
- Os agentes hospedados da Microsoft usam o PowerShell 7.4
- Novos segredos de conexão de serviço do Azure expiram em três meses
GitHub Advanced Security para Azure DevOps
Consultas personalizadas do CodeQL agora com suporte no GitHub Advanced Security para Azure DevOps
Temos o prazer de anunciar a introdução do suporte para consultas CodeQL personalizadas na Varredura de código! Isso permite que você crie suas próprias consultas personalizadas para identificar problemas específicos da sua base de código. Agora, você pode criar e publicar pacotes contendo consultas personalizadas, executar essas consultas em seus pipelines e personalizar a detecção de vulnerabilidades pertinentes à sua organização.
Para obter mais informações sobre como utilizar consultas personalizadas para Verificação de código no GitHub Advanced Security para Azure DevOps, consulte Alertas de Verificação de código para GitHub Advanced Security para Azure DevOps.
Valorizamos sua contribuição. Se você tiver dúvidas ou comentários, recomendamos que você se envolva com nossa comunidade na Comunidade de desenvolvedores.
Azure Boards
Integração com o GitHub – a validação aprimorada do AB# está em disponibilidade geral
Alguns sprints atrás, anunciamos a versão prévia para validação aprimorada de AB# pelo aplicativo Azure Boards no GitHub. Aprimoramos o aplicativo para notificar melhor os usuários sobre a validade dos links de item de trabalho, ajudando-os a identificar e corrigir quaisquer problemas antes de mesclar uma Solicitação de Pull.
Após várias semanas de testes e comentários, esse recurso agora está disponível para todos os usuários que usam a integração GitHub + Azure Boards.
Este é o primeiro de vários recursos que estamos fazendo para melhorar a integração atual. Certifique-se de verificar os outros recursos de integração do Azure Boards + GitHub que planejamos no roteiro público.
Importante
A partir de 06/08/2024, o aplicativo Azure Boards no GitHub não validará mais links AB#. Você ainda pode usar a AB#
sintaxe para vincular itens de trabalho em suas solicitações de pull, confirmações e problemas do GitHub como fazia antes dessa alteração.
As regras de automação de equipe estão em disponibilidade geral
Temos o prazer de anunciar o lançamento desse recurso para todos os clientes do Azure DevOps Service.
Observação
Esse recurso será lançado nas próximas duas a três semanas. Ele pode não estar disponível para sua organização até o início de fevereiro de 2024.
Agora você pode configurar cada nível de lista de pendências para automatizar a abertura e o fechamento (ou resolução) de itens de trabalho com base no estado dos itens filho. Existem dois cenários principais que estamos tentando resolver.
- Quando um único item filho é ativado, ative o pai.
- Quando todos os itens filho estiverem fechados, feche o pai (ou resolva-o).
Para habilitar essas configurações, clique na configuração de nível de lista de pendências para sua equipe. Em seguida, vá para a guia Regras de Automação > para ver as duas regras diferentes que você pode aplicar à sua lista de pendências. Cada nível de lista de pendências (requisitos, recursos, épicos) pode ser configurado de forma diferente, dependendo de como sua equipe deseja trabalhar.
Por exemplo, quando qualquer tarefa secundária estiver definida como Ativa, ative a história de usuário pai. Em seguida, quando todas as tarefas forem concluídas, defina a história do usuário como Fechada.
Você pode saber mais sobre esse recurso revisando a documentação e esta postagem no blog.
Esse recurso foi priorizado com base neste tíquete de sugestão da Comunidade de Desenvolvedores.
Azure Pipelines
Atualizar tarefas obsoletas antes de 31 de janeiro
Estamos desativando tarefas preteridas em 31 de janeiro de 2024. Para ajudá-lo a identificar os pipelines que estão usando essas tarefas, incluímos uma mensagem de aviso com uma alternativa sugerida. Incentivamos você a atualizar seus pipelines para usar uma versão de tarefa mais recente ou uma alternativa antes de 31 de janeiro de 2024.
Veja os anúncios anteriores relacionados a tarefas preteridas:
- Anunciando a desativação de tarefas preteridas
- Anúncio para tarefas de pipeline da Restauração do NuGet v1 e do Instalador do NuGet v0
Os agentes hospedados da Microsoft usam o PowerShell 7.4
Todos os agentes hospedados da Microsoft começarão a usar o PowerShell 7.2 LTS para o PowerShell 7.4 LTS a partir de 28 de janeiro. Confira Novidades no PowerShell 7.4 e na disponibilidade geral do PowerShell 7.4.
Anote as alterações significativas e atualize seus scripts de acordo:
- Alterações significativas entre o PowerShell 7.3 e 7.4 LTS
- Alterações significativas entre o PowerShell 7.2 LTS e 7.3
- Atualização do comportamento de análise de argumentos controlado por meio de
$PSNativeCommandArgumentPassing
. O script de exemplo abaixo impõe o mesmo comportamento no Linux, macOS e Windows, definindo$PSNativeCommandArgumentPassing
explicitamente.
Novos segredos de conexão de serviço do Azure expiram em três meses
As Conexões de Serviço do Azure em que o Azure DevOps cria o segredo terão uma expiração secreta de três meses em vez de dois anos.
Para eliminar a necessidade de alternar segredos, converta sua conexão de serviço para usar a federação de identidades da carga de trabalho. Você pode usar o script de exemplo abaixo para converter rapidamente várias conexões de serviço do Azure em federação de identidade de carga de trabalho:
#!/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)'"
}
Próximas etapas
Observação
Esses recursos serão lançados nas próximas duas a três semanas.
Vá até o Azure DevOps e dê uma olhada.
Como fornecer comentários
Adoraríamos ouvir o que você pensa sobre esses recursos. Use o menu de ajuda para relatar um problema ou fornecer uma sugestão.
Você também pode obter conselhos e suas perguntas respondidas pela comunidade no Stack Overflow.
Obrigada,
Dan Hellem