Skip to content

Commit d350861

Browse files
bobkovalexgmessner
authored andcommitted
Get project users (#87)
* Get project users (not members) https://docs.gitlab.com/ce/api/projects.html#get-project-users * Removed wildcard imports
1 parent 56306fc commit d350861

File tree

2 files changed

+86
-10
lines changed

2 files changed

+86
-10
lines changed

src/main/java/org/gitlab4j/api/ProjectApi.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,23 @@
2323

2424
package org.gitlab4j.api;
2525

26-
import java.io.UnsupportedEncodingException;
27-
import java.net.URLEncoder;
28-
import java.util.List;
29-
30-
import javax.ws.rs.core.Form;
31-
import javax.ws.rs.core.GenericType;
32-
import javax.ws.rs.core.Response;
33-
3426
import org.gitlab4j.api.GitLabApi.ApiVersion;
3527
import org.gitlab4j.api.models.Event;
3628
import org.gitlab4j.api.models.Issue;
3729
import org.gitlab4j.api.models.Member;
3830
import org.gitlab4j.api.models.Project;
3931
import org.gitlab4j.api.models.ProjectHook;
32+
import org.gitlab4j.api.models.ProjectUser;
4033
import org.gitlab4j.api.models.Snippet;
4134
import org.gitlab4j.api.models.Visibility;
4235

36+
import javax.ws.rs.core.Form;
37+
import javax.ws.rs.core.GenericType;
38+
import javax.ws.rs.core.Response;
39+
import java.io.UnsupportedEncodingException;
40+
import java.net.URLEncoder;
41+
import java.util.List;
42+
4343
/**
4444
* This class provides an entry point to all the GitLab API project calls.
4545
*/
@@ -112,8 +112,8 @@ public Pager<Project> getProjects(int itemsPerPage) throws GitLabApiException {
112112
* Constants.ProjectOrderBy, Constants.SortOrder, String, Boolean, Boolean, Boolean, Boolean, Boolean)}
113113
*/
114114
public List<Project> getProjects(Boolean archived, Visibility visibility, String orderBy,
115-
String sort, String search, Boolean simple, Boolean owned, Boolean membership,
116-
Boolean starred, Boolean statistics) throws GitLabApiException {
115+
String sort, String search, Boolean simple, Boolean owned, Boolean membership,
116+
Boolean starred, Boolean statistics) throws GitLabApiException {
117117

118118
GitLabApiForm formData = new GitLabApiForm()
119119
.withParam("archived", archived)
@@ -921,6 +921,17 @@ public void removeMember(Integer projectId, Integer userId) throws GitLabApiExce
921921
delete(expectedStatus, null, "projects", projectId, "members", userId);
922922
}
923923

924+
/**
925+
* Get a list of project users. This list includes all project members and all users assigned to project parent groups.
926+
* @param projectId the project ID to get users for
927+
* @return the users belonging to the specified project and its parent groups
928+
* @throws GitLabApiException
929+
*/
930+
public List<ProjectUser> getProjectUsers(Integer projectId) throws GitLabApiException {
931+
Response response = get(Response.Status.OK, this.getDefaultPerPageParam(), "projects", projectId, "users");
932+
return (response.readEntity(new GenericType<List<ProjectUser>>() {}));
933+
}
934+
924935
/**
925936
* Get the project events for specific project. Sorted from newest to latest.
926937
*
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package org.gitlab4j.api.models;
2+
3+
import javax.xml.bind.annotation.XmlAccessType;
4+
import javax.xml.bind.annotation.XmlAccessorType;
5+
import javax.xml.bind.annotation.XmlRootElement;
6+
7+
@XmlRootElement
8+
@XmlAccessorType(XmlAccessType.FIELD)
9+
public class ProjectUser {
10+
11+
private Integer id;
12+
private String username;
13+
private String name;
14+
private String state;
15+
private String avatarUrl;
16+
private String webUrl;
17+
18+
public Integer getId() {
19+
return id;
20+
}
21+
22+
public void setId(Integer id) {
23+
this.id = id;
24+
}
25+
26+
public String getUsername() {
27+
return username;
28+
}
29+
30+
public void setUsername(String username) {
31+
this.username = username;
32+
}
33+
34+
public String getName() {
35+
return name;
36+
}
37+
38+
public void setName(String name) {
39+
this.name = name;
40+
}
41+
42+
public String getState() {
43+
return state;
44+
}
45+
46+
public void setState(String state) {
47+
this.state = state;
48+
}
49+
50+
public String getAvatarUrl() {
51+
return avatarUrl;
52+
}
53+
54+
public void setAvatarUrl(String avatarUrl) {
55+
this.avatarUrl = avatarUrl;
56+
}
57+
58+
public String getWebUrl() {
59+
return webUrl;
60+
}
61+
62+
public void setWebUrl(String webUrl) {
63+
this.webUrl = webUrl;
64+
}
65+
}

0 commit comments

Comments
 (0)