我正在尝试使用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个结果。
无论他们的名字使用.
作为匹配角色,我都会得到所有用户。
谢谢你的帮助!
你可以做的是手动计算用户数量。
假设您的系统中有98个用户。
首次搜索将为您提供50个用户。现在你有了一个数组,你可以得到该数组的长度为50。
由于您不知道是否有50或51个用户,因此使用参数&startAt=50
执行另一个搜索。
这次数组长度为48而不是50,您知道您已经到达系统中的所有用户。
从说话到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调用中使用: