Настройте плагин Jenkins Hockeyapp с помощью скрипта Groovy

Я пытаюсь настроить плагин Hockeyapp для Jenkins, чтобы он брал токен 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()
}

Может ли кто-нибудь объяснить, как получить существующую конфигурацию для Hockeyapp через Groovy, чтобы ее можно было редактировать, в идеале с помощью кода (моя Java не подходит)?

Я думаю, что ответ заключается в где-то в Jenkins.getInstance(), а затем в извлечении конфигурации Hockeyapp, но я немного теряю свою глубину из-за незнания как Java / Groovy, так и программной конфигурации Jenkins.

Соответствующий JavaDoc:

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
153
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Приведенный ниже сценарий groovy работал у меня - после использования getExtensionList для получения текущей конфигурации можно изменить токен.

File: $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()
}

Другие вопросы по теме