Я пишу сценарий groovy, у которого есть метод, который вызывается из моей стадии конвейера Jenkins. Эта функция вызывает API, который имеет Basi c Auth Header и тело сообщения.
Этот фрагмент кода возвращает мне 500 на Jenkins, но работает корректно на Postman.
def callAPI(String SN_CREDENTIALS, String description, String name ) {
String auth = SN_CREDENTIALS.bytes.encodeBase64().toString()
def body_data = """{
"start_date": "${utc_startdate}",
"end_date": "${utc_enddate}",
"description": "${Description}",
}
"""
def url = 'https://example.com/api/sn_chg_rest/change/standard/' + id
def response = httpRequest url: url, acceptType: 'APPLICATION_JSON',
contentType: 'APPLICATION_JSON',
httpMode: 'POST',
requestBody: body_data,
customHeaders: [[name: 'Authorization', value: "Basic ${auth}"]]
}
где SN_CREDENTIALS - учетные данные, сохраненные в Jenkins.
Jenkinsfile
environment {
SN_CREDENTIALS = credentials('SNCreds')
}
stage{
steps{
script{
buildTicketScript.callAPI("${SN_CREDENTIALS}",description,name)
}
}
}
Код ответа: HTTP / 1.1 500 Внутренняя ошибка сервера
Что-то не так с куском кода?