问题描述
在使用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版本差异而有所不同,请在实际操作前仔细查阅文档并备份重要数据。
希望这个解决方案对你有所帮助。如果还有其他问题或需要进一步的解释,请随时提问。
正文完