我有一个groovy脚本,它可以关闭旧的pull请求。它获取打开的pull请求的部分以前使用访问令牌工作过:
String json = new URL("${giteaUrl}/api/v1/repos/projectname/reponame/pulls?page=${page}&state=all" +
"&sort=recentupdate&access_token=${accessToken}").getText()
prData = new JsonSlurper().parse(json.bytes)
我们从Gitea迁移到了GitHub Enterprise,现在我需要使用User
Header字段进行授权。下面是curl的工作方式:
curl \
-s \
-f \
--user "username:apitoken" \
--header 'Accept: application/vnd.github.v3+json' \
--header 'Content-Type: application/json' \
--request GET "https://repourl.com/api/v3/repos/projectname/reponame/pulls"
我试过:
String json = new URL("${gitUrl}/api/v3/repos/projectname/reponame/pulls?page=${page}&state=all" +
"&sort=recentupdate").getText(
requestProperties: ["User": "${gitApiUser}:${gitApiToken}"]
)
prData = new JsonSlurper().parse(json.bytes)
和
String json = new URL("${gitUrl}/api/v3/repos/projectname/reponame/pulls?page=${page}&state=all" +
"&sort=recentupdate").getText(
requestProperties: ["Authorization": +
"Basic " + "${gitApiUser}:${gitApiToken}".getBytes('iso-8859-1').encodeBase64() ]
)
prData = new JsonSlurper().parse(json.bytes)
但我总是得到401 - Unauthorized
。向URL()或JsonSlurper()添加授权的正确方法是什么?
1条答案
按热度按时间nhaq1z211#
我把base64编码弄错了。它是这样工作的: