diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java
index ee3f369..5357049 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/ConfigLoaderIT.java
@@ -268,7 +268,7 @@
       String resourceString = CharStreams.toString(new InputStreamReader(in, Charsets.UTF_8));
 
       PushOneCommit push =
-          pushFactory.create(db, admin.getIdent(), repo, "some subject", filename, resourceString);
+          pushFactory.create(admin.getIdent(), repo, "some subject", filename, resourceString);
       push.to("refs/heads/" + branchName).assertOkStatus();
     }
   }
@@ -287,7 +287,7 @@
       cfg.setString("global", null, "manifestProject", manifestNameKey.get());
       PushOneCommit push =
           pushFactory.create(
-              db, admin.getIdent(), allProjectRepo, "Subject", "automerger.config", cfg.toText());
+              admin.getIdent(), allProjectRepo, "Subject", "automerger.config", cfg.toText());
       push.to("refs/meta/config").assertOkStatus();
     }
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
index 2c0b510..e0520bd 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreatorIT.java
@@ -550,7 +550,7 @@
     // After we upload our config, we upload a new change to create the downstreams
     PushOneCommit.Result masterResult =
         pushFactory
-            .create(db, admin.getIdent(), testRepo, "subject", "filename", "echo 'Hello World!'")
+            .create(admin.getIdent(), testRepo, "subject", "filename", "echo 'Hello World!'")
             .to("refs/for/master");
     masterResult.assertOkStatus();
 
@@ -617,7 +617,7 @@
     // After we upload our config, we upload a new change to create the downstreams
     PushOneCommit.Result masterResult =
         pushFactory
-            .create(db, admin.getIdent(), testRepo, "subject", "filename", "echo 'Hello World!'")
+            .create(admin.getIdent(), testRepo, "subject", "filename", "echo 'Hello World!'")
             .to("refs/for/master");
     masterResult.assertOkStatus();
 
@@ -1016,7 +1016,7 @@
       String resourceString = CharStreams.toString(new InputStreamReader(in, Charsets.UTF_8));
 
       PushOneCommit push =
-          pushFactory.create(db, admin.getIdent(), repo, "some subject", filename, resourceString);
+          pushFactory.create(admin.getIdent(), repo, "some subject", filename, resourceString);
       push.to("refs/heads/" + branchName).assertOkStatus();
     }
   }
@@ -1037,7 +1037,7 @@
 
       PushOneCommit push =
           pushFactory.create(
-              db, admin.getIdent(), allProjectRepo, "Subject", "automerger.config", cfg.toText());
+              admin.getIdent(), allProjectRepo, "Subject", "automerger.config", cfg.toText());
       push.to(RefNames.REFS_CONFIG).assertOkStatus();
     }
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/automerger/MergeValidatorIT.java b/src/test/java/com/googlesource/gerrit/plugins/automerger/MergeValidatorIT.java
index 2df693a..5936680 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/automerger/MergeValidatorIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/automerger/MergeValidatorIT.java
@@ -56,7 +56,7 @@
       cfg.setString("automerger", "master:" + branch, "setProjects", project);
       PushOneCommit push =
           pushFactory.create(
-              db, admin.getIdent(), allProjectRepo, "Subject", "automerger.config", cfg.toText());
+              admin.getIdent(), allProjectRepo, "Subject", "automerger.config", cfg.toText());
       push.to(RefNames.REFS_CONFIG).assertOkStatus();
     }
   }
