Estoy tratando de usar la API rest de jenkins. En las instrucciones dice que necesito tener la clave api. He buscado en todas las páginas de configuración para encontrarlo. ¿Cómo obtengo la clave API para jenkins?
Estoy tratando de usar la API rest de jenkins. En las instrucciones dice que necesito tener la clave api. He buscado en todas las páginas de configuración para encontrarlo. ¿Cómo obtengo la clave API para jenkins?
Respuestas:
Desde Jenkins 2.129, la configuración del token de API ha cambiado :
Ahora puede tener varios tokens y nombrarlos. Pueden revocarse individualmente.
Antes de Jenkins 2.129: muestre el token de API de la siguiente manera:
Se revela el token de API.
Puede cambiar el token haciendo clic en el botón Cambiar token de API .
Show API Tokenya no es válido, parece.
La forma sin interfaz de usuario de hacer esta publicación Jenkins 2.129 es:
curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password
que devuelve:
{
"status": "ok",
"data": {
"tokenName": "foo",
"tokenUuid": "<uuid>",
"tokenValue": "<redacted>"
}
}
Pre Jenkins 2.129
curl http://<username>:<password>@<jenkins-url>/me/configure
Probado en Jenkins 2.225
Después de investigar durante varias horas pude encontrar la respuesta:
Se usa Api Token en lugar del token CSFR. Sin embargo, ¿qué sucede si desea realizar la autenticación desde cualquier otro cliente (POSTMAN, CLI. Curl, etc)?
Primero debe obtener un token CSFR y guardar la información en una cookie con --cookie-jar
curl -s --cookie-jar / tmp / cookies -u nombre de usuario: contraseña http: // localhost: 8080 / crumbIssuer / api / json
{"_class": "hudson.security.csrf.DefaultCrumbIssuer", "crumb": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450", "crumbRequestField": "}
Luego podemos leer la cookie --cookiey generar el nuevo token:
curl -X POST -H 'Jenkins-Crumb: your_crumb_token_generated_above' --cookie / tmp / cookies http: // localhost: 8080 / me / descriptorByName / jenkins.security.ApiTokenProperty / generateNewToken? newTokenName = \ your_token_name -u nombre de usuario: contraseña
{"status": "ok", "data": {"tokenName": "mi token de Android", "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af", "tokenValue": "11a2a0c91913d1391d8e814cb155ca7}}