atualizar credenciais Jenkins por script
Eu tenho um servidor Jenkins em execução no Windows. Ele armazena um nome de usuário: senha no plug-in de credenciais. Este é um usuário do serviço que atualiza sua senha regularmente.
Estou procurando uma maneira de executar um script, de preferência o Powershell, que atualize essa credencial no armazenamento de senhas Jenkins, para que fique sempre atualizada quando eu o usar em um script de trabalho de construção.
A senha é gerenciada por uma instalação do Thycotic Secret Server, para que eu possa automatizar o processo de manter essa senha atualizada, mas não encontrei quase nenhuma pista sobre como fazer isso, mesmo que opublicação no blog O cara que escreveu as credenciais api menciona quase exatamente esse cenário e passa a vincular apenas à página de download do plug-in de credenciais que não diz nada sobre como realmente usar a API.
Atualizar
A resposta aceita funciona perfeitamente, mas o exemplo de chamada do método rest está usando curl, o que se você estiver usando o Windows não ajudará muito. Especialmente se você estiver tentando chamar a URL REST, mas o servidor Jenkins estiver usando a Integração do AD. Para conseguir isso, você pode usar o seguinte script.
Localize o userId e o token da API, indo em Pessoas> Usuário> configure> Mostrar token da API.
$user = "UserID"
$pass = "APIToken"
$pair = "${user}:${pass}"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$base64 = [System.Convert]::ToBase64String($bytes)
$basicAuthValue = "Basic $base64"
$headers = @{ Authorization = $basicAuthValue }
Invoke-WebRequest `
-uri "http://YourJenkinsServer:8080/scriptler/run/changeCredentialPassword.groovy?username=UrlEncodedTargetusername&password=URLEncodedNewPassword" `
-method Get `
-Headers $headers