使用RESTAPI查找Jira中的所有用户

使用RESTAPI查找Jira中的所有用户,rest,jira,jira-rest-api,Rest,Jira,Jira Rest Api,我正在尝试使用REST API列出Jira中的所有用户,目前我正在使用GET: 问题是它说,默认情况下,结果将显示50个第一个结果,我们可以将结果扩展到1000个。与RESTAPI中的其他可用功能相比,此处未指定分页。 例如,组成员功能: 因此,我做了一个测试,我的测试Jira有两个成员,试图只得到一个结果,看看是否有某种迹象表明我的其他结果。 提供的回复只会给出结果,没有办法知道是否有超过N 1000(或者在我的示例中是1),这可能是合乎逻辑的,但是对于一个拥有超过1000名成员的组织,列出所

我正在尝试使用REST API列出Jira中的所有用户,目前我正在使用GET:

问题是它说,默认情况下,结果将显示50个第一个结果,我们可以将结果扩展到1000个。与RESTAPI中的其他可用功能相比,此处未指定分页。 例如,组成员功能:

因此,我做了一个测试,我的测试Jira有两个成员,试图只得到一个结果,看看是否有某种迹象表明我的其他结果。 提供的回复只会给出结果,没有办法知道是否有超过N 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支持人员交谈时,它看起来像是
用户/搜索
端点

获取JIRA实例中所有用户的另一种可能方法是使用群组API的端点:

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
您需要创建群组凭据(上面的
username:password
参数),以便应用程序在其REST API调用中使用:

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

这意味着即使没有用户,我也不得不再打一次电话,只是为了检查我是否完成了列表?我不明白为什么他们在某处没有实现分页系统else@PaulB我同意你的看法。他们应该为问题搜索添加一个类似的字段
total
。不幸的是,您可以获得的最大用户数是1000。您的
curl
示例包括基于令牌的授权,但您的步骤描述了设置基于密码的外部应用程序。如何将这些凭据与外部应用程序(如
curl
)一起使用?此外,还需要为外部应用程序指定IP地址或范围。当应用程序可以在基于DHCP的客户端上运行时,您如何处理这个问题?谢谢@jimtut,我已经更新了我的答案,以显示username:password参数也可以工作。在基于DHCP的客户端中,您仍然会运气不佳,但至少可以指定一个CIDR范围,以防您的客户端有一个可能连接到JIRA的IP范围。