diff --git a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java
index e7982fb..727e7e5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/simplesubmitrules/config/ConfigTranslator.java
@@ -202,13 +202,16 @@
     labelDefinition.ignoreSelfApproval = labelType.isIgnoreSelfApproval();
   }
 
-  private static void applyCommentRulesTo(@Nullable CommentsRules comments,
-      ProjectConfig projectConfig, String pluginName) {
+  private static void applyCommentRulesTo(
+      @Nullable CommentsRules comments, ProjectConfig projectConfig, String pluginName) {
     if (comments == null) {
       return;
     }
-    projectConfig.updatePluginConfig(pluginName, cfg -> cfg.setBoolean(
-        SimpleSubmitRulesConfig.KEY_BLOCK_IF_UNRESOLVED_COMMENTS,
-        comments.blockIfUnresolvedComments));
+    projectConfig.updatePluginConfig(
+        pluginName,
+        cfg ->
+            cfg.setBoolean(
+                SimpleSubmitRulesConfig.KEY_BLOCK_IF_UNRESOLVED_COMMENTS,
+                comments.blockIfUnresolvedComments));
   }
 }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/PluginIT.java b/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/PluginIT.java
index 147d7d3..9cb5ea0 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/PluginIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/PluginIT.java
@@ -139,7 +139,8 @@
     assertThat(localCR.getFunction()).isEqualTo(LabelFunction.MAX_NO_BLOCK);
 
     // Check that the label has the same configs besides the function, which we changed
-    LabelType allProjectsCR = projectCache.getAllProjects().getLabelTypes().byLabel("Code-Review");
+    LabelType allProjectsCR =
+        projectCache.getAllProjects().getLabelTypes().byLabel("Code-Review").get();
     assertThat(localCR.toBuilder().setFunction(allProjectsCR.getFunction()).build())
         .isEqualTo(allProjectsCR);
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRuleIT.java b/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRuleIT.java
index e4e55f3..ae622c7 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRuleIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/simplesubmitrules/rules/NoUnresolvedCommentsRuleIT.java
@@ -113,8 +113,11 @@
   private void enableRule(boolean newState) throws Exception {
     try (ProjectConfigUpdate u = updateProject(project)) {
       u.getConfig()
-          .updatePluginConfig(plugin.getName(), cfg ->
-          cfg.setBoolean(SimpleSubmitRulesConfig.KEY_BLOCK_IF_UNRESOLVED_COMMENTS, newState));
+          .updatePluginConfig(
+              plugin.getName(),
+              cfg ->
+                  cfg.setBoolean(
+                      SimpleSubmitRulesConfig.KEY_BLOCK_IF_UNRESOLVED_COMMENTS, newState));
       u.save();
     }
   }
