Я пытаюсь использовать api отдыха jenkins. В инструкции написано, что мне нужен ключ api. Я просмотрел все страницы конфигурации, чтобы найти его. Как получить ключ API для jenkins?
Ответы:
Начиная с Jenkins 2.129 конфигурация токена API изменилась :
Теперь вы можете иметь несколько жетонов и давать им имена. Их можно отозвать индивидуально.
До Jenkins 2.129: покажите токен API следующим образом:
Токен API раскрывается.
Вы можете изменить токен, нажав кнопку « Изменить токен API» .
Show API Token
уже не действует похоже.
Другой способ сделать этот пост Jenkins 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>"
}
}
Pre Jenkins 2,129
curl http://<username>:<password>@<jenkins-url>/me/configure
Протестировано в Jenkins 2.225
После нескольких часов исследования я нашел ответ:
Токен Api используется вместо токена CSFR. Однако что произойдет, если вы захотите выполнить аутентификацию от любого другого клиента (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", "крошка": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450", "crumbRequestField": "crumbRequestField": "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 / generateNewToken? newTokenName = \ your_token_name:
{"status": "ok", "data": {"tokenName": "мой токен Android", "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af", "tokenValue": "11a2a0c91913d1391d8e814581155ca}