【问题标题】:how to get the project specific jira issues using jira rest api in .net?如何在 .net 中使用 jira rest api 获取项目特定的 jira 问题?
【发布时间】:2013-09-24 04:10:16
【问题描述】:

我有一个要求,我需要在 jira 中获取特定项目的所有问题,因此为此我创建了一个控制台应用程序,该应用程序具有 rest 客户端类,我使用它进行 GET 请求调用并用于测试目的 rest api url是

https://jira.atlassian.com/rest/api/latest/issue/JRA-9

使用这个 url 我创建了一个 HttpWebRequest 并以 json 格式的字符串返回响应。现在这个 json 字符串包含所有特定问题的信息,但我的实际要求是获取所有项目特定问题。

我试图找出是否有任何项目特定的 URL 用于测试目的,我从那里得到 json 回复,我找到了http://kelpie9:8081/rest/api/2/search?jql=project=QA+order+by+duedate&fields=id,key,但为此我得到“无法解析远程名称:'kelpie9'”错误。

您能帮我解决这个问题吗? `

【问题讨论】:

    标签: c# json api rest


    【解决方案1】:

    JIRA 的 REST API 目前似乎不支持与 search API 分开的任何基于 project 的查询。

    您可以使用 JQL 在搜索中指定特定项目。假设您知道一个项目(例如,“JRA-9”中的“JRA”),那么您可以快速搜索它的所有问题:

    工作结果:https://jira.atlassian.com/rest/api/latest/search?jql=project=JRA

    一个重要的注意事项是,结果返回的是实际总数与实际返回的总数:

    "startAt":0,"maxResults":50,"total":30177
    

    您可以将查询字符串变量添加到请求中以获得更多(或更少)结果。您还可以控制与要检索的问题相关的字段:https://jira.atlassian.com/rest/api/latest/search?jql=project=JRA&startAt=75&maxResults=75(您请求的越多越慢,并且可能不太好用大量数字访问他们的公共服务器)。

    您甚至可以 POST 一个表示查询的 JSON 对象(根据链接的 search 文档稍作调整):

    {"jql":"project = JRA","startAt":75,"maxResults":75,"fields":["id","key"]}
    

    有趣的是,作为 JQL 的一部分,您可以按任何字段对结果进行排序。只需在项目名称中添加“order by id”,如查询字符串中的“jql=JRA+order+by+id”或POSTed JSON 正文中的"jql": "project = JRA order by id"


    注意:以上是对真实问题的实际答案。但是,字面问题是“无法解析远程名称:'kelpie9'错误的原因。

    他们的文档显示kelpie9 作为他们正在内部测试的示例服务器名称,在端口8081 上运行。您的计算机不知道名为 kelpie9 的服务器/机器,因为它不公开存在。将 kelpie9 替换为您的 JIRA 服务器内部的主机名,并将 8081 替换为它正在使用的任何端口(或者如果您在 Intranet 站点上查看 JIRA 时没有看到一个端口,则将其删除,这意味着端口 80 用于 http 和端口 443对于 https)。例如,许多公司将其运行为"https://jira/"。您可以将示例链接替换为 https://jira/rest/api/2/search?jql=project=QA+order+by+duedate&fields=id,key

    【讨论】:

    • 感谢您的回答,它非常有用。我有一个问题,我尝试使用“jira.atlassian.com/rest/api/latest/…”,它工作正常,但是当我尝试使用我们的内部jira“jira2.ms.com/jira/issues/…”时,httpWebRequest 要求我提供用户凭据并提供,然后在我得到响应,但它是 json 的 html 源代码。我怀疑我使用的 URL 不是 JIRA REST API URL。你知道出了什么问题吗?
    • 有人可以回答我上面的问题吗?
    • 如您所想,您查询的是内部站点,而不是 JIRA REST API。我希望您应该查询 jira2.ms.com/jira/rest/api/latest/… 。至于授权,你可以在HTTP请求中提供appropriate headers
    • 现在我已经完成了所有 jira 问题,现在我想使用 reat api 获取 jira 时间表。我尝试了这个 rest api url "jira.atlassian.com/rest/timesheet-gadget/1.0/raw-timesheet.json" 但它确实有效。你能告诉我有什么问题吗?
    • 没用过,抱歉。
    猜你喜欢
    • 2023-02-10
    • 1970-01-01
    • 2023-03-28
    • 2016-10-15
    • 1970-01-01
    • 2020-05-16
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多