当使用github cli API通过git-bash终端读取pull request数据时,我得到“gh:HTTP 404错误提示当我通过PowerShell终端或通过wsl运行完全相同的脚本时,它工作得很好。知道为什么会这样吗x1c 0d1x的数据
q3qa4bjr1#
虽然REST API中的gh代码示例确实有一个额外的/前缀,但实际的gh api man page没有:示例:
/
# list releases in the current repository $ gh api repos/{owner}/{repo}/releases # post an issue comment $ gh api repos/{owner}/{repo}/issues/123/comments -f body='Hi from CLI'
字符串端点参数中的占位符值“{owner}“、“{repo}“和“{branch}“将被替换为当前目录的存储库或GH_REPO环境变量中指定的存储库中的值。请注意,在某些shell中,例如PowerShell,您可能需要将任何包含“{...}”的值括在引号中,以防止shell对花括号应用特殊含义。
{owner}
{repo}
{branch}
GH_REPO
{...}
hivapdat2#
我决定回答我自己的问题,因为我花了几个小时才意识到这个问题的解决方案,而且我在网上找不到它。基本上,发生这种情况的原因纯粹是由于路径的编写方式。如果你删除单词'repos'前面的/,那么这个命令在PowerShell、wsl和git-bash终端上都能很好地工作。所以正确的脚本应该是:
# GitHub CLI api # https://cli.github.com/manual/gh_api gh api \ -H "Accept: application/vnd.github+json" \ repos/OWNER/REPO/pulls/PULL_NUMBER
字符串同样,这与GitHub API文档中正式编写的内容不同,因为我删除了单词“repos”之前的/。我希望这也能帮助其他人。
t2a7ltrp3#
我也遇到了类似的错误,但不是因为上面提到的原因。原因是gh api \后面有尾随空格。在我删除这些尾随空格后,得到了我所期望的响应。
gh api \
gh api \ <check spaces here, there should not be any> -H "Accept: application/vnd.github+json" \ repos/OWNER/REPO/pulls/PULL_NUMBER
字符串
3条答案
按热度按时间q3qa4bjr1#
虽然REST API中的gh代码示例确实有一个额外的
/
前缀,但实际的gh api man page没有:示例:
字符串
端点参数中的占位符值“
{owner}
“、“{repo}
“和“{branch}
“将被替换为当前目录的存储库或GH_REPO
环境变量中指定的存储库中的值。请注意,在某些shell中,例如PowerShell,您可能需要将任何包含“
{...}
”的值括在引号中,以防止shell对花括号应用特殊含义。hivapdat2#
我决定回答我自己的问题,因为我花了几个小时才意识到这个问题的解决方案,而且我在网上找不到它。基本上,发生这种情况的原因纯粹是由于路径的编写方式。如果你删除单词'repos'前面的
/
,那么这个命令在PowerShell、wsl和git-bash终端上都能很好地工作。所以正确的脚本应该是:
字符串
同样,这与GitHub API文档中正式编写的内容不同,因为我删除了单词“repos”之前的
/
。我希望这也能帮助其他人。t2a7ltrp3#
我也遇到了类似的错误,但不是因为上面提到的原因。原因是
gh api \
后面有尾随空格。在我删除这些尾随空格后,得到了我所期望的响应。字符串