【问题标题】:Efficient ways to find the highest JIRA issue ID in a project在项目中查找最高 JIRA 问题 ID 的有效方法
【发布时间】:2012-07-23 17:23:21
【问题描述】:

我正在尝试使用 JIRA SOAP API 优雅地确定某个项目中 JIRA 问题的所有 ID 号中最高的 ID 号。上限很好;我不需要确切的答案。

我想通过查找现有问题的数量来做到这一点,但我没有找到一个很好的方法来做到这一点。我还想也许我可以创建一个新问题,并使用新问题的 ID 号作为问题的数量。这不是一个很好的方法,因为我有一个没有意义的额外问题。

有什么想法吗?

【问题讨论】:

  • 为什么需要知道它?知道最高 ID 会告诉你什么?问题数?如果是这样,您如何处理已删除的问题?
  • 这是一个非常不确定的提议。当有人在您的代码运行时添加问题时应该发生什么?
  • 我想浏览所有问题,并对其中一些符合标准的问题进行处理。最高 ID 告诉我可以停止扫描的数字。不需要考虑已删除的问题,因为我不在乎有多少问题;我只想知道什么时候停止扫描。
  • 汉斯 - 这是一个有效的担忧。但是,我认为我只需将 100 左右添加到我用作最大 ID 的值。这有点草率,但会奏效。 (当我尝试通过不存在的 id 访问问题时,我会有一个 catch 语句。)
  • 我已经更新了我的答案,请通过它了解这样做的风险。

标签: c# api soap jira


【解决方案1】:
  • 执行搜索 (http://example.com:8080/jira/rest/api/2/search) 将 "maxResults" 值设置为您想要的任何值并 startAt = 0
  • 对这些值做任何你想做的事情,同时保持这个查询返回的计数累积计数。
  • 如果 queryCount == maxResults,则使用 maxResults 和 startAt = 累积计数进行搜索。
  • 如果 queryCount != maxResults,您就完成了。

【讨论】:

    【解决方案2】:

    我会以不同的方式完成此操作,我会使用 Jira Scripting Suite 创建一个后函数,将当前问题密钥写入磁盘的某个位置,并将该函数放在进入 @987654323 的事务中@ 地位。通过这种方式,您可以轻松快速高效地检索最新的问题编号。

    工作代码:

    import os
    f = open('/tmp/workfile', 'w+')
    f.write(str(issue.getKey()))
    f.close()
    

    请注意 - 解决问题并不精确且效率不高!

    如果您有很多问题,则必须通过所有问题才能找到最后一个问题,这与我的解决方案不同,它可以让您非常快速地知道最后一个问题的关键是什么。同样,假设某人错误地将问题从一个项目转移到另一个项目,注意到他的错误,然后将问题移回。如果在复制之前最高问题密钥是 200,并且复制了 200 个问题而不是删除,则当前最高问题密钥是 400,即使最后一个问题在索引 200 处。你怎么知道没有更多问题?相当于halting problem

    【讨论】:

      【解决方案3】:

      我过去遇到过这个问题,只是使用了如果无法检索连续 5 个问题的方法,那么您已经找到了最新的问题。当一个问题被移动到另一个项目或被删除时,问题键的序列中会出现一个漏洞。

      我想从 2^16 开始的二进制印章也可以涵盖大多数情况。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-01
        • 1970-01-01
        • 2020-02-21
        • 1970-01-01
        • 2014-07-11
        相关资源
        最近更新 更多