Antes de começarmos, precisamos ter nossas credenciais da Veracode, e nesse caso, precisamos que seja de um usuário com as roles para criar usuários.
A ideia do script e pegar uma lista de usuários, que vão estar organizados em um arquivo CSV formatado por linhas e com as colunas:
- Nome
- Sobrenome
Nosso script vai receber o caminho desse CSV e utilizar o Wrapper para fazer a criação deles, pegando cada uma das linhas com valores.
Além das ferramentas da Veracode, vamos utilizar em especial o comando Foreach do Powershell, junto a função Import-Csv para tratar os valores.
Colocando isso em código, teremos:
# Recebe o caminho do CSV, que precisa estar no formado: # Nome, Sobrenome, Email param ( [parameter(position=0,Mandatory=$True)] $caminhoListaUsuarios ) # Configura a ferramenta para uso $pastaVeracode = "D:\Veracode" # O caminho da pasta onde tem as ferramentas da Veracode [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaVeracode") # Configurações $roles = "Greenlight IDE User,Security Insights,Reviewer,Submitter" # Faz a configuração do Header $Header = 'Nome', 'Sobrenome', 'Email' # Faz a criação dos usuários conforme lista $listaUsuarios = Import-Csv -Path $caminhoListaUsuarios -Header $Header -Delimiter "," foreach ($usuario in $listaUsuarios) { try { # Faz o tratamento das informações $nome = $usuario.Nome $sobrenome = $usuario.Sobrenome $email = $usuario.Email # Cria um novo usuário VeracodeAPI.exe -action createuser -firstname "$nome" -lastname "$sobrenome" -emailaddress "$email" -roles $roles # Log de retorno e criação dos usuários Write-Host "Usuário: $nome $sobrenome" Write-Host "Email: $email" } catch { # Recebendo o erro e exibindo ele, parando a execução $ErrorMessage = $_.Exception.Message # Recebe o erro # Mostra uma mensagem personalizada Write-Host "Erro ao criar o usuário: $nome $sobrenome" Write-Host "$ErrorMessage" } }
Como todos os usuários precisam ter roles, a ideia foi deixar predefinidas algumas que normalmente são utilizadas, nesse caso por usuários com um perfil de acessar a plataforma para fazer análises e pegar resultados, e também que utilize as ferramentas de análise na IDE.
Caso tenha necessidades diferentes, pode alterar essa lista.
E para o caso de times?
Caso a ideia já seja criar esses usuários em um time, nosso script só precisa de duas alterações:
- Adicionar o nome do time como parâmetro
- Passar ele para o Wrapper
Com essas modificações, nosso script vai ficar:
# Recebe o caminho do CSV, que precisa estar no formado: # Nome, Sobrenome, Email param ( [parameter(position=0,Mandatory=$True)] $nomeTime, [parameter(position=1,Mandatory=$True)] $caminhoListaUsuarios ) # Configura a ferramenta para uso $pastaVeracode = "D:\Veracode" # O caminho da pasta onde tem as ferramentas da Veracode [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaVeracode") # Configurações $roles = "Greenlight IDE User,Security Insights,Reviewer,Submitter" # Faz a configuração do Header $Header = 'Nome', 'Sobrenome', 'Email' # Faz a criação dos usuários conforme lista $listaUsuarios = Import-Csv -Path $caminhoListaUsuarios -Header $Header -Delimiter "," foreach ($usuario in $listaUsuarios) { try { # Faz o tratamento das informações $nome = $usuario.Nome $sobrenome = $usuario.Sobrenome $email = $usuario.Email # Cria um novo usuario VeracodeAPI.exe -action createuser -firstname "$nome" -lastname "$sobrenome" -emailaddress "$email" -roles $roles -teams $nomeTime # Log de retorno e criação dos usuários Write-Host "Usuário: $nome $sobrenome" Write-Host "Email: $email - Time: $nomeTime" } catch { # Recebendo o erro e exibindo ele, parando a execução $ErrorMessage = $_.Exception.Message # Recebe o erro # Mostra uma mensagem personalizada Write-Host "Erro ao criar o usuário: $nome $sobrenome" Write-Host "$ErrorMessage" } }
Top comments (0)