Skip to content

Commit bb9445c

Browse files
committed
Expose repository_object_format via Project API
GitLab 16.9 introduced an option to create repositories with SHA256 instead of SHA1. This commit exposes object format used by particular repository via Project API. See https://gitlab.com/gitlab-org/gitlab/-/issues/419887 Signed-off-by: Marat Radchenko <marat@slonopotamus.org>
1 parent 224f4c5 commit bb9445c

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

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

+3-2
Original file line numberDiff line numberDiff line change
@@ -1031,6 +1031,7 @@ public Project createProject(Project project, String importUrl) throws GitLabApi
10311031
.withParam("build_git_strategy", project.getBuildGitStrategy())
10321032
.withParam("build_coverage_regex", project.getBuildCoverageRegex())
10331033
.withParam("ci_config_path", project.getCiConfigPath())
1034+
.withParam("repository_object_format", project.getRepositoryObjectFormat())
10341035
.withParam("suggestion_commit_message", project.getSuggestionCommitMessage())
10351036
.withParam("remove_source_branch_after_merge", project.getRemoveSourceBranchAfterMerge())
10361037
.withParam("squash_option", project.getSquashOption());
@@ -2254,7 +2255,7 @@ public ProjectHook addHook(Object projectIdOrPath, String url, boolean doPushEve
22542255
boolean doIssuesEvents, boolean doMergeRequestsEvents) throws GitLabApiException {
22552256
return addHook(projectIdOrPath, url, doPushEvents, doIssuesEvents, doMergeRequestsEvents, null);
22562257
}
2257-
2258+
22582259
/**
22592260
* Adds a hook to project.
22602261
* Convenience method for {@link #addHook(Object, String, ProjectHook, Boolean, String)}
@@ -4044,7 +4045,7 @@ public ProjectAccessToken createProjectAccessToken(Object projectIdOrPath, Strin
40444045
public ProjectAccessToken rotateProjectAccessToken(Object projectIdOrPath, Long tokenId) throws GitLabApiException {
40454046
return rotateProjectAccessToken(projectIdOrPath, tokenId, null);
40464047
}
4047-
4048+
40484049
/**
40494050
* Rotates the given project access token.
40504051
* The token is revoked and a new one which will expire in one week is created to replace it.

src/main/java/org/gitlab4j/api/models/Project.java

+14
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ public String toString() {
114114
private AutoDevopsDeployStrategy autoDevopsDeployStrategy;
115115
private Boolean autocloseReferencedIssues;
116116
private Boolean emailsDisabled;
117+
private String repositoryObjectFormat;
117118
private String suggestionCommitMessage;
118119
private SquashOption squashOption;
119120
private String mergeCommitTemplate;
@@ -900,6 +901,19 @@ public Project withEmailsDisabled(Boolean emailsDisabled) {
900901
return this;
901902
}
902903

904+
public String getRepositoryObjectFormat() {
905+
return repositoryObjectFormat;
906+
}
907+
908+
public void setRepositoryObjectFormat(String repositoryObjectFormat) {
909+
this.repositoryObjectFormat = repositoryObjectFormat;
910+
}
911+
912+
public Project withRepositoryObjectFormat(String repositoryObjectFormat) {
913+
this.repositoryObjectFormat = repositoryObjectFormat;
914+
return this;
915+
}
916+
903917
public String getSuggestionCommitMessage() {
904918
return this.suggestionCommitMessage;
905919
}

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ public void testCreate() throws GitLabApiException {
224224
.withMergeRequestsEnabled(true)
225225
.withWikiEnabled(true)
226226
.withSnippetsEnabled(true)
227+
.withRepositoryObjectFormat("sha1")
227228
.withVisibility(Visibility.PUBLIC)
228229
.withTagList(Arrays.asList("tag1", "tag2"));
229230

@@ -235,6 +236,7 @@ public void testCreate() throws GitLabApiException {
235236
assertEquals(project.getMergeRequestsEnabled(), newProject.getMergeRequestsEnabled());
236237
assertEquals(project.getWikiEnabled(), newProject.getWikiEnabled());
237238
assertEquals(project.getSnippetsEnabled(), newProject.getSnippetsEnabled());
239+
assertEquals(project.getRepositoryObjectFormat(), newProject.getRepositoryObjectFormat());
238240
assertEquals(project.getTagList(), newProject.getTagList());
239241
assertTrue(Visibility.PUBLIC == newProject.getVisibility() || Boolean.TRUE == newProject.getPublic());
240242
}
@@ -323,7 +325,7 @@ else if (TEST_PROJECT_NAME_2.equals(project.getName()))
323325
@Test
324326
@Disabled("Required Gitlab version not less then 16.9")
325327
public void testGetAvatar() throws GitLabApiException, IOException {
326-
328+
327329
assumeTrue(testProject != null);
328330

329331
File avatarFile = new File("src/test/resources/org/gitlab4j/api", AVATAR_FILENAME);

0 commit comments

Comments
 (0)