जेनकिंस के लिए एपीआई टोकन कैसे प्राप्त करें


86

मैं जेनकींस बाकी आपी का उपयोग करने की कोशिश कर रहा हूं। निर्देशों में यह कहता है कि मुझे एपीआई कुंजी की आवश्यकता है। मैंने इसे खोजने के लिए सभी विन्यास पृष्ठों को देखा है। मैं जेनकींस के लिए एपीआई कुंजी कैसे प्राप्त करूं?


यदि आप एक ही प्रोग्रामेटिक रूप से चाहते हैं, तो आप Jenkins REST API Token
footyapps27

जवाबों:


139

जेनकिन्स 2.129 के बाद से एपीआई टोकन विन्यास बदल गया है :

अब आपके पास कई टोकन हो सकते हैं और उन्हें नाम दे सकते हैं। उन्हें व्यक्तिगत रूप से निरस्त किया जा सकता है।

  1. जेनकिंस में प्रवेश करें।
  2. आप नाम (ऊपरी-दाएं कोने) पर क्लिक करें।
  3. कॉन्फ़िगर (बाईं ओर मेनू) पर क्लिक करें ।
  4. एक नया नाम जनरेट करने के लिए "नया टोकन जोड़ें" बटन का उपयोग करें।
  5. आपको टोकन की प्रतिलिपि तब बनानी चाहिए जब आप इसे उत्पन्न करते हैं क्योंकि आप टोकन को बाद में नहीं देख सकते हैं।
  6. जब जरूरत न हो तब पुराने टोकन को निरस्त करें।

जेनकिन्स 2.129 से पहले: निम्नानुसार एपीआई टोकन दिखाएं:

  1. जेनकिंस में प्रवेश करें।
  2. अपने नाम (ऊपरी-दाएं कोने) पर क्लिक करें।
  3. कॉन्फ़िगर (बाईं ओर मेनू) पर क्लिक करें ।
  4. शो एपीआई टोकन पर क्लिक करें ।

एपीआई टोकन का पता चला है।

आप एपीआई एपीआई टोकन बटन पर क्लिक करके टोकन बदल सकते हैं ।


2
वहाँ किसी भी है कि पाने के लिए एपीआई है?
मधु अविनाश

2
क्या यह टोकन समाप्त हो जाएगा?
ndh103

Show API Tokenयह मान्य नहीं है।
सैकत

1
@ माधुविनाश नीचे मेरा जवाब देखें
राए

FYI करें। जेनकिंस 2.150.1 पर "नया टोकन जोड़ें" बटन दिखाई नहीं देता है जब तक कि कम से कम एक टोकन मौजूद न हो। यूआई के बिना कैसे करें इसके लिए @ राए के जवाब की जांच करें।
m__

17

इस पोस्ट को करने के लिए गैर यूआई तरीका जेनकींस 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 

2
आपको अपने कर्ल अनुरोध में CSRF crumb ( wiki.jenkins.io/display/JENKINS/Remote+access+API ) को शामिल करने की आवश्यकता है , अन्यथा यह 403 के साथ विफल हो जाएगा: निषिद्ध।
MKesper

अगर उपयोगकर्ता नाम
domain.com है

2
@ सिबिकोडर ने '@' को '% 40' से बदलने की कोशिश की
टिम किस्ट

1

जेनकिंस 2.225 में परीक्षण किया गया

कई घंटों तक शोध करने के बाद मुझे जवाब मिल सका:

Api टोकन का उपयोग CSFR टोकन के बजाय किया जाता है। हालाँकि, यदि आप किसी अन्य क्लाइंट (POSTMAN, CLI। कर्ल, आदि) से प्रमाणीकरण करना चाहते हैं तो क्या होगा।

सबसे पहले आपको एक सीएसएफआर टोकन प्राप्त करना होगा और एक कुकी में जानकारी को सहेजना होगा --cookie-jar

  • निवेदन

कर्ल -s - कूकी-जार / tmp / कुकीज़ -u उपयोगकर्ता नाम: पासवर्ड http: // localhost: 8080 / crumbIssuer / api / json

  • प्रतिक्रिया

"{_क्लास": "हडसन। security.csrf.DefaultCrumbIssuer", "crumb": "bc92944100d12780cfc251c9255ff323a475562b4ee0b8cc6e6126f4aa5050", "।"

तब हम कुकी को पढ़ सकते हैं --cookieऔर नए टोकन उत्पन्न कर सकते हैं :

  • निवेदन

curl -X POST -H 'जेनकिंस-क्रम्ब: your_crumb_token_generated_above' --cookie / tmp / कूकीज http: // localhost: 8080 / me / descriptor.yName / jenkins.security.ApiTokenProperty / generateNewToken नया न्यूटोकन है?

  • प्रतिक्रिया

{"स्थिति": "ठीक है", "डेटा": {"टोकननाम": "मेरा एंड्रॉइड टोकन", "टोकन यूआईडी": "c510e26c-b2e8-4021-bf79-81x1e4c112af", "tokenValue": "11a2a0c9179179179"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.