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)