GitHub Enterprise中使用REST API添加标签时出现数组输入错误

85次阅读
没有评论

问题描述

在使用GitHub Enterprise进行开发时,通过REST API创建Jira、创建PR等操作都没有问题。然而,当尝试为PR添加标签时,对于数组输入出现错误。
用户使用的curl命令如下:

curl -X POST -u githuser:gittoken https://api.github.mycompany.com/repos/team/repo/issues/560/labels -H "Content-type: application/json" -k -d '{"labels": ["bug"]}' -H "Accept: application/json"

错误信息如下:

{
  "message": "Invalid request.\n\nFor 'links/2/schema', {\"labels\"=>[\"bug\"]} is not an array.",
  "documentation_url": "https://developer.github.com/enterprise/2.13/v3/issues/labels/#add-labels-to-an-issue"
}

用户确认bug标签是有效的。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

最佳解决方案

根据我对文档的理解,你应该直接发送一个数组作为有效的JSON,而不需要将其包装在对象中。即使用["bug"]代替{"labels": ["bug"]}
因此,正确的请求应该是:

curl -X POST -u githuser:gittoken \
    https://api.github.mycompany.com/repos/team/repo/issues/560/labels \
    -H "Content-type: application/json" -k \
    -d '["bug"]' \
    -H "Accept: application/json"

这样,你将直接发送一个包含"bug"的标签数组,而不是将它嵌套在一个对象中。

补充说明

值得注意的是,企业版的API文档可能与标准版的API文档存在差异。如果你仍然遇到问题,可以尝试查阅GitHub Enterprise版本的API文档,或者联系技术支持获取更多帮助。

如果你决定联系技术支持,请务必分享你的发现,这有助于更好地理解标准版和企业版文档之间的差异。

总结

在使用GitHub Enterprise的REST API进行开发时,如果在添加标签时遇到数组输入错误,你可以尝试直接发送包含标签的数组,而不是将其嵌套在对象中。此外,如果问题仍然存在,可以查阅企业版API文档或联系技术支持获取更多帮助。

注意:以上解决方案建议可能会因为GitHub Enterprise版本差异而有所不同,请在实际操作前仔细查阅文档并备份重要数据。


希望这个解决方案对你有所帮助。如果还有其他问题或需要进一步的解释,请随时提问。

正文完