Partilhar via


Segurança aprimorada e fluxos de trabalho de Pipeline

Com este sprint, estamos aprimorando seu fluxo de trabalho de DevOps com maior visibilidade de segurança e fluxos de trabalho de pipeline simplificados. O GitHub Advanced Security agora inclui rastreamento detalhado de capacitação para a análise de dependências , análise de código e análise de segredos , oferecendo informações mais detalhadas sobre a segurança da sua organização.

Além disso, temos o prazer de apresentar melhorias focadas no pipeline, incluindo novas funções de expressão YAML e controles expandidos para tarefas de validação manual, permitindo que você crie fluxos de trabalho mais eficientes e seguros.

Confira as notas de versão para obter detalhes.

Segurança Avançada do GitHub para Azure DevOps

Azure Boards:

Azure Repos

Azure Pipelines

Planos de Teste

Segurança Avançada do GitHub para Azure DevOps

Cobertura geral de segurança específica para ferramentas

A visão geral de segurança no GitHub Advanced Security for Azure DevOps agora fornece uma descrição detalhada do estado de habilitação para cada ferramenta de verificação, incluindo a verificação de dependências , a verificação de código e a verificação de segredos . Esse aprimoramento permite que você visualize status de ativação refinados em todos os repositórios em sua organização.

Para obter mais informações, consulte Visão geral da Segurança Avançada.

Azure Boards

Integração do Azure Boards com o GitHub Enterprise Cloud com Residência de Dados (Pré-visualização)

Observação

Esta funcionalidade está atualmente em pré-visualização. Por favor, envie-nos um e-mail se estiver interessado em experimentar a integração do Boards com a GitHub Enterprise Cloud com Data Residency.

O Azure Boards agora oferece suporte à integração com organizações do GitHub Enterprise Cloud que têm a residência de dados habilitada. Esta atualização está alinhada com o anúncio de setembro de 2024 do GitHub introdução da residência de dados para clientes Enterprise Cloud, começando com aqueles na União Europeia (UE).

Para conectar um projeto do Azure Boards à sua organização do GitHub Enterprise Cloud com residência de dados:

  1. Crie uma nova conexão no Azure Boards.
  1. Selecione a opção GitHub Enterprise Cloud com a opção de residência dos dados.

Azure Repos

Checkout esparso para Azure Repos

O comando git sparse-checkout agora é suportado na tarefa de checkout do YAML, juntamente com o filtro de clone parcial , para melhorar o desempenho de checkout do repositório. Você pode usar as propriedades sparseCheckoutDirectories e sparseCheckoutPatterns.

A configuração sparseCheckoutDirectories ativa o modo cone, em que o processo de finalização utiliza a correspondência de diretórios. Como alternativa, você pode definir sparseCheckoutPatterns que aciona o modo sem cone, permitindo uma correspondência de padrões mais complexa.

Se ambas as propriedades estiverem definidas, o agente inicializará o modo cone com correspondência de diretório. Se nenhuma das propriedades for especificada na tarefa de checkout, o processo de checkout esparso será desativado. Qualquer problema encontrado durante a execução do comando resulta na falha da tarefa de check-out.

Exemplo de YAML para o modo de seleção esparsa de cone:

    checkout: repo
    sparseCheckoutDirectories: src

Exemplo de YAML para verificação esparsa no modo não cone:


   checkout: repo
   sparseCheckoutPatterns: /* !/img 

Importante

O recurso de checkout disperso requer o agente v3.248.0 (v4.248.0 para .NET 8) ou versões posteriores.

Você pode encontrar o agente na página de lançamentos .

Tornar as políticas de recompra cruzada sensíveis a maiúsculas e minúsculas

Anteriormente, a visualização do candidato a ramificação para políticas de substituição cruzada exibia os resultados de maneira que não diferenciava maiúsculas de minúsculas, apesar da correspondência de ramificação diferenciar maiúsculas de minúsculas. Essa inconsistência criou um potencial desalinhamento, pois pode parecer que certos ramos estavam protegidos quando não estavam. Para resolver esse problema, atualizamos a visualização do padrão de ramificação para alinhar com o comportamento que diferencia maiúsculas de minúsculas do aplicativo de política.

Anteriormente:

Depois:

Azure Pipelines

Novas funções de expressão de pipeline

As funções de expressão de pipeline permitem que você escreva pipelines YAML poderosos. Neste sprint, introduzimos duas novas funções:

  • iif(condition, value_when_true, value_when_false) que retorna value_when_true quando condition é avaliado como true ou value_when_false, caso contrário

  • trim(string) que retorna uma nova cadeia de caracteres na qual os espaços em branco no início e no final da cadeia de caracteres são removidos

Por exemplo, você pode usar a função iif para selecionar dinamicamente um pool para executar seu pipeline. Se você quiser criar solicitações pull usando o pool de Pipelines do Azure, mas todas as outras execuções devem usar um pool de DevOps gerenciado, você pode escrever o seguinte pipeline.

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'

Você pode usar a função trim para tornar seu YAML mais resiliente à entrada do usuário. Por exemplo, no pipeline a seguir, usamos a função trim para garantir que o nome da fase não comece com espaços em branco.

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)}}

Aprimoramentos na tarefa ManualValidation

A tarefa ManualValidation permite-lhe pausar a execução de um pipeline e aguardar por intervenção manual. Um cenário para usar essa tarefa é o teste manual.

Para aumentar a segurança do seu pipeline, você pode querer restringir quem pode concluir a tarefa e retomar a execução do pipeline. Para isso, estamos introduzindo uma nova versão da tarefa que fornece dois parâmetros adicionais:

  • approvers: restringir quem pode concluir a tarefa a um conjunto predefinido de usuários / grupos de segurança / equipes

  • allowApproversToApproveTheirOwnRuns: Restringir o usuário que enfileirou a execução do pipeline de retomá-lo

Por exemplo, o seguinte trecho de YAML restringe a capacidade de retomar a execução do pipeline aos membros do grupo Release Approvers, mas não ao utilizador que iniciou a execução do pipeline.

- task: ManualValidation@1
  inputs:
    notifyUsers: 'Release Approvers'
    approvers: 'Release Approvers'
    allowApproversToApproveTheirOwnRuns: false

Na propriedade approvers, você pode usar os seguintes valores (separados por vírgula):

  • Endereço de e-mail,
  • Grupo de Permissões
  • Equipa do Projeto
  • [Nome do Projeto][Grupo de Permissão],
  • [Org][Grupo de Permissão],
  • [Nome do Projeto][Equipa do Projeto]

Planos de Teste

Correções de bugs dos Planos de Teste do Azure

Com este sprint, fizemos atualizações nos Planos de Teste do Azure para resolver vários bugs e melhorar a usabilidade. Aqui está o que foi corrigido:

  • Resultados de etapas compartilhadas visíveis: Corrigido um bug em que os resultados de etapas compartilhadas não apareciam no editor de consultas ao acessar casos de teste no New Boards Hub.

  • Sessões melhoradas no modo de partes interessadas: Resolvido um problema na extensão de teste e feedback que impedia os utilizadores com acesso de partes interessadas de iniciarem as sessões.

  • Cópia melhorada do plano de teste: Corrigido um problema em que os requisitos eram duplicados ao copiar um plano de teste usando a opção "Referenciar Casos de Teste Existentes".

Próximos passos

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 feedback

Gostaríamos muito de ouvir o que você pensa sobre esses recursos. Use o menu Ajuda para relatar um problema ou fornecer uma sugestão.

Faça uma sugestão

Você também pode obter conselhos e suas perguntas respondidas pela comunidade em Stack Overflow.

Obrigado;

Silviu Andrica