Merge branch 'stable-2.12' into stable-2.13 * stable-2.12: Show more fields in ls-users command Add options to filter by active flag in ls-users command Escape double dashes in documentation Change-Id: I5f1177f6dbc0fe99ce702963eccd588fb008470a
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK index 53cc550..f1b581e 100644 --- a/lib/gerrit/BUCK +++ b/lib/gerrit/BUCK
@@ -1,12 +1,12 @@ include_defs('//bucklets/maven_jar.bucklet') -VER = '2.12.4' +VER = '2.13' REPO = MAVEN_CENTRAL maven_jar( name = 'plugin-api', id = 'com.google.gerrit:gerrit-plugin-api:' + VER, - sha1 = 'aad189fe4f9fa5c3f8048b5e4972512b4b3e2a24', + sha1 = 'e25d55b8f41627c4ae6b9d2069ec398638b219a3', attach_source = False, repository = REPO, license = 'Apache2.0',
diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 4469749..0000000 --- a/pom.xml +++ /dev/null
@@ -1,85 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -Copyright (C) 2012 The Android Open Source Project - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - - <groupId>com.googlesource.gerrit.plugins</groupId> - <artifactId>admin-console</artifactId> - <packaging>jar</packaging> - <version>2.12</version> - <properties> - <Gerrit-ApiType>plugin</Gerrit-ApiType> - <Gerrit-ApiVersion>${project.version}</Gerrit-ApiVersion> - </properties> - - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>2.4</version> - <configuration> - <archive> - <manifestEntries> - <Gerrit-SshModule>com.googlesource.gerrit.plugins.adminconsole.AdminConsoleCommandModule</Gerrit-SshModule> - - <Implementation-Vendor>Gerrit Code Review</Implementation-Vendor> - <Implementation-URL>https://gerrit-review.googlesource.com/#/admin/projects/plugins/admin-console</Implementation-URL> - - <Implementation-Title>Plugin ${project.artifactId}</Implementation-Title> - <Implementation-Version>${project.version}</Implementation-Version> - - <Gerrit-ApiType>${Gerrit-ApiType}</Gerrit-ApiType> - <Gerrit-ApiVersion>${Gerrit-ApiVersion}</Gerrit-ApiVersion> - <Gerrit-PluginName>admin-console</Gerrit-PluginName> - </manifestEntries> - </archive> - </configuration> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.2</version> - <configuration> - <source>1.6</source> - <target>1.6</target> - <encoding>UTF-8</encoding> - </configuration> - </plugin> - </plugins> - - </build> - - <dependencies> - <dependency> - <groupId>com.google.gerrit</groupId> - <artifactId>gerrit-${Gerrit-ApiType}-api</artifactId> - <version>${Gerrit-ApiVersion}</version> - <scope>provided</scope> - </dependency> - </dependencies> - - <repositories> - <repository> - <id>gerrit-api-repository</id> - <url>https://gerrit-api.commondatastorage.googleapis.com/snapshot/</url> - </repository> - </repositories> -</project>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/AdminConsoleCommandModule.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/AdminConsoleCommandModule.java index fece7cb..98da362 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/AdminConsoleCommandModule.java +++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/AdminConsoleCommandModule.java
@@ -21,8 +21,8 @@ protected void configureCommands() { command(ShowAccountCommand.class); command(ListUsersCommand.class); - alias("show-account", ShowAccountCommand.class); - alias("show-repo-account-access", ShowRepoAccountAccessCommand.class); - alias("show-repo-access", ShowRepoAccessCommand.class); + alias("show-account", ShowAccountCommand.class); + alias("show-repo-account-access", ShowRepoAccountAccessCommand.class); + alias("show-repo-access", ShowRepoAccessCommand.class); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java index f304b0d..8ead5ad 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ListUsersCommand.java
@@ -84,7 +84,7 @@ private String getUsername(Account account) throws OrmException { String id = account.getId().toString(); - Account accountFromResolver = accountResolver.find(id); + Account accountFromResolver = accountResolver.find(db, id); return accountFromResolver == null ? null : accountFromResolver.getUserName(); }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java index b7756ee..5c439ff 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowAccountCommand.java
@@ -14,29 +14,21 @@ package com.googlesource.gerrit.plugins.adminconsole; -import java.io.IOException; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Set; - -import org.eclipse.jgit.errors.ConfigInvalidException; -import org.kohsuke.args4j.Argument; -import org.kohsuke.args4j.Option; - import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.extensions.annotations.CapabilityScope; import com.google.gerrit.extensions.annotations.RequiresCapability; import com.google.gerrit.extensions.common.GroupInfo; +import com.google.gerrit.extensions.common.SshKeyInfo; +import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account.Id; import com.google.gerrit.reviewdb.client.AccountExternalId; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountResolver; import com.google.gerrit.server.account.AccountResource; import com.google.gerrit.server.account.GetGroups; +import com.google.gerrit.server.account.GetSshKeys; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; import com.google.gwtorm.server.OrmException; @@ -44,6 +36,16 @@ import com.google.inject.Inject; import com.google.inject.Provider; +import org.eclipse.jgit.errors.ConfigInvalidException; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; + +import java.io.IOException; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Set; + @RequiresCapability(value=GlobalCapability.ADMINISTRATE_SERVER, scope=CapabilityScope.CORE) @CommandMetaData(name = "show-account", description = "Displays user information") public final class ShowAccountCommand extends SshCommand { @@ -60,21 +62,23 @@ @Option(name = "--show-keys", usage = "show user's public keys?") private boolean showKeys = false; - final AccountResolver accountResolver; + private final AccountResolver accountResolver; private final SchemaFactory<ReviewDb> schema; private final Provider<GetGroups> accountGetGroups; private final IdentifiedUser.GenericFactory userFactory; + private final Provider<GetSshKeys> getSshKeys; @Inject - ShowAccountCommand(AccountResolver ar, - final Provider<GetGroups> accountGetGroups, - final IdentifiedUser.GenericFactory userFactory, - SchemaFactory<ReviewDb> schema) throws ConfigInvalidException, - IOException { - accountResolver = ar; + ShowAccountCommand(AccountResolver accountResolver, + Provider<GetGroups> accountGetGroups, + IdentifiedUser.GenericFactory userFactory, + Provider<GetSshKeys> getSshKeys, + SchemaFactory<ReviewDb> schema) { + this.accountResolver = accountResolver; this.accountGetGroups = accountGetGroups; this.userFactory = userFactory; this.schema = schema; + this.getSshKeys = getSshKeys; } @Override @@ -86,35 +90,32 @@ "You need to tell me who to find: LastName,\\\\ Firstname, email@address.com, account id or an user name. " + "Be sure to double-escape spaces, for example: \"show-account Last,\\\\ First\""); } - - Set<Id> idList = accountResolver.findAll(name); - if (idList.isEmpty()) { - throw new UnloggedFailure(1, - "No accounts found for your query: \"" - + name - + "\"" - + " Tip: Try double-escaping spaces, for example: \"show-account Last,\\\\ First\""); - } else { + try (ReviewDb db = schema.open()) { + Set<Id> idList = accountResolver.findAll(db, name); + if (idList.isEmpty()) { + throw new UnloggedFailure(1, + "No accounts found for your query: \"" + + name + + "\"" + + " Tip: Try double-escaping spaces, for example: \"show-account Last,\\\\ First\""); + } stdout.println("Found " + idList.size() + " result" + (idList.size() > 1 ? "s" : "") + ": for query: \"" + name + "\""); stdout.println(); - } - for (Id id : idList) { - account = accountResolver.find(id.toString()); - if (account == null) { - throw new UnloggedFailure("Account " + id.toString() + " does not exist."); - } - stdout.println("Full name: " + account.getFullName()); - stdout.println("Account Id: " + id.toString()); - stdout.println("Preferred Email: " + account.getPreferredEmail()); - stdout.println("User Name: " + account.getUserName()); - stdout.println("Active: " + account.isActive()); - stdout.println("Registered on: " + account.getRegisteredOn()); + for (Id id : idList) { + account = accountResolver.find(db, id.toString()); + if (account == null) { + throw new UnloggedFailure("Account " + id.toString() + " does not exist."); + } + stdout.println("Full name: " + account.getFullName()); + stdout.println("Account Id: " + id.toString()); + stdout.println("Preferred Email: " + account.getPreferredEmail()); + stdout.println("User Name: " + account.getUserName()); + stdout.println("Active: " + account.isActive()); + stdout.println("Registered on: " + account.getRegisteredOn()); - final ReviewDb db = schema.open(); - try { stdout.println(""); stdout.println("External Ids:"); stdout.println(String @@ -130,40 +131,43 @@ if (showKeys) { stdout.println(""); stdout.println("Public Keys:"); - List<AccountSshKey> sshKeys = - db.accountSshKeys().byAccount(account.getId()).toList(); + List<SshKeyInfo> sshKeys; + try { + sshKeys = getSshKeys.get() + .apply(new AccountResource(userFactory.create(id))); + } catch (AuthException | IOException | ConfigInvalidException e) { + throw new UnloggedFailure(1, "Error getting sshkeys: " + e.getMessage(), e); + } if (sshKeys == null || sshKeys.isEmpty()) { stdout.println("None"); } else { stdout.println(String.format("%-9s %s", "Status:", "Key:")); - for (AccountSshKey sshKey : sshKeys) { - stdout.println(String.format("%-9s %s", (sshKey.isValid() - ? "Active" : "Inactive"), sshKey.getSshPublicKey())); + for (SshKeyInfo sshKey : sshKeys) { + stdout.println(String.format("%-9s %s", (sshKey.valid + ? "Active" : "Inactive"), sshKey.sshPublicKey)); } } } - } finally { - db.close(); - } - if (showGroups) { - stdout.println(); - stdout.println("Member of groups" - + (filterGroups == null ? "" : " (Filtering on \"" + filterGroups - + "\")") + ":"); - List<GroupInfo> groupInfos = - accountGetGroups.get().apply( - new AccountResource(userFactory.create(id))); + if (showGroups) { + stdout.println(); + stdout.println("Member of groups" + + (filterGroups == null ? "" : " (Filtering on \"" + filterGroups + + "\")") + ":"); + List<GroupInfo> groupInfos = + accountGetGroups.get().apply( + new AccountResource(userFactory.create(id))); - Collections.sort(groupInfos, new CustomComparator()); - for (GroupInfo groupInfo : groupInfos) { - if (null == filterGroups || groupInfo.name.toLowerCase().contains(filterGroups.toLowerCase - ())) { - stdout.println(groupInfo.name); + Collections.sort(groupInfos, new CustomComparator()); + for (GroupInfo groupInfo : groupInfos) { + if (null == filterGroups || groupInfo.name.toLowerCase().contains(filterGroups.toLowerCase + ())) { + stdout.println(groupInfo.name); + } } } + stdout.println(""); } - stdout.println(""); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccessCommand.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccessCommand.java index d8ca185..1252b23 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccessCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccessCommand.java
@@ -14,13 +14,6 @@ package com.googlesource.gerrit.plugins.adminconsole; -import java.io.IOException; - -import org.eclipse.jgit.errors.ConfigInvalidException; -import org.eclipse.jgit.errors.RepositoryNotFoundException; -import org.kohsuke.args4j.Argument; -import org.kohsuke.args4j.Option; - import com.google.gerrit.common.data.AccessSection; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.common.data.Permission; @@ -34,6 +27,13 @@ import com.google.gerrit.sshd.SshCommand; import com.google.inject.Inject; +import org.eclipse.jgit.errors.ConfigInvalidException; +import org.eclipse.jgit.errors.RepositoryNotFoundException; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; + +import java.io.IOException; + @RequiresCapability(value=GlobalCapability.ADMINISTRATE_SERVER, scope=CapabilityScope.CORE) @CommandMetaData(name = "show-repo-access", description = "Displays access on a specific repository") public final class ShowRepoAccessCommand extends SshCommand { @@ -45,8 +45,7 @@ private boolean wide; @Inject - ShowRepoAccessCommand(final MetaDataUpdate.Server metaDataUpdateFactory) - throws ConfigInvalidException, IOException { + ShowRepoAccessCommand(MetaDataUpdate.Server metaDataUpdateFactory) { this.metaDataUpdateFactory = metaDataUpdateFactory; } @@ -66,7 +65,7 @@ if (projectName.isEmpty()) { throw new UnloggedFailure(1, "Please specify a project to show access for"); } - final Project.NameKey nameKey = new Project.NameKey(projectName); + Project.NameKey nameKey = new Project.NameKey(projectName); permissionGroupWidth = wide ? Integer.MAX_VALUE : columns - 9 - 5 - 9; @@ -97,11 +96,10 @@ } } - private String format(final String s) { + private String format(String s) { if (s.length() < permissionGroupWidth) { return s; - } else { - return s.substring(0, permissionGroupWidth); } + return s.substring(0, permissionGroupWidth); } }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccountAccessCommand.java b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccountAccessCommand.java index e1623bb..e80f81b 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccountAccessCommand.java +++ b/src/main/java/com/googlesource/gerrit/plugins/adminconsole/ShowRepoAccountAccessCommand.java
@@ -14,16 +14,6 @@ package com.googlesource.gerrit.plugins.adminconsole; -import java.io.IOException; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.eclipse.jgit.errors.ConfigInvalidException; -import org.eclipse.jgit.errors.RepositoryNotFoundException; -import org.kohsuke.args4j.Argument; -import org.kohsuke.args4j.Option; - import com.google.gerrit.common.data.AccessSection; import com.google.gerrit.common.data.GlobalCapability; import com.google.gerrit.common.data.Permission; @@ -33,6 +23,7 @@ import com.google.gerrit.extensions.common.GroupInfo; import com.google.gerrit.reviewdb.client.Account; import com.google.gerrit.reviewdb.client.Account.Id; +import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountResolver; @@ -42,9 +33,18 @@ import com.google.gerrit.server.git.ProjectConfig; import com.google.gerrit.sshd.CommandMetaData; import com.google.gerrit.sshd.SshCommand; +import com.google.gwtorm.server.SchemaFactory; import com.google.inject.Inject; import com.google.inject.Provider; +import org.eclipse.jgit.errors.RepositoryNotFoundException; +import org.kohsuke.args4j.Argument; +import org.kohsuke.args4j.Option; + +import java.util.HashSet; +import java.util.List; +import java.util.Set; + @RequiresCapability(value=GlobalCapability.ADMINISTRATE_SERVER, scope=CapabilityScope.CORE) @CommandMetaData(name = "show-repo-account-access", description = "Displays user's access on a specific repository") public final class ShowRepoAccountAccessCommand extends SshCommand { @@ -61,21 +61,23 @@ @Inject ShowRepoAccountAccessCommand( - final MetaDataUpdate.Server metaDataUpdateFactory, - final Provider<GetGroups> accountGetGroups, + MetaDataUpdate.Server metaDataUpdateFactory, + Provider<GetGroups> accountGetGroups, AccountResolver accountResolver, - final IdentifiedUser.GenericFactory userFactory) - throws ConfigInvalidException, IOException { + IdentifiedUser.GenericFactory userFactory, + SchemaFactory<ReviewDb> schema) { this.metaDataUpdateFactory = metaDataUpdateFactory; this.accountGetGroups = accountGetGroups; this.accountResolver = accountResolver; this.userFactory = userFactory; + this.schema = schema; } private final MetaDataUpdate.Server metaDataUpdateFactory; private final AccountResolver accountResolver; private final Provider<GetGroups> accountGetGroups; private final IdentifiedUser.GenericFactory userFactory; + private final SchemaFactory<ReviewDb> schema; private int columns = 80; private int permissionGroupWidth; @@ -98,88 +100,88 @@ "You need to tell me who to find: LastName,\\\\ Firstname, email@address.com, account id or an user name. " + "Be sure to double-escape spaces, for example: \"show-repo-account-access All-Projects --user Last,\\\\ First\""); } + try (ReviewDb db = schema.open()) { + Set<Id> idList = accountResolver.findAll(db, name); + if (idList.isEmpty()) { + throw new UnloggedFailure(1, + "No accounts found for your query: \"" + + name + + "\"" + + " Tip: Try double-escaping spaces, for example: \"--user Last,\\\\ First\""); + } - Set<Id> idList = accountResolver.findAll(name); - if (idList.isEmpty()) { - throw new UnloggedFailure(1, - "No accounts found for your query: \"" - + name - + "\"" - + " Tip: Try double-escaping spaces, for example: \"--user Last,\\\\ First\""); - } + Project.NameKey nameKey = new Project.NameKey(projectName); - final Project.NameKey nameKey = new Project.NameKey(projectName); + try { + MetaDataUpdate md = metaDataUpdateFactory.create(nameKey); + ProjectConfig config; + config = ProjectConfig.read(md); - try { - MetaDataUpdate md = metaDataUpdateFactory.create(nameKey); - ProjectConfig config; - config = ProjectConfig.read(md); + permissionGroupWidth = wide ? Integer.MAX_VALUE : columns - 9 - 5 - 9; - permissionGroupWidth = wide ? Integer.MAX_VALUE : columns - 9 - 5 - 9; + for (Id id : idList) { + userHasPermissionsInProject = false; + account = accountResolver.find(db, id.toString()); + stdout.println("Full name: " + account.getFullName()); + // Need to know what groups the user is in. This is not a great + // solution, but it does work. + List<GroupInfo> groupInfos = + accountGetGroups.get().apply( + new AccountResource(userFactory.create(id))); + HashSet<String> groupHash = new HashSet<>(); - for (Id id : idList) { - userHasPermissionsInProject = false; - account = accountResolver.find(id.toString()); - stdout.println("Full name: " + account.getFullName()); - // Need to know what groups the user is in. This is not a great - // solution, but it does work. - List<GroupInfo> groupInfos = - accountGetGroups.get().apply( - new AccountResource(userFactory.create(id))); - HashSet<String> groupHash = new HashSet<String>(); + for (GroupInfo groupInfo : groupInfos) { + groupHash.add(groupInfo.name); + } - for (GroupInfo groupInfo : groupInfos) { - groupHash.add(groupInfo.name); - } + for (AccessSection accessSection : config.getAccessSections()) { + StringBuilder sb = new StringBuilder(); + sb.append((String.format(sectionNameFormatter, accessSection + .getName().toString()))); + // This is a solution to prevent displaying a section heading unless + // the user has permissions for it + // not the best solution, but I haven't been able to find + // "Is user a member of this group" based on the information I have + // in a more efficient manner yet. + userHasPermissionsInSection = false; + for (Permission permission : accessSection.getPermissions()) { - for (AccessSection accessSection : config.getAccessSections()) { - StringBuilder sb = new StringBuilder(); - sb.append((String.format(sectionNameFormatter, accessSection - .getName().toString()))); - // This is a solution to prevent displaying a section heading unless - // the user has permissions for it - // not the best solution, but I haven't been able to find - // "Is user a member of this group" based on the information I have - // in a more efficient manner yet. - userHasPermissionsInSection = false; - for (Permission permission : accessSection.getPermissions()) { + for (PermissionRule rule : permission.getRules()) { - for (PermissionRule rule : permission.getRules()) { - - if (groupHash.contains(rule.getGroup().getName())) { - sb.append(String.format(ruleNameFormatter, permission.getName())); - sb.append(String.format(permissionNameFormatter, - (!rule.getMin().equals(rule.getMax())) ? "" + rule.getMin() + " " - + rule.getMax() : rule.getAction(), - (permission.getExclusiveGroup() ? "EXCLUSIVE" : ""), - format(rule.getGroup().getName()))); - userHasPermissionsInSection = true; + if (groupHash.contains(rule.getGroup().getName())) { + sb.append(String.format(ruleNameFormatter, permission.getName())); + sb.append(String.format(permissionNameFormatter, + (!rule.getMin().equals(rule.getMax())) ? "" + rule.getMin() + " " + + rule.getMax() : rule.getAction(), + (permission.getExclusiveGroup() ? "EXCLUSIVE" : ""), + format(rule.getGroup().getName()))); + userHasPermissionsInSection = true; + } } } + + if (userHasPermissionsInSection) { + stdout.print(sb.toString()); + + userHasPermissionsInProject = true; + } } - if (userHasPermissionsInSection) { - stdout.print(sb.toString()); - userHasPermissionsInProject = true; + if (!userHasPermissionsInProject) { + stdout.println(" No access found for this user on this repository"); } } - - - if (!userHasPermissionsInProject) { - stdout.println(" No access found for this user on this repository"); - } + } catch (RepositoryNotFoundException e) { + throw new UnloggedFailure(1, "Repository not found"); } - } catch (RepositoryNotFoundException e) { - throw new UnloggedFailure(1, "Repository not found"); } } - private String format(final String s) { + private String format(String s) { if (s.length() < permissionGroupWidth) { return s; - } else { - return s.substring(0, permissionGroupWidth); } + return s.substring(0, permissionGroupWidth); } }
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md index b4af23f..ca56b06 100644 --- a/src/main/resources/Documentation/build.md +++ b/src/main/resources/Documentation/build.md
@@ -1,7 +1,7 @@ Build ===== -This plugin is built with Buck or Maven. +This plugin is built with Buck. Buck ---- @@ -101,15 +101,6 @@ buck test --include @PLUGIN@ ``` -Maven ------ - -To build with Maven, run - -``` -mvn clean package -``` - How to build the Gerrit Plugin API is described in the [Gerrit documentation](../../../Documentation/dev-buck.html#_extension_and_plugin_api_jar_files).
diff --git a/src/main/resources/Documentation/cmd-show-repo-access.md b/src/main/resources/Documentation/cmd-show-repo-access.md index 7583fee..fa8d3b0 100644 --- a/src/main/resources/Documentation/cmd-show-repo-access.md +++ b/src/main/resources/Documentation/cmd-show-repo-access.md
@@ -15,7 +15,7 @@ DESCRIPTION ----------- Displays access for a specific repository. Does not interpret repository inheritance (currently - may change in the future, or be added as an option) -Note, see [cmd-show-account](cmd-show-account.html) for more information on the user search functionality provided here. +Note, see [cmd-show-account](cmd-show-account.md) for more information on the user search functionality provided here. OPTIONS ------- @@ -44,4 +44,4 @@ > $ ssh -p @SSH_PORT@ review.example.com @PLUGIN@ show-repo-access All-Projects Find Access for a repository named "my-project" -> $ ssh -p @SSH_PORT@ review.example.com @PLUGIN@ show-repo-access my-project \ No newline at end of file +> $ ssh -p @SSH_PORT@ review.example.com @PLUGIN@ show-repo-access my-project