Я пытаюсь получить доступ к GitHub API для получения коммитов из определенного репозитория.Я использую команду curl в gradle.
curl
gradle
Проблема: та же команда curl, которая успешно выполняется / работает из командной строки, не выполняется в задаче gradle.
Команда:
curl -X GET -H "Authorization:token <TOKEN>" https://api.github.com/repos/<reponame_with_slash>/commits
Странная часть заключается в том, чтоэта команда плавно работает в командной строке, но не в скрипте gradle.Вот мой код Gradle.
Код Gradle:
def command = "curl -X GET -H \"Authorization:token <TOKEN>\" https://api.github.com/repos/<reponame_with_slash>/commits" println command def proc = command.execute() proc.waitFor() if (proc.exitValue() != 0) { println "stderr: ${proc.err.text}" println "stdout: ${proc.in.text}" throw new GradleException("failed with return code " + proc.exitValue()) } println proc.text
Я получил подсказку.
Проблема была с конкатенацией.Я просто перекодировал эту строку как
['curl','-X','POST',<url>,'-H',<authHeader>,'-d',<payload>].execute().text
, и она сработала.