Skip to content

Commit 044bf32

Browse files
authored
Merge pull request gitlab4j#779 from jojansen/master
Create new projects from project template.
2 parents 9401aac + a319e7d commit 044bf32

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1195,6 +1195,30 @@ public Project createProject(String name, Integer namespaceId, String descriptio
11951195
return (response.readEntity(Project.class));
11961196
}
11971197

1198+
/**
1199+
* Create a new project from a template, belonging to the namespace ID. A namespace ID is either a user or group ID.
1200+
*
1201+
* @param namespaceId the namespace ID to create the project under
1202+
* @param projectName the name of the project top create
1203+
* @param groupWithProjectTemplatesId Id of the Gitlab Group, which contains the relevant templates.
1204+
* @param templateName name of the template to use
1205+
* @param visibility Visibility of the new create project
1206+
* @return the created project
1207+
* @throws GitLabApiException if any exception occurs
1208+
*/
1209+
public Project createProjectFromTemplate(Integer namespaceId, String projectName, Integer groupWithProjectTemplatesId, String templateName, Visibility visibility) throws GitLabApiException {
1210+
GitLabApiForm formData = new GitLabApiForm()
1211+
.withParam("namespace_id", namespaceId)
1212+
.withParam("name", projectName, true)
1213+
.withParam("use_custom_template", true)
1214+
.withParam("group_with_project_templates_id", groupWithProjectTemplatesId, true)
1215+
.withParam("template_name", templateName, true)
1216+
.withParam("visibility", visibility)
1217+
;
1218+
Response response = post(Response.Status.CREATED, formData, "projects");
1219+
return (response.readEntity(Project.class));
1220+
}
1221+
11981222
/**
11991223
* Updates a project. The following properties on the Project instance
12001224
* are utilized in the edit of the project, null values are not updated:

0 commit comments

Comments
 (0)