Jenkins rest api'sini kullanmaya çalışıyorum. Talimatlarda api anahtarına sahip olmam gerektiğini söylüyor. Bulmak için tüm konfigürasyon sayfalarına baktım. Jenkins için API anahtarını nasıl edinebilirim?
Jenkins rest api'sini kullanmaya çalışıyorum. Talimatlarda api anahtarına sahip olmam gerektiğini söylüyor. Bulmak için tüm konfigürasyon sayfalarına baktım. Jenkins için API anahtarını nasıl edinebilirim?
Yanıtlar:
Jenkins 2.129'dan beri API belirteci yapılandırması değişti :
Artık birden fazla jetonunuz olabilir ve bunları adlandırabilirsiniz. Bireysel olarak iptal edilebilirler.
Jenkins 2.129'dan önce: API belirtecini aşağıdaki gibi gösterin:
API belirteci ortaya çıkar.
API Jetonunu Değiştir düğmesini tıklayarak jetonu değiştirebilirsiniz .
Show API Token
artık geçerli değil gibi görünüyor.
Bu yazıyı Jenkins 2.129 yapmanın UI olmayan yolu şudur:
curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password
döndüren:
{
"status": "ok",
"data": {
"tokenName": "foo",
"tokenUuid": "<uuid>",
"tokenValue": "<redacted>"
}
}
Ön Jenkins 2.129
curl http://<username>:<password>@<jenkins-url>/me/configure
Jenkins 2.225'te test edildi
Birkaç saat araştırma yaptıktan sonra cevabı bulabildim:
CSFR belirteci yerine Api Token kullanılır. Ancak, başka bir istemciden (POSTMAN, CLI. Curl, vb.) Kimlik doğrulaması yapmak isterseniz ne olur.
Öncelikle bir CSFR belirteci almanız ve bilgileri bir çereze kaydetmeniz gerekir. --cookie-jar
curl -s --cookie-jar / tmp / cookies -u kullanıcı adı: şifre http: // localhost: 8080 / crumbIssuer / api / json
{"_class": "hudson.security.csrf.DefaultCrumbIssuer", "crumb": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450", "crumbRequestField"}: "crumbRequestField"}
Ardından çerezi okuyabilir --cookie
ve yeni jetonu oluşturabiliriz:
curl -X POST -H 'Jenkins-Crumb: your_crumb_token_generated_above' --cookie / tmp / cookies http: // localhost: 8080 / me / descriptorByName / jenkins.security.ApiTokenProperty / generateNewToken? newTokenName = \ kullanıcı adı: parola
{"status": "ok", "data": {"tokenName": "android simgem", "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af", "tokenValue": "11a2a0c91913d1391d8e8cb155}