DEV Community

Cover image for Importação de falhas para o Azure Boards
Ivo Dias for M3Corp

Posted on • Edited on

Importação de falhas para o Azure Boards

Antes de começarmos, vamos precisar ter as tasks da Veracode disponíveis, então caso não saiba como fazer isso, clique aqui.

A ideia desse artigo é mostrar como podemos criar um pipeline que vai pegar os resultados de um determinado projeto e importar para o Boards, sendo esse um template personalizado.

Caso utilize o template padrão do Boards, o processo vai ser quase o mesmo, bastando ignorar a etapa de configuração das variáveis de ajuste.

Configurando a task do Boards
Vamos fazer a autenticação com uma Service Connection.
O nome do perfil de Aplicação que queremos importar os resultados vai ser passado por meio de uma variável, para facilitar o processo de reaproveitar esse pipeline.
Em scanType utilizamos a opção que mostra todos os tipos, já que queremos importar os resultados de todas as análises que foram feitas nesse projeto e em importType selecionamos para trazer apenas as falhas que não foram tratadas e violam a política.
Em area passamos um valor do Azure para colocar as falhas na mesma seção onde o projeto está armazenado nele.

- task: Veracode Flaw Importer@3
  inputs:
    ConnectionDetailsSelection: 'Endpoint'
    AnalysisService: 'Veracode'
    veracodeAppProfile: '$(veracodeAppProfile)'
    scanType: 'Dynamic, Static, and Software Composition Analysis'
    importType: 'All Unmitigated Flaws Violating Policy'
    workItemType: 'Issue'
    area: '$(system.teamProject)'
    overwriteAreaPathInWorkItemsOnImport: true
    flawImportLimit: '1000'
  displayName: 'Veracode importando falhas'
Enter fullscreen mode Exit fullscreen mode

Para o caso de utilizar um template personalizado, vamos precisar criar algumas variáveis adicionais, elas vão permitir que o Boards entenda os resultados da Veracode. Vamos colocar alguns valores padrões, mas caso seja preciso, pode alterar esses valores:

variables:
  enableCustomProcessTemplate: true
  customWorkItemType: "Issue"
  customPTActiveStatus: "Working"
  customPTNewStatus: "New"
  customPTResolvedStatus: "Fixed"
  customPTCloseStatus: "Closed"
Enter fullscreen mode Exit fullscreen mode

Com esses valores mapeados, a importação pode funcionar em templates personalizados. Pode saber mais aqui.

Pipeline Completo
No final, nosso YAML vai ficar dessa forma:

trigger:
- master

pool:
  vmImage: ubuntu-latest

variables:
  veracodeAppProfile: $(Build.Repository.Name)
  enableCustomProcessTemplate: true
  customWorkItemType: "Issue"
  customPTActiveStatus: "Working"
  customPTNewStatus: "New"
  customPTResolvedStatus: "Fixed"
  customPTCloseStatus: "Closed"

steps:
- task: Veracode Flaw Importer@3
  inputs:
    ConnectionDetailsSelection: 'Endpoint'
    AnalysisService: 'Veracode'
    veracodeAppProfile: '$(veracodeAppProfile)'
    sandboxName: 
    scanType: 'Dynamic, Static, and Software Composition Analysis'
    importType: 'All Unmitigated Flaws Violating Policy'
    workItemType: 'Issue'
    area: '$(system.teamProject)'
    overwriteAreaPathInWorkItemsOnImport: true
    flawImportLimit: '1000'
  displayName: 'Veracode importando falhas'
Enter fullscreen mode Exit fullscreen mode

Para o nome do projeto, utilizei uma variável que pega o nome do repositório. Assim caso os pipelines de verificação estejam usando esse mesmo parâmetro como perfil de aplicação, vamos ter de uma forma dinâmica a consulta sem maiores personalizações. Mas, caso queira informar o nome diretamente, sem problemas.

E se eu estiver utilizando Sandbox??
Caso queira obter o resultado de uma Sandbox, basta adicionar como parâmetro o nome dela. Como exemplo, vou importar os resultados de uma Sandbox que criei para o meu ambiente de HMG:

- task: Veracode Flaw Importer@3
  inputs:
    ConnectionDetailsSelection: 'Endpoint'
    AnalysisService: 'Veracode'
    veracodeAppProfile: '$(veracodeAppProfile)'
    sandboxName: 'HMG'
    scanType: 'Dynamic, Static, and Software Composition Analysis'
    importType: 'All Unmitigated Flaws Violating Policy'
    workItemType: 'Bug'
    area: '$(system.teamProject)'
    overwriteAreaPathInWorkItemsOnImport: true
    addCustomTag: 'HMG'
    flawImportLimit: '1000'
  displayName: 'Veracode importando falhas'
Enter fullscreen mode Exit fullscreen mode

Não é obrigatório, mas nesses casos, eu gosto de adicionar o nome do ambiente como uma tag opcional, com o parâmetro addCustomTag.

Top comments (0)