Commit d3508619 authored by Alex's avatar Alex Committed by Greg Messner
Browse files

Get project users (#87)

* Get project users (not members)
https://docs.gitlab.com/ce/api/projects.html#get-project-users

* Removed wildcard imports
parent 56306fcf
...@@ -23,23 +23,23 @@ ...@@ -23,23 +23,23 @@
package org.gitlab4j.api; package org.gitlab4j.api;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
import org.gitlab4j.api.GitLabApi.ApiVersion; import org.gitlab4j.api.GitLabApi.ApiVersion;
import org.gitlab4j.api.models.Event; import org.gitlab4j.api.models.Event;
import org.gitlab4j.api.models.Issue; import org.gitlab4j.api.models.Issue;
import org.gitlab4j.api.models.Member; import org.gitlab4j.api.models.Member;
import org.gitlab4j.api.models.Project; import org.gitlab4j.api.models.Project;
import org.gitlab4j.api.models.ProjectHook; import org.gitlab4j.api.models.ProjectHook;
import org.gitlab4j.api.models.ProjectUser;
import org.gitlab4j.api.models.Snippet; import org.gitlab4j.api.models.Snippet;
import org.gitlab4j.api.models.Visibility; import org.gitlab4j.api.models.Visibility;
import javax.ws.rs.core.Form;
import javax.ws.rs.core.GenericType;
import javax.ws.rs.core.Response;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
/** /**
* This class provides an entry point to all the GitLab API project calls. * This class provides an entry point to all the GitLab API project calls.
*/ */
...@@ -112,8 +112,8 @@ public class ProjectApi extends AbstractApi implements Constants { ...@@ -112,8 +112,8 @@ public class ProjectApi extends AbstractApi implements Constants {
* Constants.ProjectOrderBy, Constants.SortOrder, String, Boolean, Boolean, Boolean, Boolean, Boolean)} * Constants.ProjectOrderBy, Constants.SortOrder, String, Boolean, Boolean, Boolean, Boolean, Boolean)}
*/ */
public List<Project> getProjects(Boolean archived, Visibility visibility, String orderBy, public List<Project> getProjects(Boolean archived, Visibility visibility, String orderBy,
String sort, String search, Boolean simple, Boolean owned, Boolean membership, String sort, String search, Boolean simple, Boolean owned, Boolean membership,
Boolean starred, Boolean statistics) throws GitLabApiException { Boolean starred, Boolean statistics) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm() GitLabApiForm formData = new GitLabApiForm()
.withParam("archived", archived) .withParam("archived", archived)
...@@ -921,6 +921,17 @@ public class ProjectApi extends AbstractApi implements Constants { ...@@ -921,6 +921,17 @@ public class ProjectApi extends AbstractApi implements Constants {
delete(expectedStatus, null, "projects", projectId, "members", userId); delete(expectedStatus, null, "projects", projectId, "members", userId);
} }
/**
* Get a list of project users. This list includes all project members and all users assigned to project parent groups.
* @param projectId the project ID to get users for
* @return the users belonging to the specified project and its parent groups
* @throws GitLabApiException
*/
public List<ProjectUser> getProjectUsers(Integer projectId) throws GitLabApiException {
Response response = get(Response.Status.OK, this.getDefaultPerPageParam(), "projects", projectId, "users");
return (response.readEntity(new GenericType<List<ProjectUser>>() {}));
}
/** /**
* Get the project events for specific project. Sorted from newest to latest. * Get the project events for specific project. Sorted from newest to latest.
* *
......
package org.gitlab4j.api.models;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ProjectUser {
private Integer id;
private String username;
private String name;
private String state;
private String avatarUrl;
private String webUrl;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getAvatarUrl() {
return avatarUrl;
}
public void setAvatarUrl(String avatarUrl) {
this.avatarUrl = avatarUrl;
}
public String getWebUrl() {
return webUrl;
}
public void setWebUrl(String webUrl) {
this.webUrl = webUrl;
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment