Estou tentando usar o Jenkins Rest api. Nas instruções, diz que preciso ter a chave de API. Eu olhei todas as páginas de configuração para encontrá-lo. Como faço para obter a chave de API para Jenkins?
Estou tentando usar o Jenkins Rest api. Nas instruções, diz que preciso ter a chave de API. Eu olhei todas as páginas de configuração para encontrá-lo. Como faço para obter a chave de API para Jenkins?
Respostas:
Desde Jenkins 2.129, a configuração do token da API mudou :
Agora você pode ter vários tokens e nomeá-los. Eles podem ser revogados individualmente.
Antes do Jenkins 2.129: Mostre o token de API da seguinte maneira:
O token da API é revelado.
Você pode alterar o token clicando no botão Change API Token .
Show API Token
não é mais válido, parece.
A maneira não IU de fazer esta postagem Jenkins 2.129 é:
curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password
que retorna:
{
"status": "ok",
"data": {
"tokenName": "foo",
"tokenUuid": "<uuid>",
"tokenValue": "<redacted>"
}
}
Pré Jenkins 2.129
curl http://<username>:<password>@<jenkins-url>/me/configure
Testado em Jenkins 2.225
Depois de fazer pesquisas por várias horas, pude encontrar a resposta:
O token Api é usado em vez do token CSFR. Porém, o que acontece se você quiser fazer autenticação de qualquer outro cliente (POSTMAN, CLI. Curl, etc).
Primeiro você precisa obter um token CSFR e salvar as informações em um cookie com --cookie-jar
curl -s --cookie-jar / tmp / cookies -u nome de usuário: senha http: // localhost: 8080 / crumbIssuer / api / json
{"_class": "hudson.security.csrf.DefaultCrumbIssuer", "crumb": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450", "crumbRequestField": "Jenkins
Então, podemos ler o cookie --cookie
e gerar o novo token:
onda -X POST -H 'Jenkins-Crumb: your_crumb_token_generated_above' --cookie / tmp / biscoitos http: // localhost: 8080 / me / descriptorByName / jenkins.security.ApiTokenProperty / generateNewToken newTokenName = \ your_token_name -u username: password
{"status": "ok", "data": {"tokenName": "meu token android", "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af", "tokenValue": "11a2a0c91913d1391d8e814c58155caa}