Я намагаюся використовувати api для відпочинку jenkins. В інструкції написано, що мені потрібно мати ключ API. Я переглянув усі сторінки конфігурації, щоб знайти його. Як отримати ключ API для jenkins?
Я намагаюся використовувати api для відпочинку jenkins. В інструкції написано, що мені потрібно мати ключ API. Я переглянув усі сторінки конфігурації, щоб знайти його. Як отримати ключ API для jenkins?
Відповіді:
Починаючи з Jenkins 2.129, конфігурація маркера API змінилася :
Тепер ви можете мати кілька лексем і називати їх. Їх можна скасувати індивідуально.
До Jenkins 2.129: Покажіть маркер API таким чином:
Розкрито маркер API.
Ви можете змінити маркер, натиснувши кнопку Змінити маркер API .
Show API Token
більше не діє, здається.
Неінтерфейсний спосіб зробити це повідомлення Дженкінс 2.129:
curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password
який повертає:
{
"status": "ok",
"data": {
"tokenName": "foo",
"tokenUuid": "<uuid>",
"tokenValue": "<redacted>"
}
}
Попередньо Дженкінс 2.129
curl http://<username>:<password>@<jenkins-url>/me/configure
Випробувано в Jenkins 2.225
Провівши дослідження протягом декількох годин, я міг знайти відповідь:
Замість маркера CSFR використовується маркер Api. Однак що станеться, якщо ви хочете здійснити автентифікацію з будь-якого іншого клієнта (POSTMAN, CLI. Curl тощо).
Спочатку потрібно отримати токен CSFR і зберегти інформацію у файлі cookie --cookie-jar
curl -s --cookie-jar / tmp / cookies -u ім'я користувача: пароль http: // localhost: 8080 / crumbIssuer / api / json
{"_class": "hudson.security.csrf.DefaultCrumbIssuer", "crumb": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450", "crumbRequestField": "crumbRequestField": "}
Тоді ми можемо прочитати файл cookie --cookie
та сформувати новий маркер:
curl -X POST -H 'Jenkins-Crumb: your_crumb_token_generated_above' --cookie / tmp / cookies http: // localhost: 8080 / me / descriptorByName / jenkins.security.ApiTokenProperty / generatedNewToken? newTokenName = \ your_token_name -u
{"status": "ok", "data": {"tokenName": "my android token", "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af", "tokenValue": "11a2a0c91913d1391d8e8cb151ca8ca8cb15151ca8ca8cb1515