Merge branch 'stable-2.16' into stable-3.0
* stable-2.16:
Add new documentation for the owners-autoassign plugin
Allow async assignment of reviewers
Change-Id: I9c241886ffdb02c396df04e57e33220a29430683
diff --git a/WORKSPACE b/WORKSPACE
index 7dc7280..5c0cb74 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "56c9f4ed6dbe3c88f793851c88389637f3714a5d",
+ commit = "7472a1104a37d514799100d6556445836e8efe4c",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java
index 7ddd6a7..48f55a5 100644
--- a/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java
+++ b/owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java
@@ -19,6 +19,7 @@
import static com.google.gerrit.extensions.client.DiffPreferencesInfo.Whitespace.IGNORE_NONE;
import com.google.common.collect.Sets;
+import com.google.gerrit.exceptions.StorageException;
import com.google.gerrit.extensions.annotations.Listen;
import com.google.gerrit.extensions.api.GerritApi;
import com.google.gerrit.extensions.api.changes.ChangeApi;
@@ -39,7 +40,6 @@
import com.google.gerrit.server.patch.PatchListNotAvailableException;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
import java.io.IOException;
@@ -56,11 +56,8 @@
private final GerritApi api;
private final PatchListCache patchListCache;
-
private final GitRepositoryManager repositoryManager;
-
private final Accounts accounts;
-
private final ReviewerManager reviewerManager;
private final OneOffRequestContext oneOffReqCtx;
@@ -106,7 +103,7 @@
private void handleGitReferenceUpdatedAsUser(Event event, Account.Id updaterAccountId) {
try (ManualRequestContext ctx = oneOffReqCtx.openAs(updaterAccountId)) {
handleGitReferenceUpdated(event);
- } catch (OrmException e) {
+ } catch (StorageException e) {
logger.warn("Unable to process event {} on project {}", event, event.getProjectName(), e);
}
}
@@ -114,7 +111,7 @@
private void handleGitReferenceUpdatedAsServer(Event event) {
try (ManualRequestContext ctx = oneOffReqCtx.open()) {
handleGitReferenceUpdated(event);
- } catch (OrmException e) {
+ } catch (StorageException e) {
logger.warn("Unable to process event {} on project {}", event, event.getProjectName(), e);
}
}
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 e22446d..61e51c4 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
@@ -26,14 +26,12 @@
import com.google.gerrit.reviewdb.client.Account.Id;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.Project;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.permissions.ChangePermission;
import com.google.gerrit.server.permissions.PermissionBackend;
import com.google.gerrit.server.query.change.ChangeData;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import java.util.ArrayList;
@@ -77,7 +75,7 @@
ReviewInput in = new ReviewInput();
in.reviewers = new ArrayList<>(reviewers.size());
for (Account.Id account : reviewers) {
- if (isVisibleTo(ctx.getReviewDbProvider().get(), changeInfo, account)) {
+ if (isVisibleTo(changeInfo, account)) {
AddReviewerInput addReviewerInput = new AddReviewerInput();
addReviewerInput.reviewer = account.toString();
in.reviewers.add(addReviewerInput);
@@ -90,16 +88,16 @@
}
gApi.changes().id(changeInfo.id).current().review(in);
}
- } catch (RestApiException | OrmException e) {
+ } catch (RestApiException e) {
log.error("Couldn't add reviewers to the change", e);
throw new ReviewerManagerException(e);
}
}
- private boolean isVisibleTo(ReviewDb reviewDb, ChangeInfo changeInfo, Id account) {
+ private boolean isVisibleTo(ChangeInfo changeInfo, Id account) {
ChangeData changeData =
changeDataFactory.create(
- reviewDb, new Project.NameKey(changeInfo.project), new Change.Id(changeInfo._number));
+ new Project.NameKey(changeInfo.project), new Change.Id(changeInfo._number));
return permissionBackend
.user(userFactory.create(account))
.change(changeData)
diff --git a/owners-autoassign/src/test/java/com/googlesource/gerrit/owners/common/GitRefListenerIT.java b/owners-autoassign/src/test/java/com/googlesource/gerrit/owners/common/GitRefListenerIT.java
index 88216a7..2a9c406 100644
--- a/owners-autoassign/src/test/java/com/googlesource/gerrit/owners/common/GitRefListenerIT.java
+++ b/owners-autoassign/src/test/java/com/googlesource/gerrit/owners/common/GitRefListenerIT.java
@@ -21,11 +21,9 @@
import com.google.gerrit.acceptance.TestPlugin;
import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
import com.google.gerrit.reviewdb.client.RefNames;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.AnonymousUser;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.ThreadLocalRequestContext;
-import com.google.gwtorm.server.SchemaFactory;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
import com.googlesource.gerrit.owners.common.ReviewerManager;
@@ -39,7 +37,6 @@
public class GitRefListenerIT extends LightweightPluginDaemonTest {
@Inject GitRefListenerTest gitRefListener;
- @Inject SchemaFactory<ReviewDb> schemaFactory;
@Inject ThreadLocalRequestContext requestContext;
String aRefChange = RefNames.REFS_CHANGES + "01/01/01";
@@ -62,7 +59,7 @@
anOldObjectId,
aNewObjectId,
Type.CREATE,
- admin.id);
+ admin.id());
gitRefListener.onGitReferenceUpdated(refUpdatedEvent);
assertEquals(0, gitRefListener.getProcessedEvents());
@@ -76,8 +73,7 @@
@Test
public void shouldRetrieveChangeFromAnonymousContext() throws Exception {
- try (ManualRequestContext ctx =
- new ManualRequestContext(new AnonymousUser(), schemaFactory, requestContext)) {
+ try (ManualRequestContext ctx = new ManualRequestContext(new AnonymousUser(), requestContext)) {
gitRefListener.onGitReferenceUpdated(newRefUpdateEvent());
assertEquals(1, gitRefListener.getProcessedEvents());
}
@@ -88,8 +84,7 @@
ReferenceUpdatedEventTest refUpdateWithoutAccountId =
new ReferenceUpdatedEventTest(
project, aRefChange, anOldObjectId, aNewObjectId, Type.CREATE, null);
- try (ManualRequestContext ctx =
- new ManualRequestContext(new AnonymousUser(), schemaFactory, requestContext)) {
+ try (ManualRequestContext ctx = new ManualRequestContext(new AnonymousUser(), requestContext)) {
gitRefListener.onGitReferenceUpdated(refUpdateWithoutAccountId);
assertEquals(1, gitRefListener.getProcessedEvents());
}
@@ -97,6 +92,6 @@
private ReferenceUpdatedEventTest newRefUpdateEvent() {
return new ReferenceUpdatedEventTest(
- project, aRefChange, anOldObjectId, aNewObjectId, Type.CREATE, admin.id);
+ project, aRefChange, anOldObjectId, aNewObjectId, Type.CREATE, admin.id());
}
}
diff --git a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java
index e83269a..b5c1f90 100644
--- a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java
+++ b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/AccountsImpl.java
@@ -32,7 +32,6 @@
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
-import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import java.io.IOException;
import java.util.Collections;
@@ -94,7 +93,7 @@
return groupMembers.listAccounts(group.get().getGroupUUID(), null).stream()
.map(Account::getId)
.collect(Collectors.toSet());
- } catch (NoSuchProjectException | OrmException | IOException e) {
+ } catch (NoSuchProjectException | IOException e) {
log.error("Unable to list accounts in group " + group, e);
return Collections.emptySet();
}
@@ -102,7 +101,7 @@
private Set<Account.Id> findUserOrEmail(String nameOrEmail) {
try (ManualRequestContext ctx = oneOffRequestContext.open()) {
- Set<Id> accountIds = resolver.findAll(nameOrEmail);
+ Set<Id> accountIds = resolver.resolve(nameOrEmail).asIdSet();
if (accountIds.isEmpty()) {
log.warn("User '{}' does not resolve to any account.", nameOrEmail);
return accountIds;
@@ -133,7 +132,7 @@
}
return accountIds;
- } catch (OrmException | IOException | ConfigInvalidException e) {
+ } catch (IOException | ConfigInvalidException e) {
log.error("Error trying to resolve user " + nameOrEmail, e);
return Collections.emptySet();
}
diff --git a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java
index 2f5c5c0..dcdd9f7 100644
--- a/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java
+++ b/owners-common/src/main/java/com/googlesource/gerrit/owners/common/ConfigurationParser.java
@@ -43,7 +43,7 @@
final OwnersConfig ret = new OwnersConfig();
JsonNode jsonNode = new ObjectMapper(new YAMLFactory()).readValue(yamlBytes, JsonNode.class);
Boolean inherited =
- Optional.ofNullable(jsonNode.get("inherited")).map(JsonNode::asBoolean).orElse(false);
+ Optional.ofNullable(jsonNode.get("inherited")).map(JsonNode::asBoolean).orElse(true);
ret.setInherited(inherited);
addClassicMatcher(jsonNode, ret);
addMatchers(jsonNode, ret);