【问题标题】:How to set an issue pipeline with ZenHub API如何使用 ZenHub API 设置问题管道
【发布时间】:2018-05-31 08:10:02
【问题描述】:

我们在企业 GitHub 安装中使用 ZenHub。我正在编写一个脚本来将问题从一个 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 中的错误还是我做错了什么。

【问题讨论】:

    标签: python api github zenhub


    【解决方案1】:

    来自 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)
    

    移动问题端点的文档在here 可用。干杯,

    【讨论】:

    • 谢谢巴勃罗,这很有效。跟进问题。当使用POST.../convert_to_epic 创建史诗时,如果我将正文编码为字符串,我可以解决的失败:{'issues': [{ "repo_id": repo, "issue_number": 1 }, { "repo_id": repo, "issue_number": 2 }]}
    • 我将通过支持来回答这个问题,因为它涉及不同的主题。干杯!
    • 仍在尝试让创建史诗工作。我创建了一个新问题Creating an epic from a Github Issue
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2020-04-02
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多