【问题标题】:Creating an Epic from a Github Issue with Zenhub API使用 Zenhub API 从 Github 问题创建 Epic
【发布时间】:2018-01-13 20:04:19
【问题描述】:

这是How to set an issue pipeline with 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_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":"Invalid Field for addIssues: repo_id,issue_number"}'。这些字段如API doc 中所述。

【问题讨论】:

    标签: python github zenhub


    【解决方案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":[]} 正文的调用会成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-31
      • 1970-01-01
      • 1970-01-01
      • 2014-09-22
      • 2020-10-17
      • 2018-08-08
      相关资源
      最近更新 更多