Skip to content

Commit a7c6b42

Browse files
committed
Add project Template list (#1127)
1 parent dff8509 commit a7c6b42

File tree

7 files changed

+104
-40
lines changed

7 files changed

+104
-40
lines changed

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

Lines changed: 7 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,36 +41,7 @@
4141
import jakarta.ws.rs.core.MultivaluedMap;
4242
import jakarta.ws.rs.core.Response;
4343

44-
import org.gitlab4j.api.models.AccessLevel;
45-
import org.gitlab4j.api.models.AccessRequest;
46-
import org.gitlab4j.api.models.ApprovalRule;
47-
import org.gitlab4j.api.models.ApprovalRuleParams;
48-
import org.gitlab4j.api.models.AuditEvent;
49-
import org.gitlab4j.api.models.Badge;
50-
import org.gitlab4j.api.models.CustomAttribute;
51-
import org.gitlab4j.api.models.Event;
52-
import org.gitlab4j.api.models.FileUpload;
53-
import org.gitlab4j.api.models.Issue;
54-
import org.gitlab4j.api.models.Iteration;
55-
import org.gitlab4j.api.models.IterationFilter;
56-
import org.gitlab4j.api.models.Member;
57-
import org.gitlab4j.api.models.Namespace;
58-
import org.gitlab4j.api.models.Project;
59-
import org.gitlab4j.api.models.ProjectAccessToken;
60-
import org.gitlab4j.api.models.ProjectApprovalsConfig;
61-
import org.gitlab4j.api.models.ProjectFetches;
62-
import org.gitlab4j.api.models.ProjectFilter;
63-
import org.gitlab4j.api.models.ProjectGroup;
64-
import org.gitlab4j.api.models.ProjectGroupsFilter;
65-
import org.gitlab4j.api.models.ProjectHook;
66-
import org.gitlab4j.api.models.ProjectUser;
67-
import org.gitlab4j.api.models.PullMirror;
68-
import org.gitlab4j.api.models.PushRules;
69-
import org.gitlab4j.api.models.RemoteMirror;
70-
import org.gitlab4j.api.models.Snippet;
71-
import org.gitlab4j.api.models.UploadedFile;
72-
import org.gitlab4j.api.models.Variable;
73-
import org.gitlab4j.api.models.Visibility;
44+
import org.gitlab4j.api.models.*;
7445
import org.gitlab4j.models.Constants;
7546
import org.gitlab4j.models.utils.ISO8601;
7647

@@ -4774,4 +4745,10 @@ public List<Iteration> listProjectIterations(Object projectIdOrPath, IterationFi
47744745
get(Response.Status.OK, queryParams, "projects", getProjectIdOrPath(projectIdOrPath), "iterations");
47754746
return (response.readEntity(new GenericType<List<Iteration>>() {}));
47764747
}
4748+
4749+
public List<ProjectTemplate> getProjectTemplates(Object projectIdOrPath, ProjectTemplateType type) throws GitLabApiException {
4750+
Response response = get(Response.Status.OK, null, "projects", getProjectIdOrPath(projectIdOrPath), "templates", type.toString());
4751+
return (response.readEntity(new GenericType<List<ProjectTemplate>>() {}));
4752+
}
4753+
47774754
}

gitlab4j-api/src/test/java/org/gitlab4j/api/TestProjectApi.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,7 @@
4646

4747
import jakarta.ws.rs.core.Response;
4848

49-
import org.gitlab4j.api.models.AccessLevel;
50-
import org.gitlab4j.api.models.AccessRequest;
51-
import org.gitlab4j.api.models.Group;
52-
import org.gitlab4j.api.models.Member;
53-
import org.gitlab4j.api.models.Project;
54-
import org.gitlab4j.api.models.ProjectFetches;
55-
import org.gitlab4j.api.models.ProjectFilter;
56-
import org.gitlab4j.api.models.User;
57-
import org.gitlab4j.api.models.Variable;
58-
import org.gitlab4j.api.models.Visibility;
49+
import org.gitlab4j.api.models.*;
5950
import org.gitlab4j.models.Constants;
6051
import org.junit.jupiter.api.AfterAll;
6152
import org.junit.jupiter.api.BeforeAll;
@@ -1084,4 +1075,16 @@ public void testRotateProjectAccessToken() throws GitLabApiException {
10841075
// assertTrue(gitLabApi.getProjectApi().getProjectAccessToken(testProject.getId(),
10851076
// token.getId()).isRevoked());
10861077
}
1078+
1079+
@Test
1080+
public void testProjectTemplates() throws GitLabApiException {
1081+
1082+
assumeTrue(testProject != null);
1083+
1084+
// Act
1085+
List<ProjectTemplate> members = gitLabApi.getProjectApi().getProjectTemplates(testProject, ProjectTemplateType.LICENSES);
1086+
1087+
// Assert
1088+
assertNotNull(members);
1089+
}
10871090
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.gitlab4j.api.models;
2+
3+
import org.gitlab4j.models.utils.JacksonJson;
4+
5+
import java.io.Serializable;
6+
7+
public class ProjectTemplate implements Serializable {
8+
private static final long serialVersionUID = 1L;
9+
10+
private String key;
11+
private String name;
12+
13+
public String getKey() {
14+
return key;
15+
}
16+
17+
public void setKey(String key) {
18+
this.key = key;
19+
}
20+
21+
public String getName() {
22+
return name;
23+
}
24+
25+
public void setName(String name) {
26+
this.name = name;
27+
}
28+
29+
@Override
30+
public String toString() {
31+
return (JacksonJson.toJsonString(this));
32+
}
33+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package org.gitlab4j.api.models;
2+
3+
public class ProjectTemplateDetail extends ProjectTemplate {
4+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.gitlab4j.api.models;
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonValue;
5+
import org.gitlab4j.models.utils.JacksonJsonEnumHelper;
6+
7+
public enum ProjectTemplateType {
8+
DOCKERFILES,
9+
GITIGNORES,
10+
GITLAB_CI_YMLS,
11+
LICENSES,
12+
ISSUES,
13+
MERGE_REQUESTS;
14+
15+
private static final JacksonJsonEnumHelper<ProjectTemplateType> enumHelper = new JacksonJsonEnumHelper<>(ProjectTemplateType.class);
16+
17+
@JsonCreator
18+
public static ProjectTemplateType forValue(String value) {
19+
return enumHelper.forValue(value);
20+
}
21+
22+
@JsonValue
23+
public String toValue() {
24+
return (enumHelper.toString(this));
25+
}
26+
27+
@Override
28+
public String toString() {
29+
return (enumHelper.toString(this));
30+
}
31+
}

gitlab4j-models/src/test/java/org/gitlab4j/models/TestGitLabApiBeans.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,12 @@ public void testProjectApprovalsCofig() throws Exception {
496496
assertTrue(compareJson(approvalsConfig, "project-approvals-config.json"));
497497
}
498498

499+
@Test
500+
public void testProjectTemplates() throws Exception {
501+
List<ProjectTemplate> projectTemplates = unmarshalResourceList(ProjectTemplate.class, "project-templates.json");
502+
assertTrue(compareJson(projectTemplates, "project-templates.json"));
503+
}
504+
499505
@Test
500506
public void testProtectedBranch() throws Exception {
501507
ProtectedBranch protectedBranch = unmarshalResource(ProtectedBranch.class, "protected-branch.json");
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[
2+
{
3+
"key": "epl-1.0",
4+
"name": "Eclipse Public License 1.0"
5+
},
6+
{
7+
"key": "lgpl-3.0",
8+
"name": "GNU Lesser General Public License v3.0"
9+
}
10+
]

0 commit comments

Comments
 (0)