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

问题描述 投票:2回答:2

我正在尝试使用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个结果。

无论他们的名字使用.作为匹配角色,我都会得到所有用户。

谢谢你的帮助!

rest jira jira-rest-api
2个回答
1
投票

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

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

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

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

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


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来创建Crowd凭据(上面的username:password参数),供您的应用程序在其REST API调用中使用:

  • 转到用户管理。
  • 选择JIRA用户服务器。
  • 添加应用程序。
  • 输入应用程序在访问JIRA服务器应用程序时将使用的应用程序名称和密码。
  • 输入应用程序的IP地址,地址或IP CIDR块,然后单击“保存”。
© www.soinside.com 2019 - 2024. All rights reserved.