Search in sources :

Example 36 with MetaDataUpdate

use of com.google.gerrit.server.git.MetaDataUpdate in project gerrit by GerritCodeReview.

the class SetDiffPreferences method writeToGit.

private DiffPreferencesInfo writeToGit(DiffPreferencesInfo in) throws RepositoryNotFoundException, IOException, ConfigInvalidException {
    DiffPreferencesInfo out = new DiffPreferencesInfo();
    try (MetaDataUpdate md = metaDataUpdateFactory.get().create(allUsersName)) {
        VersionedAccountPreferences prefs = VersionedAccountPreferences.forDefault();
        prefs.load(md);
        DiffPreferencesInfo defaults = DiffPreferencesInfo.defaults();
        storeSection(prefs.getConfig(), UserConfigSections.DIFF, null, in, defaults);
        prefs.commit(md);
        loadSection(prefs.getConfig(), UserConfigSections.DIFF, null, out, DiffPreferencesInfo.defaults(), null);
    }
    return out;
}
Also used : VersionedAccountPreferences(com.google.gerrit.server.account.VersionedAccountPreferences) DiffPreferencesInfo(com.google.gerrit.extensions.client.DiffPreferencesInfo) MetaDataUpdate(com.google.gerrit.server.git.MetaDataUpdate)

Example 37 with MetaDataUpdate

use of com.google.gerrit.server.git.MetaDataUpdate in project gerrit by GerritCodeReview.

the class CreateProject method createProjectConfig.

private void createProjectConfig(CreateProjectArgs args) throws IOException, ConfigInvalidException {
    try (MetaDataUpdate md = metaDataUpdateFactory.create(args.getProject())) {
        ProjectConfig config = ProjectConfig.read(md);
        Project newProject = config.getProject();
        newProject.setDescription(args.projectDescription);
        newProject.setSubmitType(MoreObjects.firstNonNull(args.submitType, repositoryCfg.getDefaultSubmitType(args.getProject())));
        newProject.setUseContributorAgreements(args.contributorAgreements);
        newProject.setUseSignedOffBy(args.signedOffBy);
        newProject.setUseContentMerge(args.contentMerge);
        newProject.setCreateNewChangeForAllNotInTarget(args.newChangeForAllNotInTarget);
        newProject.setRequireChangeID(args.changeIdRequired);
        newProject.setMaxObjectSizeLimit(args.maxObjectSizeLimit);
        if (args.newParent != null) {
            newProject.setParentName(args.newParent.getProject().getNameKey());
        }
        if (!args.ownerIds.isEmpty()) {
            AccessSection all = config.getAccessSection(AccessSection.ALL, true);
            for (AccountGroup.UUID ownerId : args.ownerIds) {
                GroupDescription.Basic g = groupBackend.get(ownerId);
                if (g != null) {
                    GroupReference group = config.resolve(GroupReference.forGroup(g));
                    all.getPermission(Permission.OWNER, true).add(new PermissionRule(group));
                }
            }
        }
        md.setMessage("Created project\n");
        config.commit(md);
        md.getRepository().setGitwebDescription(args.projectDescription);
    }
    projectCache.onCreateProject(args.getProject());
}
Also used : ProjectConfig(com.google.gerrit.server.git.ProjectConfig) GroupDescription(com.google.gerrit.common.data.GroupDescription) Project(com.google.gerrit.reviewdb.client.Project) AccountGroup(com.google.gerrit.reviewdb.client.AccountGroup) PermissionRule(com.google.gerrit.common.data.PermissionRule) GroupReference(com.google.gerrit.common.data.GroupReference) AccessSection(com.google.gerrit.common.data.AccessSection) MetaDataUpdate(com.google.gerrit.server.git.MetaDataUpdate)

Aggregations

MetaDataUpdate (com.google.gerrit.server.git.MetaDataUpdate)37 ProjectConfig (com.google.gerrit.server.git.ProjectConfig)25 ConfigInvalidException (org.eclipse.jgit.errors.ConfigInvalidException)18 Project (com.google.gerrit.reviewdb.client.Project)15 AccessSection (com.google.gerrit.common.data.AccessSection)14 IOException (java.io.IOException)13 Repository (org.eclipse.jgit.lib.Repository)12 OrmException (com.google.gwtorm.server.OrmException)11 Permission (com.google.gerrit.common.data.Permission)9 PermissionRule (com.google.gerrit.common.data.PermissionRule)8 ResourceConflictException (com.google.gerrit.extensions.restapi.ResourceConflictException)7 RepositoryNotFoundException (org.eclipse.jgit.errors.RepositoryNotFoundException)7 HashMap (java.util.HashMap)6 BatchRefUpdate (org.eclipse.jgit.lib.BatchRefUpdate)6 GroupReference (com.google.gerrit.common.data.GroupReference)5 ResourceNotFoundException (com.google.gerrit.extensions.restapi.ResourceNotFoundException)5 Account (com.google.gerrit.reviewdb.client.Account)5 RevWalk (org.eclipse.jgit.revwalk.RevWalk)5 LabelType (com.google.gerrit.common.data.LabelType)4 AuthException (com.google.gerrit.extensions.restapi.AuthException)4