วิธีรับรายการปลั๊กอิน Jenkins ที่ติดตั้งพร้อมชื่อและรุ่นของคู่


159

ฉันจะรับรายการปลั๊กอิน Jenkins ที่ติดตั้งไว้ได้อย่างไร

ฉันค้นหาเอกสาร API การเข้าถึงระยะไกลของ Jenkins แต่ไม่พบ ฉันควรใช้ CLI ของเจนกินส์หรือไม่ มีเอกสารหรือตัวอย่างหรือไม่

คำตอบ:


161

คุณสามารถดึงข้อมูลโดยใช้สคริปต์คอนโซลเจนกินส์http://<jenkins-url>/scriptซึ่งสามารถเข้าถึงได้โดยการเยี่ยมชม (ระบุว่าคุณเข้าสู่ระบบและมีสิทธิ์ที่จำเป็น)

สกรีนช็อตของคอนโซลสคริปต์

ป้อนสคริปต์ Groovyต่อไปนี้เพื่อวนซ้ำปลั๊กอินที่ติดตั้งและพิมพ์ข้อมูลที่เกี่ยวข้อง:

Jenkins.instance.pluginManager.plugins.each{
  plugin -> 
    println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}

มันจะพิมพ์รายการผลลัพธ์เช่นนี้ (ตัด):

ภาพหน้าจอของเอาต์พุตสคริปต์

โซลูชันนี้คล้ายกับหนึ่งในคำตอบข้างต้นซึ่งใช้ Groovy แต่ที่นี่เราใช้คอนโซลสคริปต์แทน คอนโซลสคริปต์มีประโยชน์อย่างยิ่งเมื่อใช้ Jenkins

ปรับปรุง

หากคุณต้องการรายการที่เรียงลำดับคุณสามารถเรียกsortใช้วิธีนี้ได้:

def pluginList = new ArrayList(Jenkins.instance.pluginManager.plugins)
pluginList.sort { it.getShortName() }.each{
  plugin -> 
    println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}")
}

ปรับการปิดเพื่อความชอบของคุณ (เช่นที่นี่จะถูกจัดเรียงโดย shortName ในตัวอย่างที่จัดเรียงตาม DisplayName)


2
จากคำตอบทั้งหมดนี้เป็นประโยชน์มากที่สุดสำหรับการยื่นรายงานข้อผิดพลาดของปลั๊กอิน; สามารถทำได้โดยใช้ UI ของเว็บมาตรฐานและให้ผลลัพธ์ในรูปแบบที่สามารถวางลงในฟิลด์ "สภาพแวดล้อม" ได้อย่างง่ายดาย
Aaron D. Marasco

8
คำตอบที่ยอดเยี่ยมสำหรับการสร้างปลั๊กอินอย่างรวดเร็วสำหรับนักเทียบท่าเจนกินส์!
Erik Englund

1
มันอาจจะมีประโยชน์ในการเพิ่มการเรียงลำดับเพื่อให้รายการของปลั๊กอินสอดคล้องกัน: Jenkins.instance.pluginManager.plugins.sort({it.getDisplayName()}).each{ plugin -> println ("${plugin.getDisplayName()} (${plugin.getShortName()}): ${plugin.getVersion()}") }
wheleph

1
นี่คือคำตอบที่เราเปลี่ยนไปใช้ในพื้นที่แทนที่จะแนะนำ XPath ของฉันด้านบนห่อด้วยคำขอ curl และการตัดแต่งบางส่วนของตัวสร้างจากปลั๊กอินแหล่งที่มาที่เราใช้วิธีนี้เพื่อสร้าง plugins.txt สำหรับภาพนักเทียบท่าของเราดังที่ @ErikEnglund echo 'script=Jenkins.instance.pluginManager.plugins.each{ plugin -> println ("${plugin.getShortName()}:${plugin.getVersion()}") } null' \ | no_proxy=localhost curl --netrc --silent --data-binary @- -X POST "http://localhost:8080/jenkins/scriptText" | sort > plugins.txt
dbailey

8
การเรียงลำดับใช้งานไม่ได้ แต่เป็น unmodifiableMap ในทุกวันนี้ ใช้:jenkins.model.Jenkins.instance.getPluginManager().getPlugins().stream().sorted().each { println "${it.getShortName()} | ${it.getVersion()} | ${it.getDisplayName()}" }
Ed Randall

96

วันนี้ฉันใช้วิธีการเดียวกันกับคำตอบที่อธิบายโดย @Behe ด้านล่างแทนhttps://stackoverflow.com/a/35292719/1597808


คุณสามารถใช้ API ร่วมกับอาร์กิวเมนต์ depth, XPath และ wrapper

ต่อไปนี้จะสืบค้น API ของ pluginManager เพื่อแสดงรายการปลั๊กอินทั้งหมดที่ติดตั้ง แต่จะส่งคืนแอตทริบิวต์ shortName และเวอร์ชันของพวกเขาเท่านั้น คุณสามารถเรียกดูฟิลด์เพิ่มเติมได้โดยเพิ่ม '|' ไปที่จุดสิ้นสุดของพารามิเตอร์ XPath และระบุรูปแบบเพื่อระบุโหนด

wget http://<jenkins>/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins

ต้องการอาร์กิวเมนต์ wrapper ในกรณีนี้เนื่องจากมันส่งคืนมากกว่าหนึ่งโหนดเป็นส่วนหนึ่งของผลลัพธ์ซึ่งทั้งคู่กำลังจับคู่หลายฟิลด์กับ XPath และโหนดปลั๊กอินหลายโหนด

อาจเป็นประโยชน์ที่จะใช้ URL ต่อไปนี้ในเบราว์เซอร์เพื่อดูว่ามีข้อมูลใดเกี่ยวกับปลั๊กอินและจากนั้นตัดสินใจว่าคุณต้องการ จำกัด การใช้ XPath อย่างไร:

http://<jenkins>/pluginManager/api/xml?depth=1

สวัสดีคุณรู้วิธีรับรายการปลั๊กอินที่ใช้โดยงานเจนกินส์และระบบเจนกินส์มากกว่ารายการปลั๊กอินที่ติดตั้งทั้งหมดหรือไม่ ขอบคุณ
user1164061

3
ทำงานได้ดีสำหรับฉันใน Mac OS X ฉันต้องการแปลงผลลัพธ์เป็นรายการข้อความธรรมดาดังนั้นใช้ Perl regex เพื่อดึงแท็ก:curl 'http://192.168.197.133:8080/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins' | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'
G. Lombard

8
ทางเลือกในรูปแบบ JSON:curl -s -k "http://jenkins/pluginManager/api/json?depth=1" | jq '.plugins[]|{shortName, version,longName}' -c
MarkHu

1
ฉันเชื่อว่านี่ต้องใช้สิทธิ์การจัดการ แต่ฉันไม่แน่ใจ
mkobit

2
ยืนยันว่าปัญหานี้ต้องใช้สิทธิ์ผู้ดูแลระบบต่อคำแนะนำความปลอดภัย 2016/05/11
mkobit

29

เจนกินส์ 1.588 (2 ครั้งของเดือนพฤศจิกายน 2014) และ1.647 (4 วันของเดือนกุมภาพันธ์ 2016)

  • เจนกินส์> จัดการเจนกินส์

    ป้อนคำอธิบายรูปภาพที่นี่

  • ข้อมูลระบบ

    ป้อนคำอธิบายรูปภาพที่นี่

  • ปลั๊กอิน

    ป้อนคำอธิบายรูปภาพที่นี่


1
มันง่ายมากและฉันสามารถรับรายการจากเซิร์ฟเวอร์ DEV และ PRD วางลงใน Excel และเปรียบเทียบรุ่นของพวกเขาเคียงข้างกัน
Jirong Hu

24

Jenkins CLI รองรับรายการปลั๊กอินที่ติดตั้งทั้งหมด:

java -jar jenkins-cli.jar -s http://localhost:8080/ list-plugins


นี่จะไม่แสดงสถานะของปลั๊กอิน
akhan

1
และlist-pluginsคำสั่ง CLI ไม่ต้องการให้ผู้ใช้มีสิทธิ์โดยรวม / RunScriptsเช่นเดียวกับgroovyคำสั่ง
José Andias

สิ่งนี้ไม่ทำงานกับโทเค็น API หากผู้ใช้ / โทเค็นไม่ใช่ "โดยรวม / ผู้ดูแลระบบ"
cgseller

21

ใช้ Jenkins CLI เช่นนี้:

java -jar jenkins-cli.jar -s http://[jenkins_server] groovy = < pluginEnumerator.groovy

=ในวิธีการเรียก'อ่านจากอินพุตมาตรฐาน' pluginEnumerator.groovyมีรหัส Groovy ต่อไปนี้:

println "Running plugin enumerator"
println ""
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println "${it.getShortName()} - ${it.getVersion()}"}
println ""
println "Total number of plugins: ${plugins.size()}"

หากคุณต้องการที่จะเล่นกับรหัสเอกสาร Jenkins Java API ที่นี่


@ user1284795 สิ่งนี้มีประโยชน์หรือไม่
malenkiy_scot

1
สวัสดีคุณรู้วิธีการใช้ปลั๊กอินของระบบเจนกินส์และงานเจนกินส์แทนที่จะติดตั้งปลั๊กอินทั้งหมดหรือไม่ ฉันต้องการสิ่งนี้เพื่อช่วยฉันถอนการติดตั้งปลั๊กอินที่ไม่ได้ใช้ทั้งหมด ความช่วยเหลือใด ๆ ที่ชื่นชม ขอบคุณ!
user1164061

นี่ควรเป็นคำตอบที่ยอมรับได้ @ user1164061 ฉันไม่คิดว่าจะมีความแตกต่างใด ๆ ระหว่างปลั๊กอินที่สามารถมองเห็นได้กับงานเทียบกับเซิร์ฟเวอร์ มีisActive()API ที่คุณสามารถใช้ในสคริปต์ groovy ในคำตอบนี้เพื่อรับสถานะปลั๊กอิน ดูjavadoc.jenkins-ci.org/hudson/PluginWrapper.html#isActive ()
akhan

20

หากคุณทำงานในสภาพแวดล้อมของนักเทียบท่าและต้องการส่งออกรายการปลั๊กอินในรูปแบบ plugins.txt เพื่อส่งต่อไปยัง install_scripts.sh ให้ใช้สคริปต์เหล่านี้ในhttp://{jenkins}/scriptคอนโซล:

  1. รุ่นนี้มีประโยชน์สำหรับการรับแพ็คเกจเฉพาะ
Jenkins.instance.pluginManager.plugins.each{
  plugin -> 
    println ("${plugin.getShortName()}:${plugin.getVersion()}")
}
  1. หากคุณต้องการเพียงปลั๊กอินที่มีเวอร์ชันล่าสุดคุณสามารถใช้สิ่งนี้ได้ (ขอบคุณ @KymikoLoco สำหรับคำแนะนำ)
Jenkins.instance.pluginManager.plugins.each{
  plugin -> 
    println ("${plugin.getShortName()}:latest")
}

1
หากคุณต้องการรับปลั๊กอินเวอร์ชันล่าสุดทั้งหมดคุณสามารถขยายสิ่งนี้เพื่อให้ได้ชื่อย่อและเพิ่ม:latestไปยังจุดสิ้นสุด:println ("${plugin.getShortName()}:latest")
KymikoLoco

17

คำตอบที่นี่ค่อนข้างไม่สมบูรณ์ และฉันต้องรวบรวมข้อมูลจากแหล่งอื่น ๆ เพื่อรับรายการปลั๊กอินจริง

1. รับเจนกินส์ CLI

Jenkins CLI จะช่วยให้เราสามารถโต้ตอบกับเซิร์ฟเวอร์ Jenkins ของเราจากบรรทัดคำสั่ง เราสามารถรับมันด้วยการเรียกขดง่าย ๆ

curl 'localhost:8080/jnlpJars/jenkins-cli.jar' > jenkins-cli.jar

2. สร้างสคริปต์ Groovy สำหรับการแยกวิเคราะห์ (ขอบคุณ malenkiy_scot)

plugins.groovyบันทึกต่อไปนี้เป็น

def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {println "${it.getShortName()}: ${it.getVersion()}"}

3. โทรหา Jenkins API เพื่อรับผลปลั๊กอิน

โทรหาเซิร์ฟเวอร์ Jenkins ( localhost:8080ที่นี่) ด้วยชื่อผู้ใช้และรหัสผ่านสำหรับเข้าสู่ระบบในขณะที่อ้างอิงสคริปต์ Groovy:

java -jar jenkins-cli.jar -s http://localhost:8080 groovy --username "admin" --password "admin" = < plugins.groovy > plugins.txt

ผลลัพธ์ไปยัง plugins.txt มีลักษณะดังนี้:

ace-editor: 1.1
ant: 1.5
antisamy-markup-formatter: 1.5
authentication-tokens: 1.3
blueocean-autofavorite: 1.0.0
blueocean-commons: 1.1.4
blueocean-config: 1.1.4
blueocean-dashboard: 1.1.4
blueocean-display-url: 2.0
blueocean-events: 1.1.4
blueocean-git-pipeline: 1.1.4
blueocean-github-pipeline: 1.1.4
blueocean-i18n: 1.1.4
blueocean-jwt: 1.1.4
blueocean-personalization: 1.1.4
blueocean-pipeline-api-impl: 1.1.4
blueocean-pipeline-editor: 0.2.0
blueocean-pipeline-scm-api: 1.1.4
blueocean-rest-impl: 1.1.4

คำสั่งดังกล่าวควรทำงานบนเวิร์กสเตชันของคุณและไม่ได้อยู่ในงาน Jenkins
user3740244

ดูเหมือนว่าคำสั่งจะส่งผลให้ "ข้อผิดพลาด: ไม่ระบุตัวตนขาดการอนุญาตโดยรวม / อ่าน" ในรุ่นล่าสุด .. แทนที่จะส่งการรับรองความถูกต้องก่อนที่จะทำงานให้ฉัน java -jar jenkins-cli.jar -s localhost: 8080 -auth "ผู้ดูแลระบบ: < รหัสผ่าน> "groovy = <plugins.groovy
prasanna

12

คำตอบของ Behe ​​ที่มีการเรียงลำดับปลั๊กอินไม่สามารถใช้กับเครื่อง Jenkins ของฉันได้ ผมได้รับข้อผิดพลาดjava.lang.UnsupportedOperationExceptionเนื่องจากการพยายามที่จะจัดเรียงคอลเลกชันมี Jenkins.instance.pluginManager.pluginsIE แก้ไขง่าย ๆ สำหรับรหัส:

List<String> jenkinsPlugins = new ArrayList<String>(Jenkins.instance.pluginManager.plugins);
jenkinsPlugins.sort { it.displayName }
              .each { plugin ->
                   println ("${plugin.shortName}:${plugin.version}")
              }

ใช้http://<jenkins-url>/scriptURL เพื่อเรียกใช้รหัส


1
ฉันวิ่งเข้าไปในนี้และใช้ Jenkins รุ่นที่แตกต่างจากระบบแรกที่ฉันทดสอบ สำหรับ v2.81 คำตอบยอดนิยมใช้งานได้ แต่สำหรับ LTS v2.83.x และเวอร์ชันที่ใหม่กว่าข้อผิดพลาดที่คุณกล่าวถึงในขณะที่โค้ดของคุณยังคงใช้งานได้
dragon788

1
สิ่งหนึ่งที่ฉันเพิ่งสังเกตเห็นคือคุณกำลังเรียงลำดับตามdisplayNameขณะที่พิมพ์ออกมาสิ่งshortNameนี้ทำให้เกิดความสับสนอย่างมากเนื่องจากปลั๊กอินบางตัวไม่เหมือนกันทั้งตัวอักษรและผลลัพธ์ในรายการที่ไม่เรียงลำดับ การเปลี่ยนit.displayNameมาit.shortNameแก้ปัญหานี้เป็นอย่างดี
dragon788

8

หากคุณเป็นผู้ดูแลระบบเจนกินส์คุณสามารถใช้หน้าข้อมูลระบบเจนกินส์:

http://<jenkinsurl>/systemInfo

/systeminfoไม่ทำงาน (HTTP 404) บน Jenkins 1.594
G. Lombard

7
ลอง - http://localhost:8080/systemInfoเซิร์ฟเวอร์บางตัวเป็นกรณี ๆ ไป โปรดทราบว่ามันต้องการให้ผู้ใช้ที่เข้าสู่ระบบในปัจจุบันมีสิทธิ์โดยรวม / การจัดการ
MarkHu

8

ด้วยcurlและjq:

curl -s <jenkins_url>/pluginManager/api/json?depth=1 \
  | jq -r '.plugins[] | "\(.shortName):\(.version)"' \
  | sort

คำสั่งนี้ให้เอาต์พุตในรูปแบบที่ใช้โดยplugins.txtไฟล์Jenkins พิเศษซึ่งช่วยให้คุณสามารถติดตั้งการพึ่งพาล่วงหน้าได้ (เช่นในอิมเมจ docker):

ace-editor:1.1
ant:1.8
apache-httpcomponents-client-4-api:4.5.5-3.0

ตัวอย่างของplugins.txt: https://github.com/hoto/jenkinsfile-examples/blob/master/source/jenkins/usr/share/jenkins/plugins.txt


5

จากหน้าแรกของเจนกินส์:

  1. คลิกจัดการเจนกินส์
  2. คลิกจัดการปลั๊กอิน
  3. คลิกที่แท็บที่ติดตั้ง

หรือ

  1. ไปที่ URL เจนกินส์โดยตรง: {URL ฐานเจนกินส์ของคุณ} / pluginManager / ติดตั้ง

1
หน้า "ปลั๊กอินที่ติดตั้ง" ไม่จำเป็นต้องสะท้อนถึงสถานะปลั๊กอินจริง เช่นคุณอาจเปิดใช้งานปลั๊กอินอีกครั้งและดูการตรวจสอบปลั๊กอินขณะที่ปลั๊กอินยังคงปิดใช้งานอยู่จนกระทั่ง Jenkins-Restart ดังนั้นวิธีแก้ปัญหาเพียง 100% เท่านั้นคือ http: // <jenkinsurl> / systeminfo และคำตอบการสืบค้น API คือ imho
t0r0X

4

แบ่งปันตัวเลือกอื่นที่นี่พร้อมข้อมูลประจำตัว

JENKINS_HOST=username:password@myhost.com:port
curl -sSL "http://$JENKINS_HOST/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \2\n/g'|sed 's/ /:/'

ดังกล่าวข้างต้น แต่ไม่มีรุ่นและเรียงลำดับ curl -sSL "http://127.0.0.1:8080/pluginManager/api/xml?depth=1&xpath=/*/*/shortName|/*/*/version&wrapper=plugins" | perl -pe 's/.*?<shortName>([\w-]+).*?<version>([^<]+)()(<\/\w+>)+/\1 \n/g' | sort
ffghfgh

3

ฉันต้องการทางออกที่สามารถทำงานได้โดยไม่ต้องมีการตรวจสอบสิทธิ์และไม่เห็นที่นี่ ฉันสร้างสคริปต์ทุบตีด่วนที่จะดึงทุกเวอร์ชันออกจากปลั๊กอิน dir

if [ -f $JENKINS_HOME/plugin_versions.txt ]; then
  rm $JENKINS_HOME/plugin_versions.txt
fi

for dir in $JENKINS_HOME/plugins/*/; do
  dir=${dir%*/}
  dir=${dir##*/}
  version=$(grep Plugin-Version $JENKINS_HOME/plugins/$dir/META-INF/MANIFEST.MF | awk -F': ' '{print $2}')
  echo $dir $version >> $JENKINS_HOME/plugin_versions.txt
done

grep Plugin-Version */META-INF/MANIFEST.MF | sed -e 's!/META-INF/MANIFEST.MF:Plugin-Version: !:!g' > ../plugins2.txt
James Dupont

2

ฉันคิดว่าสิ่งเหล่านี้ไม่ใช่คำตอบที่ดีพอ ... หลายคนมีขั้นตอนพิเศษภายใต้ประทุนสองสามอย่าง นี่เป็นวิธีที่ฉันทำ

sudo apt-get install jq

... เนื่องจากเอาต์พุต JSON จะต้องถูกใช้หลังจากที่คุณเรียกใช้ API

#!/bin/bash
server_addr = 'jenkins'
server_port = '8080'

curl -s -k "http://${server_addr}:${server_port}/pluginManager/api/json?depth=1" \
  | jq '.plugins[]|{shortName, version,longName,url}' -c | sort \
  > plugin-list

echo "dude, here's your list: "
cat plugin-list

1

ตัวเลือกอื่นสำหรับผู้ใช้ Python:

from jenkinsapi.jenkins import Jenkins

#get the server instance
jenkins_url = 'http://<jenkins-hostname>:<jenkins-port>/jenkins'
server = Jenkins(jenkins_url, username = '<user>', password = '<password>')

#get the installed plugins as list and print the pairs
plugins_dictionary = server.get_plugins().get_plugins_dict()
for key, value in plugins_dictionary.iteritems():
    print "Plugin name: %s, version: %s" %(key, value.version)

1
# list of plugins in sorted order
# Copy this into your Jenkins script console
    def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()

    List<String> list = new ArrayList<String>()

    i = 0
    plugins.each {
      ++i
      //println " ${i}  ${it.getShortName()}: ${it.getVersion()}"
      list.add("${it.getShortName()}: ${it.getVersion()}")
    }

    list.sort{it}
    i = 0
    for (String item : list) {
      i++
      println(" ${i} ${item}")
    }


0

หาก Jenkins ทำงานในคอนเทนเนอร์ Jenkins Docker คุณสามารถใช้บรรทัดคำสั่งนี้ใน Bash:

java -jar /var/jenkins_home/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ list-plugins --username admin --password `/bin/cat /var/jenkins_home/secrets/initialAdminPassword`

0

สำหรับเจนกินส์รุ่น 2.125 การทำงานต่อไปนี้

หมายเหตุ: แทนที่ส่วนที่ระบุว่า USERNAME และ APIKEY ด้วยชื่อผู้ใช้และ APIKey ที่ถูกต้องสำหรับผู้ใช้ที่เกี่ยวข้องนั้น คีย์ API สำหรับผู้ใช้พร้อมใช้งานผ่าน การจัดการผู้ใช้เลือกผู้ใช้ → ตัวเลือกคีย์ API

คุณอาจต้องยืดเวลาออกหากการติดตั้ง Jenkins ใช้เวลานานขึ้น

การเริ่มต้นyum update -yจะอัปเกรดเวอร์ชันเช่นกันหากคุณติดตั้ง Jenkins ด้วย yum เช่นกัน

#JENKINS AUTO UPDATE SCRIPT link this script into a cron
##############
!/bin/bash
sudo yum update -y
sleep 120
UPDATE_LIST=$( sudo /usr/bin/java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -auth [USERNAME:APIKEY] -s http://localhost:8080/ list-plugins | grep -e ')$' | awk '{ print $1 }' );
if [ ! -z "${UPDATE_LIST}" ]; then
    echo Updating Jenkins Plugins: ${UPDATE_LIST};
    sudo /usr/bin/java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -auth [USERNAME:APIKEY] -s http://localhost:8080/ install-plugin ${UPDATE_LIST};
    sudo /usr/bin/java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -auth [USERNAME:APIKEY] -s http://localhost:8080/ safe-restart;
fi
##############

0

มีวิธีมากมายในการดึงข้อมูลนี้ แต่ฉันเขียนสองวิธีดังนี้: -

1. รับ jenkins cli

เจนกินส์ CLI จะช่วยให้เราสามารถโต้ตอบกับเซิร์ฟเวอร์เจนกินส์ของเราจากบรรทัดคำสั่ง เราสามารถรับมันด้วยการเรียกขดง่าย ๆ

curl 'localhost:8080/jnlpJars/jenkins-cli.jar' > jenkins-cli.jar

2. สร้างสคริปต์ groovy หรือจากคอนโซลสคริปต์เจนกินส์

เราจำเป็นต้องสร้างสคริปต์ groovy เพื่อแยกข้อมูลที่เราได้รับจากเจนกินส์ API สิ่งนี้จะแสดงผลแต่ละปลั๊กอินด้วยเวอร์ชัน บันทึกสิ่งต่อไปนี้เป็น plugins.groovy

def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins() plugins.each {println "${it.getShortName()}: ${it.getVersion()}"}


0

คุณสามารถให้ความสนใจว่ามีการอัพเดตใดบ้างสำหรับปลั๊กอิน เพื่อที่คุณจะต้องผสานข้อมูลเกี่ยวกับการติดตั้งปลั๊กอินที่มีข้อมูลเกี่ยวกับการปรับปรุงที่นี่https://updates.jenkins.io/current/update-center.json

ในการแยกวิเคราะห์ไฟล์ที่ดาวน์โหลดเป็น JSON คุณจะต้องอ่านบรรทัดที่สองทางออนไลน์ (ซึ่งมีขนาดใหญ่มาก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.