Merge "Fix typo in owners docs"
diff --git a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/AutoassignConfigModule.java b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/AutoassignConfigModule.java
index dfa812d..865d971 100644
--- a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/AutoassignConfigModule.java
+++ b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/AutoassignConfigModule.java
@@ -33,7 +33,7 @@
.annotatedWith(Exports.named(PROJECT_CONFIG_AUTOASSIGN_WIP_CHANGES))
.toInstance(
new ProjectConfigEntry(
- "Auto-assign WIP changes", InheritableBoolean.TRUE, InheritableBoolean.class));
+ "Auto-assign WIP changes", InheritableBoolean.INHERIT, InheritableBoolean.class));
bind(ProjectConfigEntry.class)
.annotatedWith(Exports.named(PROJECT_CONFIG_AUTOASSIGN_FIELD))
.toInstance(
diff --git a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/SyncReviewerManager.java b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/SyncReviewerManager.java
index 83ba531..efd5a37 100644
--- a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/SyncReviewerManager.java
+++ b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/SyncReviewerManager.java
@@ -137,13 +137,15 @@
}
in.ignoreAutomaticAttentionSetRules = true;
- in.addToAttentionSet =
- ownersForAttentionSet.get().addToAttentionSet(changeInfo, reviewersAccounts).stream()
- .map(
- (reviewer) ->
- new AttentionSetInput(
- reviewer.toString(), "Selected as member of the OWNERS file"))
- .collect(Collectors.toList());
+ if (ownersForAttentionSet != null) {
+ in.addToAttentionSet =
+ ownersForAttentionSet.get().addToAttentionSet(changeInfo, reviewersAccounts).stream()
+ .map(
+ (reviewer) ->
+ new AttentionSetInput(
+ reviewer.toString(), "Selected as member of the OWNERS file"))
+ .collect(Collectors.toList());
+ }
gApi.changes().id(changeInfo.id).current().review(in);
}
diff --git a/owners/src/main/java/com/googlesource/gerrit/owners/OwnerPredicateProvider.java b/owners/src/main/java/com/googlesource/gerrit/owners/OwnerPredicateProvider.java
index d15da8e..b83d7a8 100644
--- a/owners/src/main/java/com/googlesource/gerrit/owners/OwnerPredicateProvider.java
+++ b/owners/src/main/java/com/googlesource/gerrit/owners/OwnerPredicateProvider.java
@@ -18,7 +18,7 @@
import com.google.common.collect.ImmutableSet;
import com.google.gerrit.extensions.annotations.Listen;
-import com.google.gerrit.server.rules.PredicateProvider;
+import com.google.gerrit.server.rules.prolog.PredicateProvider;
import com.google.inject.Inject;
import com.googlesource.gerrit.owners.common.Accounts;
import com.googlesource.gerrit.owners.common.PathOwnersEntriesCache;
diff --git a/owners/src/main/java/com/googlesource/gerrit/owners/OwnersModule.java b/owners/src/main/java/com/googlesource/gerrit/owners/OwnersModule.java
index be8a6ca..2d5a2b0 100644
--- a/owners/src/main/java/com/googlesource/gerrit/owners/OwnersModule.java
+++ b/owners/src/main/java/com/googlesource/gerrit/owners/OwnersModule.java
@@ -17,7 +17,7 @@
import com.google.common.flogger.FluentLogger;
import com.google.gerrit.extensions.registration.DynamicSet;
-import com.google.gerrit.server.rules.PredicateProvider;
+import com.google.gerrit.server.rules.prolog.PredicateProvider;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.googlesource.gerrit.owners.common.PathOwnersEntriesCache;
diff --git a/owners/src/main/java/com/googlesource/gerrit/owners/OwnersStoredValues.java b/owners/src/main/java/com/googlesource/gerrit/owners/OwnersStoredValues.java
index ff8bc18..84cc6a2 100644
--- a/owners/src/main/java/com/googlesource/gerrit/owners/OwnersStoredValues.java
+++ b/owners/src/main/java/com/googlesource/gerrit/owners/OwnersStoredValues.java
@@ -21,8 +21,8 @@
import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.patch.filediff.FileDiffOutput;
import com.google.gerrit.server.project.ProjectState;
-import com.google.gerrit.server.rules.StoredValue;
-import com.google.gerrit.server.rules.StoredValues;
+import com.google.gerrit.server.rules.prolog.StoredValue;
+import com.google.gerrit.server.rules.prolog.StoredValues;
import com.googlecode.prolog_cafe.lang.Prolog;
import com.googlesource.gerrit.owners.common.Accounts;
import com.googlesource.gerrit.owners.common.InvalidOwnersFileException;
diff --git a/owners/src/main/java/gerrit_owners/PRED_code_review_user_1.java b/owners/src/main/java/gerrit_owners/PRED_code_review_user_1.java
index a2dd06b..92df174 100644
--- a/owners/src/main/java/gerrit_owners/PRED_code_review_user_1.java
+++ b/owners/src/main/java/gerrit_owners/PRED_code_review_user_1.java
@@ -20,7 +20,7 @@
import com.google.gerrit.entities.LabelType;
import com.google.gerrit.entities.LabelValue;
import com.google.gerrit.server.query.change.ChangeData;
-import com.google.gerrit.server.rules.StoredValues;
+import com.google.gerrit.server.rules.prolog.StoredValues;
import com.googlecode.prolog_cafe.exceptions.PrologException;
import com.googlecode.prolog_cafe.lang.IntegerTerm;
import com.googlecode.prolog_cafe.lang.JavaObjectTerm;
diff --git a/owners/src/main/java/gerrit_owners/PRED_file_owners_2.java b/owners/src/main/java/gerrit_owners/PRED_file_owners_2.java
index cbb23cf..11f1a74 100644
--- a/owners/src/main/java/gerrit_owners/PRED_file_owners_2.java
+++ b/owners/src/main/java/gerrit_owners/PRED_file_owners_2.java
@@ -18,8 +18,8 @@
import com.google.gerrit.entities.Account;
import com.google.gerrit.server.IdentifiedUser;
-import com.google.gerrit.server.rules.PrologEnvironment;
-import com.google.gerrit.server.rules.StoredValues;
+import com.google.gerrit.server.rules.prolog.PrologEnvironment;
+import com.google.gerrit.server.rules.prolog.StoredValues;
import com.googlecode.prolog_cafe.exceptions.PInstantiationException;
import com.googlecode.prolog_cafe.exceptions.PrologException;
import com.googlecode.prolog_cafe.lang.Operation;
diff --git a/owners/src/main/resources/Documentation/config.md b/owners/src/main/resources/Documentation/config.md
index 09f6e6d..5b85b7e 100644
--- a/owners/src/main/resources/Documentation/config.md
+++ b/owners/src/main/resources/Documentation/config.md
@@ -160,7 +160,7 @@
> configuration is used) so that owners don't have to be granted with the
> maximum label's score. Note that only single digit (0..9) is allowed.
-For example, imagine the following tree:
+For example, imagine the following tree with a default Gerrit project labels configuration:
```
/OWNERS
@@ -212,7 +212,7 @@
- Doug Smith
```
-### When `owners.enableSubmitRequirement = true`
+### When `owners.enableSubmitRequirement = true` with a default Gerrit project labels configuration
Then Gerrit would:
@@ -263,7 +263,7 @@
- Doug Smith
```
-### When `owners.enableSubmitRequirement = true`
+### When `owners.enableSubmitRequirement = true` with a default Gerrit project labels configuration
This case is supported with the `Code-Review` label and `OWNERS` file
modifications.
@@ -348,7 +348,7 @@
label-Owner-Approved = -1..+1 group Registered Users
```
-### When `owners.enableSubmitRequirement = true`
+### When `owners.enableSubmitRequirement = true` with a default Gerrit project labels configuration
Given now an OWNERS configuration of:
@@ -398,7 +398,7 @@
shouldn't be granted with `Code-Review +2` for all project files as it might be
outside of their comptenence/comfort zone.
-### When `owners.enableSubmitRequirement = true`
+### When `owners.enableSubmitRequirement = true` with a default Gerrit project labels configuration
Given an OWNERS configuration of:
@@ -439,7 +439,7 @@
- Matt Designer
```
-### When `owners.enableSubmitRequirement = true`
+### When `owners.enableSubmitRequirement = true` with a default Gerrit project labels configuration
Then for any change that contains files with .sql or .css extensions, besides
to the default Gerrit submit rules, the extra constraints on the additional
@@ -473,7 +473,7 @@
## Example 6 - Owners details on a per-file basis
-### When `owners.enableSubmitRequirement = true`
+### When `owners.enableSubmitRequirement = true` with a default Gerrit project labels configuration
This case is obsolete and _only_ prolog specific. The list of which file is
owned by whom is available through the [REST API](rest-api.md).
diff --git a/owners/src/main/resources/Documentation/metrcis.md b/owners/src/main/resources/Documentation/metrics.md
similarity index 100%
rename from owners/src/main/resources/Documentation/metrcis.md
rename to owners/src/main/resources/Documentation/metrics.md
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersRegressionIT.java b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersRegressionIT.java
index 2fc37ce..1f23510 100644
--- a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersRegressionIT.java
+++ b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersRegressionIT.java
@@ -72,19 +72,24 @@
private void verifySubmitRequirement(
Collection<SubmitRequirementResultInfo> requirements, String name, Status status) {
- assertThat(requirements).hasSize(1);
+ // in post stable-3.10 Gerrit has default submit requirement no-unresolved-comments turned on by
+ // default therefore 2 requirements will be always present
+ assertThat(requirements).hasSize(2);
- SubmitRequirementResultInfo requirement = requirements.iterator().next();
- if (!requirement.name.equals(name) || !(requirement.status == status)) {
- throw new AssertionError(
- String.format(
- "No submit requirement %s with status %s (existing = %s)",
- name,
- status,
- requirements.stream()
- .map(r -> String.format("%s=%s", r.name, r.status))
- .collect(toImmutableList())));
+ for (SubmitRequirementResultInfo requirement : requirements) {
+ if (requirement.name.equals(name) && requirement.status == status) {
+ return;
+ }
}
+
+ throw new AssertionError(
+ String.format(
+ "Could not find submit requirement %s with status %s (results = %s)",
+ name,
+ status,
+ requirements.stream()
+ .map(r -> String.format("%s=%s", r.name, r.status))
+ .collect(toImmutableList())));
}
private ChangeApi forChange(PushOneCommit.Result r) throws RestApiException {
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementIT.java b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementIT.java
index 0e7e40b..f7421fe 100644
--- a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementIT.java
+++ b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementIT.java
@@ -16,7 +16,6 @@
package com.googlesource.gerrit.owners;
import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth8.assertThat;
import com.google.gerrit.acceptance.TestPlugin;
import com.google.gerrit.acceptance.UseLocalDisk;
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementITAbstract.java b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementITAbstract.java
index 2135b40..ba35cdb 100644
--- a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementITAbstract.java
+++ b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementITAbstract.java
@@ -16,7 +16,6 @@
package com.googlesource.gerrit.owners;
import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth8.assertThat;
import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowLabel;
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
import static com.google.gerrit.server.project.testing.TestLabels.labelBuilder;
@@ -89,7 +88,7 @@
assertThat(changeNotReady.requirements).isEmpty();
changeApi.current().review(ReviewInput.approve());
- ChangeInfo changeReady = changeApi.get();
+ ChangeInfo changeReady = forChange(r).get();
assertThat(changeReady.submittable).isTrue();
assertThat(changeReady.requirements).isEmpty();
}
@@ -158,9 +157,10 @@
forChange(r).get().submitRecords, LabelId.VERIFIED, SubmitRecordInfo.Label.Status.NEED);
changeApi.current().review(new ReviewInput().label(LabelId.VERIFIED, 1));
- assertThat(changeApi.get().submittable).isTrue();
+ ChangeInfo changeReady = forChange(r).get();
+ assertThat(changeReady.submittable).isTrue();
verifyHasSubmitRecord(
- changeApi.get().submitRecords, LabelId.VERIFIED, SubmitRecordInfo.Label.Status.OK);
+ changeReady.submitRecords, LabelId.VERIFIED, SubmitRecordInfo.Label.Status.OK);
}
@Test
@@ -270,7 +270,7 @@
requestScopeOperations.setApiUser(admin2.id());
forChange(r).current().review(ReviewInput.recommend());
- ChangeInfo ownersVoteNotSufficient = changeApi.get();
+ ChangeInfo ownersVoteNotSufficient = forChange(r).get();
assertThat(ownersVoteNotSufficient.submittable).isFalse();
verifyChangeReady(ownersVoteNotSufficient);
verifyHasSubmitRecord(
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementTest.java b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementTest.java
index bd6c232..1a411c3 100644
--- a/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementTest.java
+++ b/owners/src/test/java/com/googlesource/gerrit/owners/OwnersSubmitRequirementTest.java
@@ -15,7 +15,6 @@
package com.googlesource.gerrit.owners;
import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth8.assertThat;
import static com.google.gerrit.server.project.testing.TestLabels.codeReview;
import static com.google.gerrit.server.project.testing.TestLabels.labelBuilder;
import static com.google.gerrit.server.project.testing.TestLabels.value;
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java
index 1633783..4593e33 100644
--- a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java
+++ b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersITAbstract.java
@@ -41,16 +41,12 @@
import com.googlesource.gerrit.owners.entities.GroupOwner;
import com.googlesource.gerrit.owners.entities.Owner;
import com.googlesource.gerrit.owners.restapi.GetFilesOwners.LabelNotFoundException;
-import java.util.Arrays;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.compress.utils.Sets;
-import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
import org.eclipse.jgit.junit.TestRepository;
-import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.transport.FetchResult;
-import org.eclipse.jgit.util.FS;
import org.junit.Test;
public abstract class GetFilesOwnersITAbstract extends LightweightPluginDaemonTest {
@@ -375,31 +371,18 @@
public TestRepository<InMemoryRepository> cloneProjectWithMetaRefs(Project.NameKey project)
throws Exception {
- String uri = registerRepoConnection(project, admin);
+ TestRepository<InMemoryRepository> clonedProject = cloneProject(project);
String initialRef = "refs/remotes/origin/config";
- DfsRepositoryDescription desc = new DfsRepositoryDescription("clone of " + project.get());
-
- InMemoryRepository.Builder b = new InMemoryRepository.Builder().setRepositoryDescription(desc);
- if (uri.startsWith("ssh://")) {
- // SshTransport depends on a real FS to read ~/.ssh/config, but InMemoryRepository by default
- // uses a null FS.
- // Avoid leaking user state into our tests.
- b.setFS(FS.detect().setUserHome(null));
- }
- InMemoryRepository dest = b.build();
- Config cfg = dest.getConfig();
- cfg.setString("remote", "origin", "url", uri);
- cfg.setStringList(
- "remote",
- "origin",
- "fetch",
- Arrays.asList(
- "+refs/heads/*:refs/remotes/origin/*", "+refs/meta/config:refs/remotes/origin/config"));
- TestRepository<InMemoryRepository> testRepo = GitUtil.newTestRepository(dest);
- FetchResult result = testRepo.git().fetch().setRemote("origin").call();
+ FetchResult result =
+ clonedProject
+ .git()
+ .fetch()
+ .setRemote("origin")
+ .setRefSpecs("+refs/meta/config:refs/remotes/origin/config")
+ .call();
if (result.getTrackingRefUpdate(initialRef) != null) {
- testRepo.reset(initialRef);
+ clonedProject.reset(initialRef);
}
- return testRepo;
+ return clonedProject;
}
}
diff --git a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java
index f5c80b7..d45deb5 100644
--- a/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java
+++ b/owners/src/test/java/com/googlesource/gerrit/owners/restapi/GetFilesOwnersSubmitRequirementsIT.java
@@ -28,6 +28,7 @@
import com.google.gerrit.entities.RefNames;
import com.google.gerrit.extensions.api.changes.ReviewInput;
import com.google.gerrit.extensions.restapi.Response;
+import com.google.gerrit.server.config.SitePaths;
import com.google.gerrit.server.project.testing.TestLabels;
import com.google.inject.Inject;
import com.googlesource.gerrit.owners.common.LabelDefinition;
@@ -44,6 +45,7 @@
@UseLocalDisk
public class GetFilesOwnersSubmitRequirementsIT extends GetFilesOwnersITAbstract {
@Inject private ProjectOperations projectOperations;
+ @Inject private SitePaths sitePaths;
@Override
public void setUpTestPlugin() throws Exception {
@@ -53,7 +55,7 @@
// globally
pluginCfg.setBoolean("owners", null, "enableSubmitRequirement", true);
Files.writeString(
- server.getSitePath().resolve("etc").resolve("owners.config"),
+ sitePaths.etc_dir.resolve("owners.config"),
pluginCfg.toText(),
StandardOpenOption.CREATE,
StandardOpenOption.APPEND);