Конфигурация Jenkins должна быть сохранена вручную перед сборкой подключаемого модуля Github для создания запросов - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь интегрировать плагин Jenkins Github для создания запросов на извлечение (https://github.com/jenkinsci/ghprb-plugin) в моей установке Jenkins. Я также хочу раскрутить Jenkins без какого-либо ручного вмешательства / настройки.

Я ДУМАЮ IПравильно ли настроен Jenkins / Github.com. Однако при создании запроса на извлечение ничего не запускается в Jenkins. После начального пинга с Github нет журналов, указывающих на успешное подключение через веб-крючок.

Я инициализирую глобальныйКонфигурация путем размещения сценария в init.groovy.d:

import jenkins.model.*
import org.jenkinsci.plugins.ghprb.*
import hudson.util.Secret

GhprbTrigger.DescriptorImpl descriptor = Jenkins.instance.getDescriptorByType(org.jenkinsci.plugins.ghprb.GhprbTrigger.DescriptorImpl.class)
List<GhprbGitHubAuth> githubAuths = descriptor.getGithubAuth()
// remove all instances of all credentials (including the default)
githubAuths.clear()
String serverAPIUrl = 'https://api.github.com'
String jenkinsUrl = ''
String credentialsId = 'git_api_token'
String description = 'Github.com connection using git token'
String id = 'github-auth-id'
Secret secret = Secret.fromString('')
githubAuths.add(new GhprbGitHubAuth(serverAPIUrl, jenkinsUrl, credentialsId, description, id, secret))

descriptor.save()
println 'Github auth entry successfully saved.'

Соответствующий Groovy-код для заполнения самого задания:

    properties {
        githubProjectUrl(envVars.get("GIT_REPO").replaceAll('git@github.com:', 'https://github.com/').replaceAll('\\.git', ''))
    }
    triggers {
        githubPullRequest {
            useGitHubHooks()
            triggerPhrase('OK to test')
            permitAll()
            extensions {
            }
        }
    }
    configure { flowDefinition ->
        triggerNode = flowDefinition / 'triggers' / 'org.jenkinsci.plugins.ghprb.GhprbTrigger'
        triggerNode.appendNode('gitHubAuthId', 'github-auth-id')
    }
    definition {
        cps {
            script(readFileFromWorkspace("pr_builder/jobs/Jenkinsfile"))
            sandbox()
        }
    }
}

Одна странная вещь в этом состоит в том, что я могу получитьВсе это настроено на работу, сохраняя глобальную конфигурацию Jenkins без внесения каких-либо изменений (Jenkins -> Manage Jenkins -> Configure System), а затем сохраняя созданное задание без внесения каких-либо изменений. Я изучил XML до и после ручного сохранения имежду 2. * 1 нет никаких серьезных изменений014 *

Кто-нибудь может придумать, как заставить Дженкинса автоматически создавать PR?

Версия Jenkins - 2.176.2, а сборщик github PR - 1.42.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...