簡體   English   中英

通過Groovy腳本配置Jenkins Hockeyapp插件

[英]Configure Jenkins Hockeyapp plugin via Groovy script

我正在嘗試為Jenkins配置Hockeyapp插件,以從環境變量中獲取API令牌。 到目前為止,我已經設法獲得了一些可用於Jenkins 初始加載的功能,並設置了API令牌,但是如果我更改環境變量並重新加載Jenkins,則不會應用新令牌。

我對發生的事情的理解是我的腳本正在為Hockeyapp創建一個新的描述符,並保存它-在最初的Jenkins加載中就可以使用(因為不存在)。 在更改令牌並重新引導時,確實存在一個描述符,並且我沒有更改它,這就是從第二次引導開始就出現問題的原因。

import hockeyapp.*

def env = System.getenv()
def hockeyappConfig = new HockeyappRecorder.DescriptorImpl()

String apiToken = env['HOCKEYAPP_API_TOKEN'] ?: ''

if (apiToken?.trim()) {
    hockeyappConfig.setDefaultToken(apiToken)
    hockeyappConfig.save()
}

有誰能夠解釋如何通過Groovy獲得Hockeyapp的現有配置,以便可以對其進行編輯,最好使用代碼進行編輯(我的Java不好)?

我認為答案就在Jenkins.getInstance() 某個位置 ,然后退出Hockeyapp配置,但由於對Java / Groovy和Jenkins的程序化配置不熟悉,我的理解不盡人意。

相關的JavaDoc:

下面的groovy腳本為我工作-使用getExtensionList獲取當前配置后,可以更改令牌。

檔案:$ JENKINS_HOME / init.groovy.d / hockeyapp.groovy

/*
    Set the default API token for Hockeyapp in global configuration

    Environment Variables:
    - HOCKEYAPP_API_TOKEN: Hockeyapp API Token
*/ 
import hockeyapp.*
import jenkins.model.Jenkins

def env = System.getenv()

Jenkins jenkins = Jenkins.getInstance()
def hockeyappConfig = jenkins.getExtensionList(HockeyappRecorder.DescriptorImpl.class)[0]

String apiToken = env['HOCKEYAPP_API_TOKEN'] ?: ''

if (apiToken?.trim()) {
    hockeyappConfig.setDefaultToken(apiToken)
    hockeyappConfig.save()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM