我怎样才能使用吉拉的REST API的所有用户的列表。
我努力了:-
/rest/api/latest/user/search?username=
在这里,我试图用空白的用户名字符串,但它并没有返回完整用户列表。 我们只能得到一些结果时,用户名是 - 至少1长度。
我怎样才能从吉拉休息API的全名用户的列表?
我怎样才能使用吉拉的REST API的所有用户的列表。
我努力了:-
/rest/api/latest/user/search?username=
在这里,我试图用空白的用户名字符串,但它并没有返回完整用户列表。 我们只能得到一些结果时,用户名是 - 至少1长度。
我怎样才能从吉拉休息API的全名用户的列表?
我不认为REST API有这个能力。 据我所知,你必须选择不同的方式,例如,你可以使用SOAP API也这样做显示在此问题JIRA SOAP API:获取用户列表 。 另一种方式可能是直接查询数据库 。
你可以做一个循环中,你将通过所有的字母和另一个循环显示每个用户的结果卫生组织名称以此字母开头。 是这样的:
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);
}
我有时也用在JIRA用户的SOAP getGroup方法来获得JIRA用户的成员,但它似乎错过了一些用户在出5K左右,而且你必须运行它作为JIRA管理员用户。 更好的方式是,如果你可以直接访问AD。
这是我在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参数,看它是否有支持某种分页的。
您可以使用 /rest/api/2/group/member?groupname=
如果你是一个管理员用户。 否则,这是不可用的。
我希望得到所有用户在我的电子邮件域。 由于JIRA搜索用户名,显示名,并EMAILADDRESS与username参数,所有我需要做的是指定的用户名= mydomain.com作为参数和我在电子邮件领域得到了用户的完整列表。 如果要扩大搜索到多个域,尝试使用用户名= .COM。 心连心。
/rest/api/2/user/search?username=%
的作品。