为了账号安全,请及时绑定邮箱和手机立即绑定

通过 Groovy 脚本配置 Jenkins Hockeyapp 插件

通过 Groovy 脚本配置 Jenkins Hockeyapp 插件

胡子哥哥 2021-09-15 17:25:18
我正在尝试为 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 的编程配置的不熟悉有点超出了我的深度。
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

下面的 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()

}


查看完整回答
反对 回复 2021-09-15
  • 1 回答
  • 0 关注
  • 183 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信