Нужна помощь по загрузке полезной нагрузки GitHub в файл Jenkins без установки какого-либо плагина.
Если кто-нибудь может предоставить фрагмент кода файла Jenkins для доступа к полезной нагрузке GitHub из веб-перехватчика. это было бы большим подспорьем.
Я могу вызвать задание Дженкинса из веб-перехватчика GitHub. но для дальнейшей обработки нужна и полезная нагрузка.
Любая помощь будет оценена по достоинству. Спасибо.

Пожалуйста, найдите приведенный ниже отличный сценарий:
stage('Pull Request Info') {
agent {
docker {
image 'maven'
args '-v $HOME/.m2:/home/jenkins/.m2 -ti -u 496 -e MAVEN_CONFIG=/home/jenkins/.m2 -e MAVEN_OPTS=-Xmx2048m'
}
}
steps {
script {
withCredentials([usernameColonPassword(credentialsId: "${env.STASH_CREDENTIAL_ID}",
variable: 'USERPASS')]) {
def hasChanges = maven.updateDependencies()
if (hasChanges != '') {
def pr1 = sh(
script: "curl -s -u ${"$USERPASS" } -H 'Content-Type: application/json' https://xx.example/rest/some/endpoint",
returnStdout: true
)
def pr = readJSON(text: pr1)
println pr.fromRef
}
}
}
}
}
Вышеупомянутый скрипт использует curl для получения сведений о запросе на извлечение. Я сохранил учетные данные в jenkins и создал переменную среды для credentialId.
Вы можете заменить URL-адрес своей конечной точкой. Вы также можете изменить сценарий для использования jq, если на вашем компьютере установлен jq.
В этом случае я использую readJSON для анализа JSON, который является частью плагина служебных программ конвейера. Мой вопрос: почему бы не использовать плагин, поскольку он предоставляет необходимые функции?
Если вы все еще не хотите использовать плагин, взгляните на парсинг json с помощью groovy.
Я бы посоветовал вам использовать организацию Github, где она разделяет запросы на вытягивание и ветки. И для каждого PR будет создано отдельное задание, где вы сможете распечатать полезную нагрузку для каждого события из Github.
Большое спасибо за ответ. Я использовал тот же метод. Проблема с этим подходом заключается в том, что когда одновременно выполняется 2-3 пул-реквеста, то только последний из них будет рассматриваться, предыдущие будут исключены. В моем случае, как только вызывается веб-перехватчик, jenkinsfile должен распечатать полезную нагрузку независимо от какого-либо события (например, пул реквест, push, слияние и т. д.). Не могли бы вы помочь с этим.