2

我们将 ZenHub 与我们的企业 GitHub 安装一起使用。我正在编写一个脚本来将问题从一个 GitHub 存储库转移到另一个,包括 ZenHub 信息。我已经复制了问题、标签和里程碑。然后我使用 ZenHub API 来设置估算值并创建史诗。一切正常。我的最后一步是将问题分配给 ZenHub 管道。以下工作正常(获取有关问题的信息):

zenhub_headers = {"X-Authentication-Token": "%s" % zenhub_token}
url = '%s/p1/repositories/%d/issues/15' % (zenhub_endpoint, repo)
response = requests.get(url, headers=zenhub_headers, verify=False)

但是,当我尝试使用以下内容将相同的问题移至管道时:

params = json.dumps({"pipeline_id": "5a36d8584b9b9e57bc9729f9"} )
zenhub_headers = {"X-Authentication-Token": "%s" % zenhub_token}
url = '%s/p1/repositories/%d/issues/15/moves' % (zenhub_endpoint, repo)
response = requests.post(url, headers=zenhub_headers, data=params, verify=False)

我得到一个400 b'{"message":"Invalid Field for pipeline_id: undefined"}':。我已经验证5a36d8584b9b9e57bc9729f9目标仓库中确实存在管道。

API 仍处于测试状态。我想知道这是 API 中的错误还是我做错了什么。

4

1 回答 1

2

来自 ZenHub 的 Pablo 在这里。这里的问题是请求格式不正确。缺少该position参数,并且您不需要将请求正文编码为字符串,您可以直接发送字典:

import requests

# No need to stringify
params = {
    "pipeline_id": "5a36d8584b9b9e57bc9729f9",
    "position": "top"
}

# some code omitted here...

response = requests.post(url, headers=zenhub_headers, data=params, verify=False)

移动问题端点的文档可在此处获得。干杯,

于 2017-12-18T16:41:13.140 回答