Ivo Dias
Posted on January 4, 2023
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'
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"
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'
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'
Não é obrigatório, mas nesses casos, eu gosto de adicionar o nome do ambiente como uma tag opcional, com o parâmetro addCustomTag.
Posted on January 4, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.