调用 GitHub API 从标签获取文件在 bash 脚本中无法按预期工作

问题描述 投票:0回答:1

我有一个 npm 脚本,当我在本地运行时工作得很好,但是当它作为 CircleCI 作业的一部分运行时,它会尝试从字面上下载文件

test.json?ref=0.1.0
并且该文件不存在。 GitHub 的文档提到从标签获取文件以使用查询字符串
?ref

...
"scripts": {
  "fetch-tests": "ls -al && curl -L -O -f 'https://api.github.com/repos/<mycompany>/<myrepo>/contents/test.json?ref=0.1.0' -H 'Accept: application/vnd.github.v3.raw' -H \"Authorization: token ${GITHUB_TOKEN}\" && ls -al",
...

为什么 CircleCI 上会发生这种情况?我该如何解决?

curl github-api circleci
1个回答
0
投票

我不知道为什么这在 CircleCI 上不起作用。这可能是 cURL 版本的差异。

无论哪种情况,将我的脚本更改为使用

--get -d 'ref=0.1.0'
而不是将查询字符串附加到 url 似乎都有效。

所以而不是

curl -L -O -f 'https://api.github.com/repos/<mycompany>/<myrepo>/contents/test.json?ref=0.1.0' -H 'Accept: application/vnd.github.v3.raw' -H \"Authorization: token ${GITHUB_TOKEN}\"

我用过

curl -L -O -f --get -d 'ref=0.1.0' 'https://api.github.com/repos/<mycompany>/<myrepo>/contents/test.json' -H 'Accept: application/vnd.github.v3.raw' -H \"Authorization: token ${GITHUB_TOKEN}\"
© www.soinside.com 2019 - 2024. All rights reserved.