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

时间:2017-10-16 14:21:23

标签: rest jira jira-rest-api

我尝试使用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

因此,我做了一个测试,我的测试Jira充满了2个成员,试图只得到一个结果,看看是否有某种指示指的是我的结果的其余部分。 提供的回复只会给出结果而没有办法知道是否有更多的1000(或我的例子中为1),它可能是合乎逻辑的,但对于一个拥有超过1000名成员的组织,列出所有这样做的用户:http://jira/rest/api/2/user/search?username=.&maxResults=1000&includeInactive=true最多只能提供1000个结果。

我得到了所有用户,无论他们的名字使用.作为匹配字符。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

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

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

首次搜索会为您提供50个用户。现在你有一个数组,你可以得到该数组的长度为50。

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

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

答案 1 :(得分:0)

从说话到Atlassian支持,似乎user/search端点has a bug where it will only ever return the first 1,000 results at most

获取JIRA实例中的所有用户的另一种可能方法是使用Crowd API的/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调用中使用:

  • 转到用户管理。
  • 选择JIRA用户服务器。
  • 添加应用程序。
  • 输入访问JIRA服务器应用程序时应用程序将使用的应用程序名称和密码。
  • 输入应用程序的IP地址,地址或IP CIDR块,然后单击“保存”。