diff --git a/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/GitImporter.java b/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/GitImporter.java
index 925bae1..c06bb96 100644
--- a/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/GitImporter.java
+++ b/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/GitImporter.java
@@ -13,17 +13,13 @@
 // limitations under the License.
 package com.googlesrouce.gerrit.plugins.github.git;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.gerrit.server.IdentifiedUser;
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
-import com.googlesource.gerrit.plugins.github.oauth.GitHubLogin;
 import com.googlesource.gerrit.plugins.github.oauth.HttpSessionProvider;
-import com.googlesource.gerrit.plugins.github.oauth.ScopedProvider;
 
 public class GitImporter extends BatchImporter {
 
@@ -39,20 +35,17 @@
   private final GitCloneStep.Factory cloneFactory;
   private final CreateProjectStep.Factory projectFactory;
   private final ReplicateProjectStep.Factory replicateFactory;
-  private final GitHubLogin githubLogin;
 
 
   @Inject
   public GitImporter(GitCloneStep.Factory cloneFactory,
       CreateProjectStep.Factory projectFactory,
       ReplicateProjectStep.Factory replicateFactory, JobExecutor executor,
-      IdentifiedUser user, ScopedProvider<GitHubLogin> githubLoginProvider,
-      HttpServletRequest req) {
+      IdentifiedUser user) {
     super(executor, user);
     this.cloneFactory = cloneFactory;
     this.projectFactory = projectFactory;
     this.replicateFactory = replicateFactory;
-    this.githubLogin = githubLoginProvider.get(req);
   }
 
   public void clone(int idx, String organisation, String repository,
@@ -63,7 +56,7 @@
           projectFactory.create(organisation, repository, description,
               user.getUserName());
       ReplicateProjectStep replicateStep =
-          replicateFactory.create(organisation, repository, githubLogin);
+          replicateFactory.create(organisation, repository);
       GitImportJob gitCloneJob =
           new GitImportJob(idx, organisation, repository, cloneStep,
               projectStep, replicateStep);
diff --git a/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/ReplicateProjectStep.java b/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/ReplicateProjectStep.java
index 253c0e4..ce74c03 100644
--- a/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/ReplicateProjectStep.java
+++ b/github-plugin/src/main/java/com/googlesrouce/gerrit/plugins/github/git/ReplicateProjectStep.java
@@ -34,7 +34,7 @@
 
   public interface Factory {
     ReplicateProjectStep create(@Assisted("organisation") String organisation,
-        @Assisted("name") String repository, @Assisted GitHubLogin ghLogin);
+        @Assisted("name") String repository);
   }
 
 
