ProjectApi: Add methods to get and set the project config

Change-Id: Ia38e5790a256bacbaa34c11dfa22f64d8212e947
This commit is contained in:
David Pursehouse
2016-06-21 14:36:34 +09:00
parent fa5f097af2
commit 396e639355
3 changed files with 63 additions and 5 deletions

View File

@@ -21,8 +21,11 @@ import com.google.gerrit.acceptance.AbstractDaemonTest;
import com.google.gerrit.acceptance.NoHttpd;
import com.google.gerrit.common.data.Permission;
import com.google.gerrit.extensions.api.projects.BranchInput;
import com.google.gerrit.extensions.api.projects.ConfigInfo;
import com.google.gerrit.extensions.api.projects.ConfigInput;
import com.google.gerrit.extensions.api.projects.DescriptionInput;
import com.google.gerrit.extensions.api.projects.ProjectInput;
import com.google.gerrit.extensions.client.SubmitType;
import com.google.gerrit.extensions.restapi.BadRequestException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -105,4 +108,22 @@ public class ProjectIT extends AbstractDaemonTest {
eventRecorder.assertRefUpdatedEvents(project.get(), "refs/meta/config",
initialHead, updatedHead);
}
@Test
public void config() throws Exception {
RevCommit initialHead = getRemoteHead(project, "refs/meta/config");
ConfigInfo info = gApi.projects().name(project.get()).config();
assertThat(info.submitType).isEqualTo(SubmitType.MERGE_IF_NECESSARY);
ConfigInput input = new ConfigInput();
input.submitType = SubmitType.CHERRY_PICK;
info = gApi.projects().name(project.get()).config(input);
assertThat(info.submitType).isEqualTo(SubmitType.CHERRY_PICK);
info = gApi.projects().name(project.get()).config();
assertThat(info.submitType).isEqualTo(SubmitType.CHERRY_PICK);
RevCommit updatedHead = getRemoteHead(project, "refs/meta/config");
eventRecorder.assertRefUpdatedEvents(project.get(), "refs/meta/config",
initialHead, updatedHead);
}
}

View File

@@ -33,6 +33,9 @@ public interface ProjectApi {
ProjectAccessInfo access() throws RestApiException;
ProjectAccessInfo access(ProjectAccessInput p) throws RestApiException;
ConfigInfo config() throws RestApiException;
ConfigInfo config(ConfigInput in) throws RestApiException;
ListRefsRequest<BranchInfo> branches();
ListRefsRequest<TagInfo> tags();
@@ -139,6 +142,16 @@ public interface ProjectApi {
throw new NotImplementedException();
}
@Override
public ConfigInfo config() throws RestApiException {
throw new NotImplementedException();
}
@Override
public ConfigInfo config(ConfigInput in) throws RestApiException {
throw new NotImplementedException();
}
@Override
public ProjectAccessInfo access(ProjectAccessInput p)
throws RestApiException {

View File

@@ -21,6 +21,8 @@ import com.google.gerrit.extensions.api.access.ProjectAccessInput;
import com.google.gerrit.extensions.api.projects.BranchApi;
import com.google.gerrit.extensions.api.projects.BranchInfo;
import com.google.gerrit.extensions.api.projects.ChildProjectApi;
import com.google.gerrit.extensions.api.projects.ConfigInfo;
import com.google.gerrit.extensions.api.projects.ConfigInput;
import com.google.gerrit.extensions.api.projects.DescriptionInput;
import com.google.gerrit.extensions.api.projects.ProjectApi;
import com.google.gerrit.extensions.api.projects.ProjectInput;
@@ -37,6 +39,7 @@ import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.project.ChildProjectsCollection;
import com.google.gerrit.server.project.CreateProject;
import com.google.gerrit.server.project.GetAccess;
import com.google.gerrit.server.project.GetConfig;
import com.google.gerrit.server.project.GetDescription;
import com.google.gerrit.server.project.ListBranches;
import com.google.gerrit.server.project.ListChildProjects;
@@ -44,6 +47,7 @@ import com.google.gerrit.server.project.ListTags;
import com.google.gerrit.server.project.ProjectJson;
import com.google.gerrit.server.project.ProjectResource;
import com.google.gerrit.server.project.ProjectsCollection;
import com.google.gerrit.server.project.PutConfig;
import com.google.gerrit.server.project.PutDescription;
import com.google.gerrit.server.project.SetAccess;
import com.google.inject.assistedinject.Assisted;
@@ -74,9 +78,11 @@ public class ProjectApiImpl implements ProjectApi {
private final BranchApiImpl.Factory branchApi;
private final TagApiImpl.Factory tagApi;
private final GetAccess getAccess;
private final SetAccess setAccess;
private final GetConfig getConfig;
private final PutConfig putConfig;
private final ListBranches listBranches;
private final ListTags listTags;
private final SetAccess setAccess;
@AssistedInject
ProjectApiImpl(CurrentUser user,
@@ -92,13 +98,15 @@ public class ProjectApiImpl implements ProjectApi {
TagApiImpl.Factory tagApiFactory,
GetAccess getAccess,
SetAccess setAccess,
GetConfig getConfig,
PutConfig putConfig,
ListBranches listBranches,
ListTags listTags,
@Assisted ProjectResource project) {
this(user, createProjectFactory, projectApi, projects, getDescription,
putDescription, childApi, children, projectJson, branchApiFactory,
tagApiFactory, getAccess, setAccess, listBranches, listTags,
project, null);
tagApiFactory, getAccess, setAccess, getConfig, putConfig, listBranches,
listTags, project, null);
}
@AssistedInject
@@ -115,13 +123,15 @@ public class ProjectApiImpl implements ProjectApi {
TagApiImpl.Factory tagApiFactory,
GetAccess getAccess,
SetAccess setAccess,
GetConfig getConfig,
PutConfig putConfig,
ListBranches listBranches,
ListTags listTags,
@Assisted String name) {
this(user, createProjectFactory, projectApi, projects, getDescription,
putDescription, childApi, children, projectJson, branchApiFactory,
tagApiFactory, getAccess, setAccess, listBranches, listTags,
null, name);
tagApiFactory, getAccess, setAccess, getConfig, putConfig, listBranches,
listTags, null, name);
}
private ProjectApiImpl(CurrentUser user,
@@ -137,6 +147,8 @@ public class ProjectApiImpl implements ProjectApi {
TagApiImpl.Factory tagApiFactory,
GetAccess getAccess,
SetAccess setAccess,
GetConfig getConfig,
PutConfig putConfig,
ListBranches listBranches,
ListTags listTags,
ProjectResource project,
@@ -156,6 +168,8 @@ public class ProjectApiImpl implements ProjectApi {
this.tagApi = tagApiFactory;
this.getAccess = getAccess;
this.setAccess = setAccess;
this.getConfig = getConfig;
this.putConfig = putConfig;
this.listBranches = listBranches;
this.listTags = listTags;
}
@@ -225,6 +239,16 @@ public class ProjectApiImpl implements ProjectApi {
}
}
@Override
public ConfigInfo config() throws RestApiException {
return getConfig.apply(checkExists());
}
@Override
public ConfigInfo config(ConfigInput in) throws RestApiException {
return putConfig.apply(checkExists(), in);
}
@Override
public ListRefsRequest<BranchInfo> branches() {
return new ListRefsRequest<BranchInfo>() {