Sto cercando di usare l'api di riposo jenkins. Nelle istruzioni si dice che devo avere la chiave API. Ho guardato in tutte le pagine di configurazione per trovarlo. Come ottengo la chiave API per jenkins?
Sto cercando di usare l'api di riposo jenkins. Nelle istruzioni si dice che devo avere la chiave API. Ho guardato in tutte le pagine di configurazione per trovarlo. Come ottengo la chiave API per jenkins?
Risposte:
Da Jenkins 2.129 la configurazione del token API è cambiata :
Ora puoi avere più gettoni e nominarli. Possono essere revocati individualmente.
Prima di Jenkins 2.129: mostra il token API come segue:
Viene rivelato il token API.
È possibile modificare il token facendo clic sul pulsante Modifica token API .
Show API Token
non è più valido a quanto pare.
Il modo non UI per eseguire questo post Jenkins 2.129 è:
curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password
che restituisce:
{
"status": "ok",
"data": {
"tokenName": "foo",
"tokenUuid": "<uuid>",
"tokenValue": "<redacted>"
}
}
Pre Jenkins 2.129
curl http://<username>:<password>@<jenkins-url>/me/configure
Testato in Jenkins 2.225
Dopo aver fatto ricerche per diverse ore ho potuto trovare la risposta:
Il token API viene utilizzato al posto del token CSFR. Tuttavia, cosa succede se si desidera eseguire l'autenticazione da qualsiasi altro client (POSTMAN, CLI. Curl, ecc.).
Per prima cosa devi ottenere un token CSFR e salvare le informazioni in un cookie con --cookie-jar
curl -s --cookie-jar / tmp / cookies -u nome utente: password http: // localhost: 8080 / crumbIssuer / api / json
{"_class": "hudson.security.csrf.DefaultCrumbIssuer", "crumb": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450", "crumbRequestkins-Field": "
Quindi possiamo leggere il cookie con --cookie
e generare il nuovo 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
{"status": "ok", "data": {"tokenName": "my android token", "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af", "tokenValue": "11a2a0c91913d1391d8e8cb155"