Commit df7e1ec8 authored by Greg Messner's avatar Greg Messner
Browse files

Added support for transfer project (#276).

parent 437b75a9
...@@ -20,6 +20,9 @@ TEST_GROUP= ...@@ -20,6 +20,9 @@ TEST_GROUP=
TEST_GROUP_PROJECT= TEST_GROUP_PROJECT=
TEST_GROUP_MEMBER_USERNAME= TEST_GROUP_MEMBER_USERNAME=
# OPTIONAL: Used to test transfer project
TEST_XFER_NAMESPACE=
# OPTIONAL: To test oauth2Login, set these properties # OPTIONAL: To test oauth2Login, set these properties
TEST_LOGIN_USERNAME= TEST_LOGIN_USERNAME=
TEST_LOGIN_PASSWORD= TEST_LOGIN_PASSWORD=
......
...@@ -2165,4 +2165,20 @@ public class ProjectApi extends AbstractApi implements Constants { ...@@ -2165,4 +2165,20 @@ public class ProjectApi extends AbstractApi implements Constants {
Response response = get(Response.Status.OK, null, "projects", getProjectIdOrPath(projectIdOrPath), "languages"); Response response = get(Response.Status.OK, null, "projects", getProjectIdOrPath(projectIdOrPath), "languages");
return (response.readEntity(new GenericType<Map<String, Float>>() {})); return (response.readEntity(new GenericType<Map<String, Float>>() {}));
} }
/**
* Transfer a project to a new namespace. This was added in GitLab 11.1
*
* PUT /projects/:id/transfer.
*
* @param projectIdOrPath projectIdOrPath the project in the form of an Integer(ID), String(path), or Project instance, required
* @param namespace the namespace to transfer the project to
* @return the updated Project
* @throws GitLabApiException if any exception occurs
*/
public Project transferProject(Object projectIdOrPath, String namespace) throws GitLabApiException {
GitLabApiForm formData = new GitLabApiForm().withParam("namespace", namespace, true);
Response response = put(Response.Status.OK, formData.asMap(), "projects", getProjectIdOrPath(projectIdOrPath), "transfer");
return (response.readEntity(Project.class));
}
} }
\ No newline at end of file
...@@ -71,6 +71,7 @@ public class TestProjectApi { ...@@ -71,6 +71,7 @@ public class TestProjectApi {
private static final String TEST_PRIVATE_TOKEN; private static final String TEST_PRIVATE_TOKEN;
private static final String TEST_GROUP; private static final String TEST_GROUP;
private static final String TEST_GROUP_PROJECT; private static final String TEST_GROUP_PROJECT;
private static final String TEST_XFER_NAMESPACE;
static { static {
TEST_NAMESPACE = TestUtils.getProperty("TEST_NAMESPACE"); TEST_NAMESPACE = TestUtils.getProperty("TEST_NAMESPACE");
...@@ -79,11 +80,13 @@ public class TestProjectApi { ...@@ -79,11 +80,13 @@ public class TestProjectApi {
TEST_PRIVATE_TOKEN = TestUtils.getProperty("TEST_PRIVATE_TOKEN"); TEST_PRIVATE_TOKEN = TestUtils.getProperty("TEST_PRIVATE_TOKEN");
TEST_GROUP = TestUtils.getProperty("TEST_GROUP"); TEST_GROUP = TestUtils.getProperty("TEST_GROUP");
TEST_GROUP_PROJECT = TestUtils.getProperty("TEST_GROUP_PROJECT"); TEST_GROUP_PROJECT = TestUtils.getProperty("TEST_GROUP_PROJECT");
TEST_XFER_NAMESPACE = TestUtils.getProperty("TEST_XFER_NAMESPACE");
} }
private static final String TEST_PROJECT_NAME_1 = "test-gitlab4j-create-project"; private static final String TEST_PROJECT_NAME_1 = "test-gitlab4j-create-project";
private static final String TEST_PROJECT_NAME_2 = "test-gitlab4j-create-project-2"; private static final String TEST_PROJECT_NAME_2 = "test-gitlab4j-create-project-2";
private static final String TEST_PROJECT_NAME_UPDATE = "test-gitlab4j-create-project-update"; private static final String TEST_PROJECT_NAME_UPDATE = "test-gitlab4j-create-project-update";
private static final String TEST_XFER_PROJECT_NAME = "test-gitlab4j-xfer-project";
private static GitLabApi gitLabApi; private static GitLabApi gitLabApi;
public TestProjectApi() { public TestProjectApi() {
...@@ -153,6 +156,14 @@ public class TestProjectApi { ...@@ -153,6 +156,14 @@ public class TestProjectApi {
} catch (GitLabApiException ignore) { } catch (GitLabApiException ignore) {
} }
} }
if (TEST_XFER_NAMESPACE != null) {
try {
Project project = gitLabApi.getProjectApi().getProject(TEST_XFER_NAMESPACE, TEST_XFER_PROJECT_NAME);
gitLabApi.getProjectApi().deleteProject(project);
} catch (GitLabApiException ignore) {
}
}
} }
} }
...@@ -556,4 +567,21 @@ public class TestProjectApi { ...@@ -556,4 +567,21 @@ public class TestProjectApi {
assertNotNull(unstarredProject); assertNotNull(unstarredProject);
assertEquals(0, (int)unstarredProject.getStarCount()); assertEquals(0, (int)unstarredProject.getStarCount());
} }
@Test
public void testTransferProject() throws GitLabApiException {
assumeTrue(TEST_XFER_NAMESPACE != null && TEST_XFER_NAMESPACE.trim().length() > 0);
Project project = new Project()
.withName(TEST_XFER_PROJECT_NAME)
.withDescription("GitLab4J test project - transfer.")
.withVisibility(Visibility.PUBLIC);
Project newProject = gitLabApi.getProjectApi().createProject(project);
assertNotNull(newProject);
Project transferedProject = gitLabApi.getProjectApi().transferProject(newProject, TEST_XFER_NAMESPACE);
assertNotNull(transferedProject);
}
} }
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