Adapt to changes in Gerrit core
SSH keys are now stored in git and no longer in the database.
Bug: Issue 4104
Change-Id: I94b39cb81ccd5b7dc235d8bd4c88dbe9292e38e3
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java
index be953a9..d096a83 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AccountUtil.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.importer;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.api.groups.GroupApi;
import com.google.gerrit.extensions.common.AccountInfo;
@@ -23,27 +24,24 @@
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.extensions.restapi.TopLevelResource;
import com.google.gerrit.reviewdb.client.Account;
-import com.google.gerrit.reviewdb.client.AccountSshKey;
import com.google.gerrit.reviewdb.client.AuthType;
-import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.account.AccountCache;
import com.google.gerrit.server.account.AccountException;
import com.google.gerrit.server.account.AccountManager;
import com.google.gerrit.server.account.AccountState;
import com.google.gerrit.server.account.AuthRequest;
import com.google.gerrit.server.account.CreateAccount;
+import com.google.gerrit.server.account.VersionedAuthorizedKeys;
import com.google.gerrit.server.config.AuthConfig;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
-import com.google.inject.Provider;
import com.google.inject.Singleton;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
-import java.util.Collection;
-import java.util.HashSet;
import java.util.List;
import java.util.Objects;
@@ -57,7 +55,7 @@
private final AccountManager accountManager;
private final AuthType authType;
private final com.google.gerrit.extensions.api.GerritApi gApi;
- private final Provider<ReviewDb> db;
+ private final VersionedAuthorizedKeys.Accessor authorizedKeys;
@Inject
private CreateAccount.Factory createAccountFactory;
@@ -68,17 +66,17 @@
AccountManager accountManager,
AuthConfig authConfig,
com.google.gerrit.extensions.api.GerritApi gApi,
- Provider<ReviewDb> db) {
+ VersionedAuthorizedKeys.Accessor authorizedKeys) {
this.accountCache = accountCache;
this.accountManager = accountManager;
this.authType = authConfig.getAuthType();
- this.db = db;
this.gApi = gApi;
+ this.authorizedKeys = authorizedKeys;
}
Account.Id resolveUser(GerritApi api, AccountInfo acc)
throws NoSuchAccountException, IOException, OrmException,
- RestApiException {
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
if (acc.username == null) {
throw new NoSuchAccountException(String.format(
"User %s <%s> (%s) doesn't have a username and cannot be looked up.",
@@ -112,8 +110,8 @@
}
private Account.Id createAccountByLdapAndAddSshKeys(GerritApi api,
- AccountInfo acc) throws NoSuchAccountException, IOException,
- OrmException, RestApiException {
+ AccountInfo acc) throws NoSuchAccountException, IOException, OrmException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
if (!acc.username.matches(Account.USER_NAME_PATTERN)) {
throw new NoSuchAccountException(String.format("User %s not found",
acc.username));
@@ -131,26 +129,17 @@
}
private void addSshKeys(GerritApi api, AccountInfo acc)
- throws BadRequestException, IOException, OrmException {
+ throws BadRequestException, IOException, OrmException,
+ ConfigInvalidException, InvalidSshKeyException {
List<SshKeyInfo> sshKeys = api.getSshKeys(acc.username);
AccountState a = accountCache.getByUsername(acc.username);
- db.get().accountSshKeys().upsert(toAccountSshKey(a, sshKeys));
- }
-
- private static Collection<AccountSshKey> toAccountSshKey(AccountState a,
- List<SshKeyInfo> sshKeys) {
- Collection<AccountSshKey> result = new HashSet<>();
- int index = 1;
for (SshKeyInfo sshKeyInfo : sshKeys) {
- result.add(new AccountSshKey(
- new AccountSshKey.Id(a.getAccount().getId(), index++),
- sshKeyInfo.sshPublicKey));
+ authorizedKeys.addKey(a.getAccount().getId(), sshKeyInfo.sshPublicKey);
}
- return result;
}
private Account.Id createLocalUser(AccountInfo acc)
- throws OrmException, RestApiException {
+ throws OrmException, RestApiException, IOException, ConfigInvalidException {
CreateAccount.Input input = new CreateAccount.Input();
log.info(String.format("User '%s' not found", acc.username));
String username = acc.username;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
index 31d6014..05c869b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
@@ -17,6 +17,7 @@
import com.google.common.base.MoreObjects;
import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.common.data.LabelType;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.common.AccountInfo;
import com.google.gerrit.extensions.common.ApprovalInfo;
@@ -35,6 +36,7 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -80,8 +82,9 @@
this.resume = resume;
}
- void add(GerritApi api) throws OrmException, NoSuchChangeException, IOException,
- NoSuchAccountException, RestApiException{
+ void add(GerritApi api) throws OrmException, NoSuchChangeException,
+ IOException, NoSuchAccountException, RestApiException,
+ ConfigInvalidException, InvalidSshKeyException {
if (resume) {
db.patchSetApprovals().delete(
db.patchSetApprovals().byChange(change.getId()));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java
index 6598f30..87456a2 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/CopyProject.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.importer;
import com.google.common.base.Strings;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.annotations.RequiresCapability;
@@ -38,6 +39,7 @@
import com.googlesource.gerrit.plugins.importer.CopyProject.Input;
import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import java.io.IOException;
import java.io.PrintWriter;
@@ -71,7 +73,7 @@
public ImportStatistic apply(ProjectResource rsrc, Input input)
throws RestApiException, OrmException, IOException, ValidationException,
GitAPIException, NoSuchChangeException, NoSuchAccountException,
- UpdateException {
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
if (Strings.isNullOrEmpty(input.name)) {
throw new BadRequestException("name is required");
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java b/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java
index 1352f61..40b321b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/GerritApi.java
@@ -24,6 +24,8 @@
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+
import java.io.IOException;
import java.util.List;
import java.util.regex.Matcher;
@@ -72,7 +74,7 @@
throws BadRequestException, IOException, OrmException;
public List<SshKeyInfo> getSshKeys(String userId) throws BadRequestException,
- IOException, OrmException;
+ IOException, OrmException, ConfigInvalidException;
public Version getVersion() throws BadRequestException, IOException;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/GroupCommand.java b/src/main/java/com/googlesource/gerrit/plugins/importer/GroupCommand.java
index b78913e..ffe1d57 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/GroupCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/GroupCommand.java
@@ -17,6 +17,7 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.base.Strings;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.restapi.RestApiException;
@@ -27,6 +28,7 @@
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
@@ -66,7 +68,7 @@
@Override
protected void run() throws UnloggedFailure, OrmException, IOException,
- NoSuchAccountException {
+ NoSuchAccountException, ConfigInvalidException, InvalidSshKeyException {
ImportGroup.Input input = new ImportGroup.Input();
input.from = url;
input.user = user;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
index 7825d97..24ee5f9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroup.java
@@ -16,6 +16,7 @@
import static com.google.gerrit.reviewdb.client.AccountGroup.isInternalGroup;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.common.AccountInfo;
@@ -49,6 +50,7 @@
import com.googlesource.gerrit.plugins.importer.ImportGroup.Input;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.Config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -115,7 +117,7 @@
@Override
public Response<String> apply(ConfigResource rsrc, Input input)
throws NoSuchAccountException, OrmException, IOException,
- RestApiException {
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
GroupInfo groupInfo;
this.api = apiFactory.create(input.from, input.user, input.pass);
groupInfo = api.getGroup(group.get());
@@ -127,7 +129,7 @@
private void validate(Input input, GroupInfo groupInfo)
throws IOException, OrmException, NoSuchAccountException,
- RestApiException {
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
if (!isInternalGroup(new AccountGroup.UUID(groupInfo.id))) {
throw new MethodNotAllowedException(String.format(
"Group with name %s is not an internal group and cannot be imported",
@@ -182,7 +184,8 @@
}
private CreateGroupArgs toCreateGroupArgs(GroupInfo groupInfo)
- throws IOException, OrmException, NoSuchAccountException, RestApiException {
+ throws IOException, OrmException, NoSuchAccountException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
CreateGroupArgs args = new CreateGroupArgs();
args.setGroupName(groupInfo.name);
args.groupDescription = groupInfo.description;
@@ -198,8 +201,9 @@
return args;
}
- private AccountGroup createGroup(Input input, GroupInfo info) throws OrmException,
- NoSuchAccountException, IOException, RestApiException {
+ private AccountGroup createGroup(Input input, GroupInfo info)
+ throws OrmException, NoSuchAccountException, IOException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
String uniqueName = getUniqueGroupName(info.name);
if (!info.name.equals(uniqueName)) {
log.warn(String.format("Group %s with UUID %s is imported with name %s",
@@ -277,7 +281,8 @@
}
private void addMembers(AccountGroup.Id groupId, List<AccountInfo> members)
- throws OrmException, NoSuchAccountException, IOException, RestApiException {
+ throws OrmException, NoSuchAccountException, IOException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
List<AccountGroupMember> memberships = new ArrayList<>();
for (AccountInfo member : members) {
Account.Id userId = accountUtil.resolveUser(api, member);
@@ -292,10 +297,10 @@
}
}
- private void addGroups(Input input, AccountGroup.Id groupId,
- String groupName, List<GroupInfo> includedGroups)
- throws NoSuchAccountException, OrmException,
- IOException, RestApiException {
+ private void addGroups(Input input, AccountGroup.Id groupId, String groupName,
+ List<GroupInfo> includedGroups)
+ throws NoSuchAccountException, OrmException, IOException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
List<AccountGroupById> includeList = new ArrayList<>();
for (GroupInfo includedGroup : includedGroups) {
if (isInternalGroup(new AccountGroup.UUID(includedGroup.id))) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java
index bae0813..0e9fece 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportGroupsStep.java
@@ -16,6 +16,7 @@
import static com.google.gerrit.reviewdb.client.AccountGroup.isInternalGroup;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.restapi.MethodNotAllowedException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -30,6 +31,7 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.ProgressMonitor;
import java.io.IOException;
@@ -76,7 +78,7 @@
}
void importGroups() throws NoSuchAccountException, OrmException, IOException,
- RestApiException {
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
ProjectConfig projectConfig = projectCache.get(project).getConfig();
Set<AccountGroup.UUID> groupUUIDs = projectConfig.getAllGroupUUIDs();
pm.beginTask("Import Groups", groupUUIDs.size());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
index 0e7d44a..5d8931d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ImportProject.java
@@ -18,6 +18,7 @@
import static java.lang.String.format;
import com.google.common.base.Strings;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.restapi.BadRequestException;
@@ -42,6 +43,7 @@
import com.googlesource.gerrit.plugins.importer.ImportProject.Input;
import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.internal.storage.file.LockFile;
import org.eclipse.jgit.lib.NullProgressMonitor;
import org.eclipse.jgit.lib.ProgressMonitor;
@@ -165,7 +167,7 @@
public ImportStatistic apply(ConfigResource rsrc, Input input)
throws RestApiException, OrmException, IOException, ValidationException,
GitAPIException, NoSuchChangeException, NoSuchAccountException,
- UpdateException {
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
if (input == null) {
input = new Input();
}
@@ -181,7 +183,7 @@
public ResumeImportStatistic resume(String user, String pass, boolean force,
File importStatus) throws RestApiException, OrmException, IOException,
GitAPIException, NoSuchChangeException, NoSuchAccountException,
- UpdateException {
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
LockFile lockFile = lockForImport();
try {
ImportProjectInfo info = ImportJson.parse(importStatus);
@@ -204,7 +206,8 @@
private ResumeImportStatistic apply(LockFile lockFile, Input input,
ImportProjectInfo info) throws RestApiException, OrmException,
IOException, GitAPIException, NoSuchChangeException,
- NoSuchAccountException, UpdateException {
+ NoSuchAccountException, UpdateException, ConfigInvalidException,
+ InvalidSshKeyException {
boolean resume = info != null;
api = apiFactory.create(input.from, input.user, input.pass);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java b/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java
index d02c46c..a5dd841 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/LocalApi.java
@@ -34,6 +34,8 @@
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+
import java.io.IOException;
import java.util.List;
import java.util.Map;
@@ -120,7 +122,7 @@
@Override
public List<SshKeyInfo> getSshKeys(String userId) throws BadRequestException,
- IOException, OrmException {
+ IOException, OrmException, ConfigInvalidException {
try {
AccountResource rsrc =
accounts.parse(TopLevelResource.INSTANCE,
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java
index f31e160..48e0212 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ProjectCommand.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.importer;
import com.google.common.base.Strings;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.RequiresCapability;
import com.google.gerrit.extensions.restapi.RestApiException;
@@ -29,6 +30,7 @@
import com.google.inject.Inject;
import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
@@ -69,9 +71,10 @@
private ImportProject.Factory importProjectFactory;
@Override
- protected void run() throws OrmException, IOException, UnloggedFailure,
- ValidationException, GitAPIException, NoSuchChangeException,
- NoSuchAccountException, UpdateException {
+ protected void run()
+ throws OrmException, IOException, UnloggedFailure, ValidationException,
+ GitAPIException, NoSuchChangeException, NoSuchAccountException,
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
ImportProject.Input input = new ImportProject.Input();
input.from = url;
input.name = name;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
index 788f83b..dcb0a66 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -17,6 +17,7 @@
import com.google.common.collect.Iterators;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.data.GlobalCapability;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.client.ChangeStatus;
import com.google.gerrit.extensions.common.ChangeInfo;
@@ -37,6 +38,7 @@
import com.google.inject.Provider;
import com.google.inject.assistedinject.Assisted;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ProgressMonitor;
import org.eclipse.jgit.lib.Repository;
@@ -132,7 +134,7 @@
void replay() throws IOException, OrmException,
NoSuchAccountException, NoSuchChangeException, RestApiException,
- UpdateException {
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
int start = 0;
int limit = GlobalCapability.DEFAULT_MAX_QUERY_LIMIT;
pm.beginTask("Replay Changes", ProgressMonitor.UNKNOWN);
@@ -166,7 +168,8 @@
private void replayChange(RevWalk rw, ChangeInfo c)
throws IOException, OrmException, NoSuchAccountException,
- NoSuchChangeException, RestApiException, IllegalArgumentException, UpdateException {
+ NoSuchChangeException, RestApiException, IllegalArgumentException,
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
if (c.status == ChangeStatus.DRAFT) {
// no import of draft changes
return;
@@ -222,8 +225,9 @@
}
}
- private Change createChange(ChangeInfo c) throws OrmException,
- NoSuchAccountException, IOException, RestApiException {
+ private Change createChange(ChangeInfo c)
+ throws OrmException, NoSuchAccountException, IOException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
Change.Id changeId = new Change.Id(sequences.nextChangeId());
Change change =
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
index 0015cc0..49f969c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayInlineCommentsStep.java
@@ -21,6 +21,7 @@
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.google.gerrit.common.TimeUtil;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.client.Side;
import com.google.gerrit.extensions.common.ChangeInfo;
@@ -44,6 +45,7 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -102,8 +104,9 @@
this.resume = resume;
}
- void replay() throws RestApiException, OrmException, IOException,
- NoSuchChangeException, NoSuchAccountException {
+ void replay()
+ throws RestApiException, OrmException, IOException, NoSuchChangeException,
+ NoSuchAccountException, ConfigInvalidException, InvalidSshKeyException {
for (PatchSet ps : db.patchSets().byChange(change.getId())) {
Iterable<CommentInfo> comments = api.getComments(
changeInfo._number, ps.getRevision().get());
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
index e5a8975..dfdf892 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.importer;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.common.ChangeInfo;
import com.google.gerrit.extensions.common.ChangeMessageInfo;
@@ -32,6 +33,8 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
+import org.eclipse.jgit.errors.ConfigInvalidException;
+
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Collections;
@@ -74,8 +77,9 @@
this.resume = resume;
}
- void replay(GerritApi api) throws NoSuchAccountException, NoSuchChangeException,
- OrmException, IOException, RestApiException {
+ void replay(GerritApi api) throws NoSuchAccountException,
+ NoSuchChangeException, OrmException, IOException, RestApiException,
+ ConfigInvalidException, InvalidSshKeyException {
for (ChangeMessageInfo msg : changeInfo.messages) {
ChangeMessage.Key msgKey = new ChangeMessage.Key(change.getId(), msg.id);
if (resume && db.changeMessages().get(msgKey) != null) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
index 20559b6..e5cd3dc 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.importer;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.common.ChangeInfo;
import com.google.gerrit.extensions.common.RevisionInfo;
@@ -28,6 +29,7 @@
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import org.eclipse.jgit.lib.Constants;
import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.RefUpdate;
@@ -78,8 +80,9 @@
this.changeInfo = changeInfo;
}
- void replay(GerritApi api) throws IOException, OrmException,
- NoSuchAccountException, RestApiException {
+ void replay(GerritApi api)
+ throws IOException, OrmException, NoSuchAccountException,
+ RestApiException, ConfigInvalidException, InvalidSshKeyException {
List<RevisionInfo> revisions = new ArrayList<>(changeInfo.revisions.values());
sortRevisionInfoByNumber(revisions);
List<PatchSet> patchSets = new ArrayList<>();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java
index e040133..748bf4c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeCopyProject.java
@@ -14,6 +14,7 @@
package com.googlesource.gerrit.plugins.importer;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.annotations.RequiresCapability;
@@ -38,6 +39,7 @@
import com.googlesource.gerrit.plugins.importer.ResumeCopyProject.Input;
import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import java.io.IOException;
import java.io.Writer;
@@ -80,7 +82,7 @@
public ResumeImportStatistic apply(ProjectResource rsrc, Input input)
throws RestApiException, IOException, OrmException, ValidationException,
GitAPIException, NoSuchChangeException, NoSuchAccountException,
- UpdateException {
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
ImportProjectResource projectResource =
projectsCollection.parse(new ConfigResource(),
IdString.fromDecoded(rsrc.getName()));
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java
index b5793b5..881b6ff 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ResumeProjectImport.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.importer;
import com.google.common.base.Strings;
+import com.google.gerrit.common.errors.InvalidSshKeyException;
import com.google.gerrit.common.errors.NoSuchAccountException;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.annotations.RequiresCapability;
@@ -38,6 +39,7 @@
import com.googlesource.gerrit.plugins.importer.ResumeProjectImport.Input;
import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.errors.ConfigInvalidException;
import java.io.IOException;
import java.io.Writer;
@@ -94,7 +96,7 @@
public ResumeImportStatistic apply(ImportProjectResource rsrc, Input input)
throws RestApiException, IOException, OrmException, ValidationException,
GitAPIException, NoSuchChangeException, NoSuchAccountException,
- UpdateException {
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
if (copy) {
input.validateResumeCopy();
} else {
@@ -129,9 +131,9 @@
@Override
public ResumeImportStatistic apply(ProjectResource rsrc, Input input)
- throws RestApiException, IOException, OrmException,
- ValidationException, GitAPIException, NoSuchChangeException,
- NoSuchAccountException, UpdateException {
+ throws RestApiException, IOException, OrmException, ValidationException,
+ GitAPIException, NoSuchChangeException, NoSuchAccountException,
+ UpdateException, ConfigInvalidException, InvalidSshKeyException {
ImportProjectResource projectResource =
projectsCollection.parse(new ConfigResource(),
IdString.fromDecoded(rsrc.getName()));