Merge branch 'stable-2.14' into stable-2.15
* stable-2.14:
Bazel: Include eclipse-out directory in .bazelignore
Change-Id: I894c448cb97d0320df22a4c01775d57a38b07912
diff --git a/.gitignore b/.gitignore
index f07afcd..6042b9d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,6 @@
*.ipr
.idea
/.classpath
-/.primary_build_tool
/.project
/.settings/
/bazel-*
diff --git a/WORKSPACE b/WORKSPACE
index 7878c39..9b89653 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -3,7 +3,7 @@
load("//:bazlets.bzl", "load_bazlets")
load_bazlets(
- commit = "714a32382ebd02919007d3514513af4395768d80",
+ commit = "b54eaed487d37188120da6933b97c571519954ca",
#local_path = "/home/<user>/projects/bazlets",
)
diff --git a/owners-autoassign/BUILD b/owners-autoassign/BUILD
index a835314..e7d9e91 100644
--- a/owners-autoassign/BUILD
+++ b/owners-autoassign/BUILD
@@ -5,6 +5,7 @@
srcs = glob([
"src/main/java/**/*.java",
]),
+ dir_name = "owners",
manifest_entries = [
"Implementation-Title: Gerrit OWNERS autoassign plugin",
"Implementation-URL: https://gerrit.googlesource.com/plugins/owners",
diff --git a/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java b/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
index aeb5960..67fdb1e 100644
--- a/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
+++ b/owners-autoassign/src/main/java/com/vmware/gerrit/owners/common/GitRefListener.java
@@ -120,7 +120,7 @@
newId = ObjectId.fromString(event.getNewObjectId());
}
- PatchListKey plKey = new PatchListKey(null, newId, IGNORE_NONE);
+ PatchListKey plKey = PatchListKey.againstCommit(null, newId, IGNORE_NONE);
try {
return patchListCache.get(plKey, change.getProject());
} catch (PatchListNotAvailableException e) {
diff --git a/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java b/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java
index 07e9af8..cef57e0 100644
--- a/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java
+++ b/owners-common/src/main/java/com/vmware/gerrit/owners/common/AccountsImpl.java
@@ -14,8 +14,8 @@
package com.vmware.gerrit.owners.common;
-import static com.google.gerrit.server.account.ExternalId.SCHEME_GERRIT;
-import static com.google.gerrit.server.account.ExternalId.SCHEME_MAILTO;
+import static com.google.gerrit.server.account.externalids.ExternalId.SCHEME_GERRIT;
+import static com.google.gerrit.server.account.externalids.ExternalId.SCHEME_MAILTO;
import com.google.gerrit.common.errors.NoSuchGroupException;
import com.google.gerrit.reviewdb.client.Account;
@@ -25,9 +25,10 @@
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.AccountResolver;
import com.google.gerrit.server.account.AccountState;
-import com.google.gerrit.server.account.ExternalId;
import com.google.gerrit.server.account.GroupCache;
import com.google.gerrit.server.account.GroupMembers;
+import com.google.gerrit.server.account.externalids.ExternalId;
+import com.google.gerrit.server.group.InternalGroup;
import com.google.gerrit.server.project.NoSuchProjectException;
import com.google.gerrit.server.util.ManualRequestContext;
import com.google.gerrit.server.util.OneOffRequestContext;
@@ -38,6 +39,7 @@
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -76,19 +78,22 @@
}
private Set<Id> findAccountsInGroup(String groupNameOrUUID) {
- AccountGroup group =
- Optional.ofNullable(groupCache.get(new AccountGroup.NameKey(groupNameOrUUID)))
+ Optional<InternalGroup> group =
+ groupCache
+ .get(new AccountGroup.NameKey(groupNameOrUUID))
+ .map(Optional::of)
.orElse(groupCache.get(new AccountGroup.UUID(groupNameOrUUID)));
- if (group == null) {
+ if (!group.isPresent()) {
log.warn("Group {} was not found", groupNameOrUUID);
+ return Collections.emptySet();
}
try (ManualRequestContext ctx = oneOffRequestContext.openAs(adminUser.getAccountId())) {
return groupMembers
.create(adminUser)
- .listAccounts(group.getGroupUUID(), null)
+ .listAccounts(group.get().getGroupUUID(), null)
.stream()
.map(Account::getId)
.collect(Collectors.toSet());
@@ -100,7 +105,7 @@
private Set<Account.Id> findUserOrEmail(String nameOrEmail) {
try (ManualRequestContext ctx = oneOffRequestContext.open()) {
- Set<Id> accountIds = resolver.findAll(ctx.getReviewDbProvider().get(), nameOrEmail);
+ Set<Id> accountIds = resolver.findAll(nameOrEmail);
if (accountIds.isEmpty()) {
log.warn("User '{}' does not resolve to any account.", nameOrEmail);
return accountIds;
@@ -132,16 +137,18 @@
}
return accountIds;
- } catch (OrmException e) {
+ } catch (OrmException | IOException | ConfigInvalidException e) {
log.error("Error trying to resolve user " + nameOrEmail, e);
return Collections.emptySet();
}
}
private boolean isFullMatch(Account.Id id, String nameOrEmail) {
- AccountState account = byId.get(id);
- return isFullNameMatch(account, nameOrEmail)
- || account
+ AccountState accountState = byId.get(id);
+ Account account = accountState.getAccount();
+ return isFullNameMatch(accountState, nameOrEmail)
+ || nameOrEmail.equalsIgnoreCase(account.getPreferredEmail())
+ || accountState
.getExternalIds()
.stream()
.anyMatch(eid -> isEMailMatch(eid, nameOrEmail) || isUsernameMatch(eid, nameOrEmail));
diff --git a/tools/workspace-status.sh b/tools/workspace-status.sh
index 35966f1..83f9cdc 100755
--- a/tools/workspace-status.sh
+++ b/tools/workspace-status.sh
@@ -14,4 +14,4 @@
cd $1; git describe --always --match "v[0-9].*" --dirty
}
-echo STABLE_BUILD_OWNERS-AUTOASSIGN_LABEL $(rev .)
+echo STABLE_BUILD_OWNERS_LABEL $(rev .)