python - 使用 Zenhub API 从 Github 问题创建史诗

标签 python github zenhub

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

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

这有效:

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":"问题字段无效:[object Object],[object Object]"}'

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

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":"addIssues 的无效字段:repo_id,issue_number"}'。这些字段如 API doc 中所述。 .

最佳答案

我通过将 'Content-Type': 'application/json' 添加到我的 header 并将 JSON 正文转储到字符串中来实现此目的,params = json.dumps({ “问题”:[{“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":[]} 正文的调用会成功。

关于python - 使用 Zenhub API 从 Github 问题创建史诗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48243820/

相关文章:

github - 获取GitHub问题的管道值(value)?

python - PyCharm 终端的默认值?

python - 如何修复传递 int 数组时的段错误?

python - 当模块名称中包含 '-' 破折号或连字符时如何导入模块?

python - 如何在 wxPython ObjectListView list_ctrl 中更改现有项目字符串的值

java - 我需要帮助来设置 Reddit API

ios - 为现有的 GitHub 存储库创建 CocoaPod

javascript - 使用 Node 使用用户 ID 在 github 上创建要点