代码之家  ›  专栏  ›  技术社区  ›  PaulB

使用REST API查找Jira中的所有用户

  •  2
  • PaulB  · 技术社区  · 7 年前

    我正在尝试使用REST API列出Jira中的所有用户,我目前正在使用GET使用搜索用户功能: https://docs.atlassian.com/jira/REST/server/#api/2/user-findUsers

    问题是,默认情况下,结果将显示50个第一个结果,我们可以将该结果扩展到1000个。与REST API中的其他可用功能相比,这里没有指定分页。 例如,组成员功能: https://docs.atlassian.com/jira/REST/server/#api/2/group-getUsersFromGroup

    提供的回复只会给出结果,没有办法知道是否有超过1000名的用户(在我的示例中是1名),这可能是合乎逻辑的,但如果一个组织有超过1000名成员,则列出所有这样做的用户: http://jira/rest/api/2/user/search?username=.&maxResults=1000&includeInactive=true 最多只能给出1000个结果。

    无论用户的名字是什么,我都能找到他们 .

    谢谢你的帮助!

    2 回复  |  直到 6 年前
        1
  •  1
  •   Roberto Russo    7 年前

    您可以做的是手动计算用户数量。

    假设您的系统中有98个用户。

    第一次搜索将提供50个用户。现在你有一个数组,你可以得到该数组的长度是50。

    由于您不知道是否有50或51个用户,因此可以使用参数执行另一个搜索 &startAt=50 .

    这一次,数组长度是48而不是50,您知道您已经到达了系统中的所有用户。

        2
  •  0
  •   Adil B Cleve Green    6 年前

    从对亚特兰西人的支持来看 user/search 端点 has a bug where it will only ever return the first 1,000 results at most .

    /rest/usermanagement/1/search 端点:

    curl -X GET \
      'https://jira.url/rest/usermanagement/1/search?entity-type=user&start-index=0&max-results=1000&expand=user' \
      -H 'Accept: application/json' -u username:password
    

    您需要创建一个 new JIRA User Server entry username:password 参数),以便应用程序在其REST API调用中使用:

    • 输入应用程序的IP地址、地址或IP CIDR块,然后单击保存。