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.
Top comments (0)