1

这是如何使用 zenhub 设置问题管道的后续问题。

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

这有效:

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":[]}

但是当我尝试添加一个问题时params = {"issues": [{"repo_id": 280565, "issue_number": 17}]}

我收到 400 错误,b'{"message":"Invalid Field for issues: [object Object],[object Object]"}'

然后我尝试使用/update_issuesAPI 将问题添加到我创建的史诗中。

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)

这导致了 400 错误,b'{"message":"Invalid Field for addIssues: repo_id,issue_number"}'. 这些字段如API 文档中所述。

4

1 回答 1

2

我通过添加'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)

虽然我不确定为什么带有 unstringified 的调用{"issues":[]}会成功。

于 2018-01-15T19:18:42.057 回答