获取完整用户列表的Jira Rest Api

时间:2012-07-24 13:33:09

标签: rest jira

如何使用Jira Rest Apis获取所有用户的列表。

我试过了: -

/rest/api/latest/user/search?username=

这里我尝试使用空白用户名字符串,但它不会返回完整的用户列表。当用户名长度至少为1时,我们只会得到一些结果。

如何从Jira rest API获取完整用户列表?

7 个答案:

答案 0 :(得分:2)

我不认为Rest API具有此功能。据我所知,您必须选择不同的方式,例如,您可以使用Soap API执行此操作,如此问题JIRA SOAP API : get the list of users中所示。另一种方式可能是querying the DB directly

答案 1 :(得分:1)

您可以创建一个循环,在其中您将浏览所有字母和另一个循环,以显示名称以此字母开头的每个用户的结果。像这样的东西:

char[] ch = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

int j = ch.length;
 for (int i = 0; i < ch.length; i++)
                        {
                            System.out.print(Character.toString(Character.toUpperCase(ch[i])));
                            --j;

String projects = invokeGetMethod(auth, BASE_URL+"/rest/api/2/user/search?username="+Character.toString(ch[i]));
                            System.out.println(projects);
                            JSONArray projectArray = new JSONArray(projects);
                            for (int k = 0; k < projectArray.length(); k++) {
                            JSONObject proj = projectArray.getJSONObject(k);
                            System.out.println("Key:"+proj.getString("key"));
}

}

 private static String invokeGetMethod(String auth, String url) throws AuthenticationException, ClientHandlerException {
        Client client = Client.create();
        WebResource webResource = client.resource(url);
        ClientResponse response = webResource.header("Authorization", "Basic " + auth).type("application/json")
                .accept("application/json").get(ClientResponse.class);
        int statusCode = response.getStatus();
        if (statusCode == 401) {
            throw new AuthenticationException("Invalid Username or Password");
        }
        return response.getEntity(String.class);
    }

答案 2 :(得分:0)

我有时会在jira-users上使用SOAP getGroup方法来获取jira-users的成员但是它似乎错过了大约5K的一些用户,并且你必须以JIRA管理员用户身份运行它。如果可以的话,更好的方法是直接访问AD。

答案 3 :(得分:0)

这是我在perl中使用的一个例子。我相信它可以改进,但它对我有用。 只需相应地更改“用户”和“密码”。

#!/usr/bin/env perl
use strict;
use warnings;
use 5.10.0;
use Data::Dumper;
use JIRA::REST;

$Data::Dumper::Sortkeys = 1;

my $jira='http://jira:8080';

my $jirarest = JIRA::REST->new($jira, 'user', 'password');

my %users;

for my $c ( 'a' .. 'z', '0'..'9' ,'_') {
    say "Scanning '$c'";
    my @u =  @{$jirarest->GET("/user/search?username=$c&includeInactive=1&maxResults=1000")};
    say scalar (keys @u);
    @users{  map {$_->{name}} @u } =  @u;
}

say Dumper(\%users);

say scalar (keys %users);

主要假设是没有单个字符超过1000个条目。我将调查startAt参数,看看它是否支持某种分页。

答案 4 :(得分:0)

如果您是管理员用户,请

You can use /rest/api/2/group/member?groupname=。否则,这不可用。

答案 5 :(得分:-1)

我希望获得我的电子邮件域中的所有用户。因为JIRA使用username参数搜索username,displayName和emailAddress,所以我需要做的就是指定username = mydomain.com作为参数,我在我的电子邮件域中获得了完整的用户列表。如果您想将搜索范围扩大到多个域,请尝试使用username = .com。第h

答案 6 :(得分:-1)

/rest/api/2/user/search?username=%有效。