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

Finding all the users in Jira using the 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 个成员的组织,列出所有正在做的用户this : 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 调用中使用:

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