Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过Groovy脚本配置Jenkins Hockeyapp插件_Java_Jenkins_Groovy_Jenkins Plugins_Hockeyapp - Fatal编程技术网

Java 通过Groovy脚本配置Jenkins Hockeyapp插件

Java 通过Groovy脚本配置Jenkins Hockeyapp插件,java,jenkins,groovy,jenkins-plugins,hockeyapp,Java,Jenkins,Groovy,Jenkins Plugins,Hockeyapp,我正在尝试为Jenkins配置Hockeyapp插件,以便从环境变量获取API令牌。到目前为止,我已经获得了一些适用于Jenkins初始加载的东西,设置API令牌,但是如果我更改环境变量并重新加载Jenkins,则不会应用新令牌 我对正在发生的事情的理解是,我的脚本正在为Hockeyapp创建一个新的描述符,并保存它——它在初始Jenkins加载时工作,因为它不存在。在更改令牌并重新启动时,描述符确实存在,我不会更改它,这就是问题从第二次启动开始出现的原因 import hockeyapp.*

我正在尝试为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()
      }