使用Zenhub API从Github问题创建Epic

时间:2018-01-13 20:04:19

标签: python github zenhub

这是How to set an issue pipeline with zenhub的后续问题。

我试图将问题转换为Python脚本中的史诗。我可以将问题转换为Epic,但是当我在创建史诗时尝试添加问题时出现错误。

这有效:

right

当我设置zenhub_headers = {"X-Authentication-Token": "%s" % token} target_zh_issues_url = '%s/p1/repositories/%d/issues' % (zh_api_endpoint, target_repo_id) params = {} response = requests.post(target_zh_issues_url + '/%s/convert_to_epic' % issue, headers=zenhub_headers, data=params)

时,代码也有效

但是当我尝试使用params = {"issues":[]}

添加问题时

我收到400错误params = {"issues": [{"repo_id": 280565, "issue_number": 17}]}

然后我尝试使用b'{"message":"Invalid Field for issues: [object Object],[object Object]"}' API将问题添加到我创建的史诗中。

/update_issues

这导致了400错误target_zh_epics_url = '%s/p1/repositories/%d/epics' % (zh_api_endpoint, target_repo_id) params = {"add_issues": [{"repo_id": 280565, "issue_number": 17}]} response = requests.post(target_zh_epics_url + '/%s/update_issues' % issue, headers=zenhub_headers, data=params) 。这些字段如API doc中所述。

1 个答案:

答案 0 :(得分:1)

我通过将'Content-Type': 'application/json'添加到我的标头并将JSON正文转储到字符串params = json.dumps({"issues": [{"repo_id": 280565, "issue_number": 17}]})

来实现此功能

我的代码现在看起来像:

zenhub_headers = {"X-Authentication-Token": "%s" % token, 'Content-Type': 'application/json'}
target_zh_issues_url = '%s/p1/repositories/%d/issues' % (zh_api_endpoint, target_repo_id)
params = json.dumps({"issues": [{"repo_id": 280565, "issue_number": 17}]})
response = requests.post(target_zh_issues_url + '/%s/convert_to_epic' % issue, headers=zenhub_headers, data=params)

虽然我不确定为什么带有未经过限制的{"issues":[]}正文的电话会成功。