Как добавить подпись разрешенного метода в код в сценарии в Дженкинс - PullRequest
0 голосов
/ 02 марта 2020

Я использую конвейер Jenkins и хочу добавить HTTP-запрос на публикацию. Я хочу использовать нативный код Groovy / Java (я не хочу запускать curl с sh, так как он очень ломаемый )

Я запустив следующий фрагмент кода на последнем шаге:

def builder = new groovy.json.JsonBuilder()


    builder {
        context 'branch_regression'
        state stateStr
    }

    Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("some-proxy.com", 912))
    def post = new URL(config.CommitStatusUpdateURL).openConnection(proxy)

    def message = builder.toString();
    post.setRequestMethod("POST")
    post.setRequestProperty("Authorization","Basic Some64BaseTokEAsfn")
    post.setDoOutput(true)
    post.setRequestProperty("Content-Type", "application/json")
    def rawdata = message.getBytes("UTF-8")
    def stream = post.getOutputStream()
    stream.write(rawdata);

    def postRC = post.getResponseCode();
    println(postRC);
    if(postRC.equals(200)) {
        println(post.getInputStream().getText());

Но тогда я получил

Скрипты, которым не разрешено использовать новые java. net .InetSocketAddress java .lang.String int Администраторы могут решить, утвердить или отклонить эту подпись.

со ссылкой утвердить подпись этого метода ... и я утвердил ее, и снова запускаю задачу, а затем Я получаю:

Скриптам не разрешается использовать новые java. net .Proxy java. net .Proxy $ Тип java. net .SocketAddress Администраторы могут решать утвердить или отклонить эту подпись.

Это сводит меня с ума ... В чем здесь проблема ??

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Перемещение HTTP-кода в глобальную общую библиотеку :

Эти библиотеки считаются "доверенными": они могут запускать любые методы в Java, Groovy, Внутренние API Jenkins, плагины Jenkins или сторонние библиотеки. Это позволяет вам определять библиотеки, которые инкапсулируют индивидуально небезопасные API-интерфейсы в оболочке более высокого уровня, безопасной для использования из любого конвейера.

0 голосов
/ 03 марта 2020

Вам нужно одобрить использование этих функций в ваших скриптах, перейдя на https://your.jenkins.url/scriptApproval/. Каждый раз, когда вы запускаете новый скрипт, он доходит до первой неутвержденной вещи и терпит неудачу, так что это может go включиться на некоторое время.

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