通过Groovy脚本配置Jenkins Hockeyapp插件

时间:2018-09-13 10:04:41

标签: java jenkins groovy jenkins-plugins hockeyapp

我正在尝试为Jenkins配置Hockeyapp插件,以从环境变量中获取API令牌。到目前为止,我已经设法获得了一些对Jenkins的 initial 加载有效的东西,设置了API令牌,但是如果我更改环境变量并重新加载Jenkins,则不会应用新令牌。

我对所发生的事情的理解是我的脚本正在为Hockeyapp创建一个新的描述符,并保存它-可以在最初的Jenkins加载中工作(因为不存在)。在更改令牌并重新引导时,确实存在一个描述符,并且我没有更改它,这就是从第二次引导开始就出现问题的原因。

?string(...)

有人能解释如何通过Groovy获得Hockeyapp的现有配置,以便可以对其进行编辑,最好使用代码进行编辑(我的Java不好)?

我认为答案位于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() } 中的某处处,然后退出Hockeyapp配置,但是由于对Java / Groovy和Jenkins的程序配置。

相关的JavaDoc:

1 个答案:

答案 0 :(得分:1)

下面的常规脚本对我有用-使用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()
}
相关问题