diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/CommandBuilder.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/CommandBuilder.java new file mode 100644 index 000000000..ac5bd8b8e --- /dev/null +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/CommandBuilder.java @@ -0,0 +1,106 @@ +package com.sonyericsson.hudson.plugins.gerrit.trigger.config; + +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Builder for gerrit review commands. + * @author schemuwel <schemuwel@gmail.com> + */ +public class CommandBuilder { + private Map labels = new HashMap<>(Map.of( + Constants.CODE_REVIEW_LABEL.toLowerCase(), "", + Constants.VERIFIED_LABEL.toLowerCase(), "" + )); + + private String command = "gerrit review"; + private String message; + private String change = ""; + private String patchset = ""; + + public CommandBuilder WithChange(String change) { + this.change = change; + return this; + } + + public CommandBuilder WithPatchset(String patchset) { + this.patchset = patchset; + return this; + } + + public CommandBuilder WithMessage(String message) { + this.message = message; + return this; + } + + public CommandBuilder WithLabel(String label) { + String placeholderLabelValue = String.format("<%s>", label.toUpperCase().replace("-", "_")); + this.labels.put(label.toLowerCase(), placeholderLabelValue); + return this; + } + + public CommandBuilder WithLabel(String label, String labelValue) { + this.labels.put(label.toLowerCase(), labelValue); + return this; + } + + public static CommandBuilder fromString(String command, CommandBuilder defaultCommandBuilder) { + if (command == null) { + return defaultCommandBuilder; + } + + return fromString(command); + } + + public static CommandBuilder fromString(String command) { + Pattern gerritReviewPattern = Pattern.compile("(\\S+),(\\S+)"); + Pattern messagePattern = Pattern.compile("--message '(.*?)'"); + Pattern labelPattern = Pattern.compile("--(?!message|tag\\b)(\\S+) (\\S+)"); + + Matcher gerritReviewMatcher = gerritReviewPattern.matcher(command); + Matcher messageMatcher = messagePattern.matcher(command); + Matcher labelMatcher = labelPattern.matcher(command); + + CommandBuilder commandBuilder = new CommandBuilder(); + if (gerritReviewMatcher.find()) { + String change = gerritReviewMatcher.group(1); + String patchset = gerritReviewMatcher.group(2); + + commandBuilder.WithChange(change).WithPatchset(patchset); + } + + if (messageMatcher.find()) { + String message = messageMatcher.group(1); + + commandBuilder.WithMessage(message); + } + + while (labelMatcher.find()) { + String label = labelMatcher.group(1); + if (commandBuilder.getLabels().containsKey(label)) { + continue; + } + + commandBuilder.WithLabel(label); + } + + return commandBuilder; + } + + private Map getLabels() { + return labels; + } + + public String build() { + StringBuilder gerritCommand = new StringBuilder(command); + gerritCommand.append(String.format(" %s,%s", change, patchset)); + gerritCommand.append(String.format(" --message '%s'", message)); + for (Map.Entry label : labels.entrySet()) { + gerritCommand.append(String.format(" --%s %s", label.getKey(), label.getValue())); + } + gerritCommand.append(String.format(" --tag %s", Constants.TAG_VALUE)); + return gerritCommand.toString(); + } +} diff --git a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java index 47369e795..b20ae09dd 100644 --- a/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java +++ b/src/main/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/Config.java @@ -23,6 +23,7 @@ */ package com.sonyericsson.hudson.plugins.gerrit.trigger.config; +import com.sonyericsson.hudson.plugins.gerrit.trigger.VerdictCategory; import com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.data.BuildCancellationPolicy; import com.sonymobile.tools.gerrit.gerritevents.GerritDefaultValues; import com.sonymobile.tools.gerrit.gerritevents.dto.attr.Provider; @@ -33,21 +34,16 @@ import com.sonymobile.tools.gerrit.gerritevents.watchdog.WatchTimeExceptionData; import com.sonymobile.tools.gerrit.gerritevents.watchdog.WatchTimeExceptionData.Time; import com.sonymobile.tools.gerrit.gerritevents.watchdog.WatchTimeExceptionData.TimeSpan; -import com.sonyericsson.hudson.plugins.gerrit.trigger.VerdictCategory; - import hudson.util.Secret; import net.sf.json.JSONArray; import net.sf.json.JSONObject; - import org.apache.http.auth.Credentials; import org.apache.http.auth.UsernamePasswordCredentials; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; import java.io.File; -import java.util.Calendar; -import java.util.LinkedList; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; //CS IGNORE LineLength FOR NEXT 11 LINES. REASON: static import. @@ -181,12 +177,6 @@ public class Config implements IGerritHudsonTriggerConfig { private transient boolean gerritBuildCurrentPatchesOnly; @Deprecated private transient int numberOfWorkerThreads; - private String gerritVerifiedCmdBuildSuccessful; - private String gerritVerifiedCmdBuildUnstable; - private String gerritVerifiedCmdBuildFailed; - private String gerritVerifiedCmdBuildStarted; - private String gerritVerifiedCmdBuildNotBuilt; - private String gerritVerifiedCmdBuildAborted; private String gerritFrontEndUrl; private Integer gerritBuildStartedVerifiedValue = null; private Integer gerritBuildSuccessfulVerifiedValue = null; @@ -213,6 +203,7 @@ public class Config implements IGerritHudsonTriggerConfig { private transient boolean loadProjectListOnStartup; private int projectListFetchDelay; private List categories; + private Map buildStatusCommandBuilderMap = new HashMap<>(); private ReplicationConfig replicationConfig; private int watchdogTimeoutMinutes; private WatchTimeExceptionData watchTimeExceptionData; @@ -251,12 +242,6 @@ public Config(IGerritHudsonTriggerConfig config) { gerritBuildCurrentPatchesOnly = config.isGerritBuildCurrentPatchesOnly(); numberOfWorkerThreads = config.getNumberOfReceivingWorkerThreads(); numberOfSendingWorkerThreads = config.getNumberOfSendingWorkerThreads(); - gerritVerifiedCmdBuildStarted = config.getGerritCmdBuildStarted(); - gerritVerifiedCmdBuildFailed = config.getGerritCmdBuildFailed(); - gerritVerifiedCmdBuildSuccessful = config.getGerritCmdBuildSuccessful(); - gerritVerifiedCmdBuildUnstable = config.getGerritCmdBuildUnstable(); - gerritVerifiedCmdBuildNotBuilt = config.getGerritCmdBuildNotBuilt(); - gerritVerifiedCmdBuildAborted = config.getGerritCmdBuildAborted(); gerritFrontEndUrl = config.getGerritFrontEndUrl(); enableManualTrigger = config.isEnableManualTrigger(); enablePluginMessages = config.isEnablePluginMessages(); @@ -266,12 +251,21 @@ public Config(IGerritHudsonTriggerConfig config) { enableProjectAutoCompletion = config.isEnableProjectAutoCompletion(); projectListFetchDelay = config.getProjectListFetchDelay(); projectListRefreshInterval = config.getProjectListRefreshInterval(); + if (config.getCategories() != null) { categories = new LinkedList<>(); for (VerdictCategory cat : config.getCategories()) { categories.add(cat.clone()); } } + + buildStatusCommandBuilderMap.put(BuildStatus.STARTED, CommandBuilder.fromString(config.getGerritCmdBuildStarted())); + buildStatusCommandBuilderMap.put(BuildStatus.SUCCESSFUL, CommandBuilder.fromString(config.getGerritCmdBuildSuccessful())); + buildStatusCommandBuilderMap.put(BuildStatus.FAILED, CommandBuilder.fromString(config.getGerritCmdBuildFailed())); + buildStatusCommandBuilderMap.put(BuildStatus.UNSTABLE, CommandBuilder.fromString(config.getGerritCmdBuildUnstable())); + buildStatusCommandBuilderMap.put(BuildStatus.NOT_BUILT, CommandBuilder.fromString(config.getGerritCmdBuildNotBuilt())); + buildStatusCommandBuilderMap.put(BuildStatus.ABORTED, CommandBuilder.fromString(config.getGerritCmdBuildAborted())); + if (config.getReplicationConfig() != null) { replicationConfig = new ReplicationConfig(config.getReplicationConfig()); } @@ -320,30 +314,19 @@ public void setValues(JSONObject formData) { numberOfSendingWorkerThreads = DEFAULT_NR_OF_SENDING_WORKER_THREADS; } - gerritVerifiedCmdBuildStarted = formData.optString( - "gerritVerifiedCmdBuildStarted", - "gerrit review , --message 'Build Started ' " - + "--verified --code-review --tag " + Constants.TAG_VALUE); - gerritVerifiedCmdBuildFailed = formData.optString( - "gerritVerifiedCmdBuildFailed", - "gerrit review , --message 'Build Failed ' " - + "--verified --code-review --tag " + Constants.TAG_VALUE); - gerritVerifiedCmdBuildSuccessful = formData.optString( - "gerritVerifiedCmdBuildSuccessful", - "gerrit review , --message 'Build Successful ' " - + "--verified --code-review --tag " + Constants.TAG_VALUE); - gerritVerifiedCmdBuildUnstable = formData.optString( - "gerritVerifiedCmdBuildUnstable", - "gerrit review , --message 'Build Unstable ' " - + "--verified --code-review --tag " + Constants.TAG_VALUE); - gerritVerifiedCmdBuildNotBuilt = formData.optString( - "gerritVerifiedCmdBuildNotBuilt", - "gerrit review , --message 'No Builds Executed ' " - + "--verified --code-review --tag " + Constants.TAG_VALUE); - gerritVerifiedCmdBuildAborted = formData.optString( - "gerritVerifiedCmdBuildAborted", - "gerrit review , --message 'Build Aborted ' " - + "--verified --code-review --tag " + Constants.TAG_VALUE); + buildStatusCommandBuilderMap.put(BuildStatus.STARTED, CommandBuilder.fromString(formData.optString("gerritVerifiedCmdBuildStarted", null), + new CommandBuilder().WithMessage("Build Started "))); + buildStatusCommandBuilderMap.put(BuildStatus.SUCCESSFUL, CommandBuilder.fromString(formData.optString("gerritVerifiedCmdBuildSuccessful", null), + new CommandBuilder().WithMessage("Build Successful "))); + buildStatusCommandBuilderMap.put(BuildStatus.FAILED, CommandBuilder.fromString(formData.optString("gerritVerifiedCmdBuildFailed", null), + new CommandBuilder().WithMessage("Build Failed "))); + buildStatusCommandBuilderMap.put(BuildStatus.UNSTABLE, CommandBuilder.fromString(formData.optString("gerritVerifiedCmdBuildUnstable", null), + new CommandBuilder().WithMessage("Build Unstable "))); + buildStatusCommandBuilderMap.put(BuildStatus.NOT_BUILT, CommandBuilder.fromString(formData.optString("gerritVerifiedCmdBuildNotBuilt", null), + new CommandBuilder().WithMessage("No Builds Executed "))); + buildStatusCommandBuilderMap.put(BuildStatus.ABORTED, CommandBuilder.fromString(formData.optString("gerritVerifiedCmdBuildAborted", null), + new CommandBuilder().WithMessage("Build Aborted "))); + gerritFrontEndUrl = formData.optString( "gerritFrontEndUrl", DEFAULT_GERRIT_HOSTNAME); @@ -881,7 +864,7 @@ public String getVoteSameTopicDescription() { @Override public String getGerritCmdBuildSuccessful() { - return gerritVerifiedCmdBuildSuccessful; + return buildStatusCommandBuilderMap.get(BuildStatus.SUCCESSFUL).build(); } /** @@ -889,6 +872,7 @@ public String getGerritCmdBuildSuccessful() { * * @param cmd the command * @see #getGerritCmdBuildSuccessful() + * @deprecated use {@link Config#setGerritCmdBuildSuccessful(String) } instead. */ @Deprecated public void setGerritVerifiedCmdBuildSuccessful(String cmd) { @@ -902,12 +886,12 @@ public void setGerritVerifiedCmdBuildSuccessful(String cmd) { * @see #getGerritCmdBuildSuccessful() */ public void setGerritCmdBuildSuccessful(String cmd) { - gerritVerifiedCmdBuildSuccessful = cmd; + buildStatusCommandBuilderMap.put(BuildStatus.SUCCESSFUL, CommandBuilder.fromString(cmd)); } @Override public String getGerritCmdBuildUnstable() { - return gerritVerifiedCmdBuildUnstable; + return buildStatusCommandBuilderMap.get(BuildStatus.UNSTABLE).build(); } /** @@ -915,6 +899,7 @@ public String getGerritCmdBuildUnstable() { * * @param cmd the command * @see #getGerritCmdBuildUnstable() + * @deprecated use {@link Config#setGerritCmdBuildUnstable(String) } instead. */ @Deprecated public void setGerritVerifiedCmdBuildUnstable(String cmd) { @@ -928,12 +913,12 @@ public void setGerritVerifiedCmdBuildUnstable(String cmd) { * @see #getGerritCmdBuildUnstable() */ public void setGerritCmdBuildUnstable(String cmd) { - gerritVerifiedCmdBuildUnstable = cmd; + buildStatusCommandBuilderMap.put(BuildStatus.UNSTABLE, CommandBuilder.fromString(cmd)); } @Override public String getGerritCmdBuildFailed() { - return gerritVerifiedCmdBuildFailed; + return buildStatusCommandBuilderMap.get(BuildStatus.FAILED).build(); } /** @@ -941,6 +926,7 @@ public String getGerritCmdBuildFailed() { * * @param cmd the command * @see #getGerritCmdBuildFailed() + * @deprecated use {@link Config#setGerritCmdBuildFailed(String) } instead. */ @Deprecated public void setGerritVerifiedCmdBuildFailed(String cmd) { @@ -954,12 +940,12 @@ public void setGerritVerifiedCmdBuildFailed(String cmd) { * @see #getGerritCmdBuildFailed() */ public void setGerritCmdBuildFailed(String cmd) { - gerritVerifiedCmdBuildFailed = cmd; + buildStatusCommandBuilderMap.put(BuildStatus.FAILED, CommandBuilder.fromString(cmd)); } @Override public String getGerritCmdBuildStarted() { - return gerritVerifiedCmdBuildStarted; + return buildStatusCommandBuilderMap.get(BuildStatus.STARTED).build(); } /** @@ -967,6 +953,7 @@ public String getGerritCmdBuildStarted() { * * @param cmd the command * @see #getGerritCmdBuildStarted() + * @deprecated use {@link Config#setGerritCmdBuildStarted(String)} } instead. */ @Deprecated public void setGerritVerifiedCmdBuildStarted(String cmd) { @@ -980,12 +967,12 @@ public void setGerritVerifiedCmdBuildStarted(String cmd) { * @see #getGerritCmdBuildStarted() */ public void setGerritCmdBuildStarted(String cmd) { - gerritVerifiedCmdBuildStarted = cmd; + buildStatusCommandBuilderMap.put(BuildStatus.STARTED, CommandBuilder.fromString(cmd)); } @Override public String getGerritCmdBuildNotBuilt() { - return gerritVerifiedCmdBuildNotBuilt; + return buildStatusCommandBuilderMap.get(BuildStatus.NOT_BUILT).build(); } /** @@ -993,6 +980,7 @@ public String getGerritCmdBuildNotBuilt() { * * @param cmd the command * @see #getGerritCmdBuildNotBuilt() + * @deprecated use {@link Config#setGerritCmdBuildNotBuilt(String)} } instead. */ @Deprecated public void setGerritVerifiedCmdBuildNotBuilt(String cmd) { @@ -1006,12 +994,12 @@ public void setGerritVerifiedCmdBuildNotBuilt(String cmd) { * @see #getGerritCmdBuildNotBuilt() */ public void setGerritCmdBuildNotBuilt(String cmd) { - gerritVerifiedCmdBuildNotBuilt = cmd; + buildStatusCommandBuilderMap.put(BuildStatus.NOT_BUILT, CommandBuilder.fromString(cmd)); } @Override public String getGerritCmdBuildAborted() { - return gerritVerifiedCmdBuildAborted; + return buildStatusCommandBuilderMap.get(BuildStatus.ABORTED).build(); } /** @@ -1019,6 +1007,7 @@ public String getGerritCmdBuildAborted() { * * @param cmd the command * @see #getGerritCmdBuildAborted() + * @deprecated use {@link Config#setGerritCmdBuildAborted(String) } instead. */ @Deprecated public void setGerritVerifiedCmdBuildAborted(String cmd) { @@ -1032,7 +1021,7 @@ public void setGerritVerifiedCmdBuildAborted(String cmd) { * @see #getGerritCmdBuildAborted() */ public void setGerritCmdBuildAborted(String cmd) { - gerritVerifiedCmdBuildAborted = cmd; + buildStatusCommandBuilderMap.put(BuildStatus.ABORTED, CommandBuilder.fromString(cmd)); } /** @@ -1292,6 +1281,8 @@ public List getCategories() { return categories; } + public Map getBuilderStatusCommandMap() { return buildStatusCommandBuilderMap; } + /** * Setter for the list of VerdictCategories, used to make testing easier. * @param categories the list. @@ -1504,8 +1495,8 @@ Object readResolve() { } /* Only set these values when dealing with an old configuration*/ - if (this.gerritVerifiedCmdBuildAborted == null) { - this.gerritVerifiedCmdBuildAborted = this.gerritVerifiedCmdBuildFailed; + if (this.buildStatusCommandBuilderMap.get(BuildStatus.ABORTED) == null) { + this.buildStatusCommandBuilderMap.put(BuildStatus.ABORTED, this.buildStatusCommandBuilderMap.get(BuildStatus.FAILED)); if (this.gerritBuildAbortedCodeReviewValue == null) { gerritBuildAbortedCodeReviewValue = gerritBuildFailedCodeReviewValue; diff --git a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/CommandBuilderTests.java b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/CommandBuilderTests.java new file mode 100644 index 000000000..4b44aaf9a --- /dev/null +++ b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/CommandBuilderTests.java @@ -0,0 +1,63 @@ +package com.sonyericsson.hudson.plugins.gerrit.trigger.config; + +import org.junit.jupiter.api.Test; + +import static org.junit.Assert.assertEquals; + +/** + * @author schemuwel <schemuwel@gmail.com> + */ +public class CommandBuilderTests { + + /** + * Test for building command using placeholder values (e.g. global configuration command template) + */ + @Test + public void testBuildForPlaceholderValues() { + CommandBuilder commandBuilder = new CommandBuilder() + .WithChange("") + .WithPatchset("") + .WithMessage("Build Started ") + .WithLabel("UI-VALIdation"); + + String command = commandBuilder.build(); + + assertEquals("gerrit review , --message 'Build Started '" + + " --verified --code-review --ui-validation --tag autogenerated:jenkins-gerrit-trigger", command); + } + + /** + * Test for building command using real values (e.g. values for Gerrit events) + */ + @Test + public void testBuildWithRealValues() { + CommandBuilder commandBuilder = new CommandBuilder() + .WithChange("529381") + .WithPatchset("10") + .WithMessage("Build Started https://jenkins.example.com/job/529381/10/ (1 tests failed)") + .WithLabel("Code-Review", "-1") + .WithLabel("Verified", "-1") + .WithLabel("Custom-LABEL", "2"); + + String command = commandBuilder.build(); + + assertEquals("gerrit review 529381,10 --message 'Build Started https://jenkins.example.com/job/529381/10/ (1 tests failed)'" + + " --verified -1 --custom-label 2 --code-review -1 --tag autogenerated:jenkins-gerrit-trigger", command); + } + + + /** + * Test for creating command from string (e.g. when parsing the global configuration) + */ + @Test + public void testFromString() { + String command = "gerrit review --message 'Build Started '" + + " --verified --code-review , --validated "; + + CommandBuilder commandBuilder = CommandBuilder.fromString(command); + String parsedCommand = commandBuilder.build(); + + assertEquals("gerrit review , --message 'Build Started '" + + " --verified --validated --code-review --tag autogenerated:jenkins-gerrit-trigger", parsedCommand); + } +} diff --git a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ConfigTest.java b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ConfigTest.java index 930ecbff2..a51e974f0 100644 --- a/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ConfigTest.java +++ b/src/test/java/com/sonyericsson/hudson/plugins/gerrit/trigger/config/ConfigTest.java @@ -106,22 +106,22 @@ public void testSetValues() { JSONObject form = (JSONObject)JSONSerializer.toJSON(formString); Config config = new Config(form); assertEquals("gerrit review , " - + "--message 'Failed misserably ' --verified --code-review ", + + "--message 'Failed misserably ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildFailed()); assertEquals("gerrit review , " - + "--message 'Started yay!! ' --verified --code-review ", + + "--message 'Started yay!! ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildStarted()); assertEquals("gerrit review ," - + " --message 'Successful wonderful ' --verified --code-review ", + + " --message 'Successful wonderful ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildSuccessful()); assertEquals("gerrit review , " - + "--message 'Unstable and you are to ' --verified --code-review ", + + "--message 'Unstable and you are to ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildUnstable()); assertEquals("gerrit review , " - + "--message 'You are not built for it ' --verified --code-review ", + + "--message 'You are not built for it ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildNotBuilt()); assertEquals("gerrit review , " - + "--message 'Aborted oupsy ' --verified --code-review ", + + "--message 'Aborted oupsy ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildAborted()); assertEquals(new File("/home/local/gerrit/.ssh/id_rsa").getPath(), config.getGerritAuthKeyFile().getPath()); @@ -218,22 +218,22 @@ public void testCopyConfig() { Config initialConfig = new Config(form); Config config = new Config(initialConfig); assertEquals("gerrit review , " - + "--message 'Failed misserably ' --verified --code-review ", + + "--message 'Failed misserably ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildFailed()); assertEquals("gerrit review , " - + "--message 'Started yay!! ' --verified --code-review ", + + "--message 'Started yay!! ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildStarted()); assertEquals("gerrit review ," - + " --message 'Successful wonderful ' --verified --code-review ", + + " --message 'Successful wonderful ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildSuccessful()); assertEquals("gerrit review , " - + "--message 'Unstable and you are to ' --verified --code-review ", + + "--message 'Unstable and you are to ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildUnstable()); assertEquals("gerrit review , " - + "--message 'You are not built for it ' --verified --code-review ", + + "--message 'You are not built for it ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildNotBuilt()); assertEquals("gerrit review , " - + "--message 'Aborted oupsy ' --verified --code-review ", + + "--message 'Aborted oupsy ' --verified --code-review --tag autogenerated:jenkins-gerrit-trigger", config.getGerritCmdBuildAborted()); assertEquals(new File("/home/local/gerrit/.ssh/id_rsa").getPath(), config.getGerritAuthKeyFile().getPath());