jenkins restapiを使用しようとしています。指示では、APIキーが必要であると書かれています。私はそれを見つけるために設定ページ全体を調べました。jenkinsのAPIキーを取得するにはどうすればよいですか?
回答:
Jenkins 2.129以降、APIトークンの構成が変更されました。
これで、複数のトークンを作成して名前を付けることができます。それらは個別に取り消すことができます。
Jenkins 2.129より前:APIトークンを次のように表示します。
APIトークンが公開されます。
[ APIトークンの変更]ボタンをクリックすると、トークンを変更できます。
Show API Token
もはや有効ではないようです。
この投稿を行うUI以外の方法Jenkins2.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
Jenkins2.225でテスト済み
数時間研究した後、私は答えを見つけることができました:
CSFRトークンの代わりにApiトークンが使用されます。ただし、他のクライアント(POSTMAN、CLI、curlなど)から認証を行う場合はどうなりますか。
まず、CSFRトークンを取得し、情報をCookieに保存する必要があります。 --cookie-jar
curl -s --cookie-jar / tmp / cookies -u username:password http:// localhost:8080 / crumbIssuer / api / json
{"_class": "hudson.security.csrf.DefaultCrumbIssuer"、 "crumb": "bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450"、 "crumbRequestField": "Jenkins-Crumb"}
次に、でCookieを読み取り--cookie
、新しいトークンを生成できます。
curl -X POST -H'Jenkins-Crumb:your_crumb_token_generated_above '--cookie / tmp / cookies http:// localhost:8080 / me / descriptionorByName / jenkins.security.ApiTokenProperty / generateNewToken?newTokenName = \ your_token_name -u username:password
{"status": "ok"、 "data":{"tokenName": "my android token"、 "tokenUuid": "c510e26c-b2e8-4021-bf79-81d1e4c112af"、 "tokenValue": "11a2a0c91913d1391d8e8cb155ca714581"}}