我有一个 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 上会发生这种情况?我该如何解决?
我不知道为什么这在 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}\"