【问题标题】:how can JIRA soap API not have this method?JIRA soap API怎么能没有这个方法?
【发布时间】:2009-04-18 21:49:40
【问题描述】:

我希望能够得到一个问题列表:

项目名称发布版本

这似乎是一个基本的 JIRA soap API 101 请求

看来,看文档:

http://docs.atlassian.com/software/jira/docs/api/rpc-jira-plugin/latest/index.html?com/atlassian/jira/rpc/soap/JiraSoapService.html

您可以通过以下方式解决问题:

  1. 过滤器
  2. 搜索词
  3. 搜索词和项目

但不是上面的。这是完全疏忽还是我遗漏了什么

我希望看到这样的东西:

RemoteIssue[] issues = _soapService.getIssues(string project_, string version_)

有什么帮助吗?


更新: 我看到 JIRA 4.0 已经发布,但如果 API 已更改为支持上述请求,我找不到任何文档。任何人都可以找到此链接来回答这些问题。

【问题讨论】:

    标签: api soap jira


    【解决方案1】:

    当前的 JIRA API 无法实现。他们可能会在 JIRA 4.0 中实现。

    在 JIRA 客户端中,我们通过在 URL 中请求带有搜索条件的 IssueNavigator.jspa(查找问题选项卡)并请求 RSS 输出来解决此问题;然后解析 RSS。

    我在此网络研讨会中解释了远程处理 JIRA 的一些复杂性,包括搜索:http://blogs.atlassian.com/news/2008/11/killer_jira_cli.html

    希望对你有帮助

    【讨论】:

    • 感谢您的视频。 JIRA 会让你跳过这样的圈子,这似乎令人惊讶。我知道您在视频中提到您将添加时间跟踪。 .这有什么时间表吗?它是如何工作的?
    • 另外,您如何了解 JIRA 4.0 中的内容。 SOAP API 会被扩展吗?
    • 我不知道 JIRA 4.0 中会发生什么,但已经讨论过 Atlassian 的 JIRA 4 范围,包括搜索。由于这将是一次重大升级,我认为(并希望!)API 将得到扩展。你真的应该问问 Atlassian 的人(顺便说一句,最好的地方是 Atlassian 峰会 - atlassian.com/summit)。
    • @sereda - 你能解释一下“我们通过在 URL 中使用搜索条件请求 IssueNavigator.jspa(查找问题选项卡)解决了这个问题”的意思吗? . 你在解析 HTML 吗??
    • 这个限制真的很烦人。我们正在直接访问 jira 数据库以查询我们的项目需求。我认为这不是最好的方法,但它解决了我们这里的问题。
    【解决方案2】:

    在 JIRA 4 中,您可以将 JIRA 查询语言与 SOAP 方法 getIssuesFromJqlSearch 一起使用。

    【讨论】:

    • 是的,在 JIRA 4.0+ 中,您可以使用 JQL 和 getIssuesFromJqlSearch 方法进行此搜索。
    【解决方案3】:

    由于无法很快升级到 Jira 4 并且有类似的要求,我通过搜索词和项目检索了问题,并包含了一个似乎可以用作通配符的“搜索词”:“- 0 1 2 3 4 5 6 7 8 9"。由于所有生成的问题键都是 XXX-YYY 的形式,其中 Y 是一个数字,因此应该可以找到所有问题,尽管对于大型项目可能效率不高。然后,您必须遍历结果检查版本号。

    不漂亮 - 我还没有彻底测试过 - 但它似乎有效。

    雷神

    【讨论】:

      【解决方案4】:

      可以编写一个 JIRA 插件,通过带有 RPC Endpoint Plugin Module 的 SOAP 公开所需的方法。

      【讨论】:

      • 如果 JIRA 不公开这个 API,我认为没有任何解决方案。如前所述,JIRA 4.0 正在这方面进行升级
      • 没有办法解决,除非你自己写插件或者修改已有的RPC插件(源码免费提供)。
      【解决方案5】:

      我相信您可以创建一个具有您想要的特征的过滤器 - 例如项目名称和发布版本 - 然后使用soap API获取基于该过滤器的列表,将您想要的项目名称和发布版本传递给它。我没有这个副手的例子,但我知道这是我们的应用程序所做的。缺点是你必须先手动创建一个过滤器,然后在某处硬编码它的 ID 并假设它存在,但如果你愿意那么“丑陋”。它应该适合你。

      -卡尔

      【讨论】:

      • 这就是我们正在做的,但它很臭:)
      【解决方案6】:

      Atlassian JIRA 上有一些关于 JIRA 4.0 中提供的新方法的 cmets http://jira.atlassian.com/browse/JRA-17509

      另一个问题表明 SOAP api 在优先级列表中不是很高。 根据 JRA-7614,Atlassian 建议制作 自己修改。

      我还需要一个更详细的 SOAP API(例如问题链接,...)。任何想要贡献/帮助完成它的人,所以我们可以避免做“HTML屏幕抓取”......(@sereda,谢谢你的视频)

      弗朗西斯

      【讨论】:

      • 过去几天我一直在敲击 Atlassian。我们使用 SpiraTest 进行测试用例管理,而 SOAP 接口中缺乏功能使得重要的东西丢失了,比如问题和子问题、版本层次结构、相关问题、++。我正在跟进soap接口上的所有“已解决的固定”案例,告诉他们当您刚刚为此(REST)实现另一个接口时,这无法修复。顺便说一句,在我非开发人员的眼中,这似乎真的很乱。
      【解决方案7】:

      至于 TimeTracking(抱歉,想在 seredas 答案中添加评论,但似乎我没有足够的声誉)

      我们正在运行 Jira 4.1.2,并且可以正常运行(python2.6 使用 suds):

      >>> client.service.getWorklogs(auth,"PROJ-650")
      [(RemoteWorklogImpl){
         author = "philipp"
         comment = None
         created = 2010-07-21 12:46:34
         groupLevel = None
         id = "12651"
         roleLevelId = None
         startDate = 2010-07-21 12:46:00
         timeSpent = "10 minutes"
         timeSpentInSeconds = 600
         updateAuthor = "philipp"
         updated = 2010-07-21 12:46:34
       }]
      

      【讨论】:

        【解决方案8】:

        在尝试不同选项时,我们发现了以下从 Jira 获取项目票证的解决方案:

        soapService.getIssuesFromJqlSearch(token, jql, pageSize);
        

        jql 是这样的

        issueKey > ":keyOfTheLastIssueReceived" and project = ":projectCode" order by issueKey
        

        您需要按 issueKey 排序,因为此方法仅返回问题的“pageSize”并按 issueKey 过滤以前进到下一个“页面”(从上一个“页面”结束的地方开始)

        我想你可以通过在 jql 中添加 fixVersion = ":requiredVersion" 来得到你想要的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-03-14
          • 2011-10-20
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多