diff --git a/BUILD b/BUILD
index d490714..d359779 100644
--- a/BUILD
+++ b/BUILD
@@ -24,21 +24,8 @@
     name = "webhooks_tests",
     srcs = glob(["src/test/java/**/*.java"]),
     resources = glob(["src/test/resources/**/*"]),
-    tags = [
-        "local",
-        "webhooks",
-    ],
-    deps = [
-        ":webhooks__plugin_test_deps",
-    ],
-)
-
-java_library(
-    name = "webhooks__plugin_test_deps",
-    testonly = 1,
-    visibility = ["//visibility:public"],
-    exports = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [
+    tags = ["webhooks"],
+    deps = PLUGIN_DEPS + PLUGIN_TEST_DEPS + [
         ":webhooks__plugin",
-        "@mockito//jar",
     ],
 )
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/PostTask.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/PostTask.java
index 90c03b9..354bdf8 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/PostTask.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/PostTask.java
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.util.Optional;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 import javax.net.ssl.SSLException;
 
@@ -62,7 +63,9 @@
   }
 
   private void reschedule() {
-    executor.schedule(this, remote.getRetryInterval(), TimeUnit.MILLISECONDS);
+    @SuppressWarnings("unused")
+    ScheduledFuture<?> ignored =
+        executor.schedule(this, remote.getRetryInterval(), TimeUnit.MILLISECONDS);
   }
 
   @Override
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/DeleteRemote.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/DeleteRemote.java
index 7bb1470..408b092 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/DeleteRemote.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/DeleteRemote.java
@@ -48,7 +48,7 @@
   }
 
   @Override
-  public Object apply(RemoteResource rsrc, Input input)
+  public Response<?> apply(RemoteResource rsrc, Input input)
       throws RepositoryNotFoundException, IOException, ConfigInvalidException, AuthException {
     if (!permissions.canUpdate(rsrc.getProject())) {
       throw new AuthException("not allowed to update webhooks");
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/GetRemote.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/GetRemote.java
index 5e1a8bf..27e07ef 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/GetRemote.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/GetRemote.java
@@ -16,6 +16,7 @@
 
 import com.google.gerrit.extensions.restapi.AuthException;
 import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
+import com.google.gerrit.extensions.restapi.Response;
 import com.google.gerrit.extensions.restapi.RestReadView;
 import com.google.gerrit.server.project.NoSuchProjectException;
 import com.google.inject.Inject;
@@ -34,12 +35,12 @@
   }
 
   @Override
-  public RemoteInfo apply(RemoteResource rsrc)
+  public Response<RemoteInfo> apply(RemoteResource rsrc)
       throws NoSuchProjectException, ResourceNotFoundException, AuthException {
     if (!permissions.canRead(rsrc.getProject())) {
       throw new AuthException("not allowed to read webhooks");
     }
-    return fromRemoteConfig(rsrc.getRemoteConfig());
+    return Response.ok(fromRemoteConfig(rsrc.getRemoteConfig()));
   }
 
   static RemoteInfo fromRemoteConfig(RemoteConfig rc) {
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/ListRemotes.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/ListRemotes.java
index c1b5416..50d76e7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/ListRemotes.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/ListRemotes.java
@@ -18,6 +18,7 @@
 import static com.googlesource.gerrit.plugins.webhooks.rest.GetRemote.fromRemoteConfig;
 
 import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.restapi.Response;
 import com.google.gerrit.extensions.restapi.RestReadView;
 import com.google.gerrit.server.config.PluginConfigFactory;
 import com.google.gerrit.server.project.NoSuchProjectException;
@@ -46,7 +47,7 @@
   }
 
   @Override
-  public Map<String, RemoteInfo> apply(ProjectWebhooksResource resource)
+  public Response<Map<String, RemoteInfo>> apply(ProjectWebhooksResource resource)
       throws NoSuchProjectException {
     Map<String, RemoteInfo> remotes = new HashMap<>();
     Config cfg =
@@ -54,6 +55,6 @@
     for (String name : cfg.getSubsections(REMOTE)) {
       remotes.put(name, fromRemoteConfig(remoteFactory.create(cfg, name)));
     }
-    return remotes;
+    return Response.ok(remotes);
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java
index 6d438ed..5a35e1e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/PermissionsImpl.java
@@ -16,7 +16,7 @@
 
 import static com.google.gerrit.reviewdb.client.RefNames.REFS_CONFIG;
 
-import com.google.gerrit.reviewdb.client.Branch;
+import com.google.gerrit.reviewdb.client.BranchNameKey;
 import com.google.gerrit.reviewdb.client.Project;
 import com.google.gerrit.server.CurrentUser;
 import com.google.gerrit.server.permissions.PermissionBackend;
@@ -50,7 +50,7 @@
   private boolean can(Project.NameKey project, RefPermission permission) {
     return permissionBackend
         .user(currentUser.get())
-        .ref(Branch.nameKey(project, REFS_CONFIG))
+        .ref(BranchNameKey.create(project, REFS_CONFIG))
         .testOrFalse(permission);
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/UpsertRemote.java b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/UpsertRemote.java
index 41eedae..3730456 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/UpsertRemote.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/webhooks/rest/UpsertRemote.java
@@ -20,6 +20,7 @@
 import com.google.gerrit.extensions.annotations.PluginName;
 import com.google.gerrit.extensions.restapi.AuthException;
 import com.google.gerrit.extensions.restapi.IdString;
+import com.google.gerrit.extensions.restapi.Response;
 import com.google.gerrit.extensions.restapi.RestCollectionCreateView;
 import com.google.gerrit.extensions.restapi.RestModifyView;
 import com.google.gerrit.reviewdb.client.Project;
@@ -59,10 +60,10 @@
     }
 
     @Override
-    public RemoteInfo apply(RemoteResource rsrc, UpsertRemote.Input in)
+    public Response<RemoteInfo> apply(RemoteResource rsrc, UpsertRemote.Input in)
         throws ConfigInvalidException, RepositoryNotFoundException, IOException,
             NoSuchProjectException, AuthException {
-      return upserter.upsert(rsrc.getProject(), rsrc.getRemoteConfig().getName(), in);
+      return Response.ok(upserter.upsert(rsrc.getProject(), rsrc.getRemoteConfig().getName(), in));
     }
   }
 
@@ -78,11 +79,11 @@
     }
 
     @Override
-    public RemoteInfo apply(
+    public Response<RemoteInfo> apply(
         ProjectWebhooksResource rsrc, IdString remoteName, UpsertRemote.Input in)
         throws RepositoryNotFoundException, IOException, ConfigInvalidException,
             NoSuchProjectException, AuthException {
-      return upserter.upsert(rsrc.getProject(), remoteName.get(), in);
+      return Response.created(upserter.upsert(rsrc.getProject(), remoteName.get(), in));
     }
   }
 
diff --git a/src/test/java/com/googlesource/gerrit/plugins/webhooks/processors/AbstractEventProcessorTest.java b/src/test/java/com/googlesource/gerrit/plugins/webhooks/processors/AbstractEventProcessorTest.java
index 807f7b0..e4056b4 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/webhooks/processors/AbstractEventProcessorTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/webhooks/processors/AbstractEventProcessorTest.java
@@ -84,7 +84,7 @@
     assertThat(actual).isFalse();
   }
 
-  private class TestEventProcessor extends AbstractEventProcessor {
+  private static class TestEventProcessor extends AbstractEventProcessor {
     @Override
     public Optional<EventProcessor.Request> doProcess(ProjectEvent event, RemoteConfig config) {
       // do nothing
