From e3744e23f34088f1f41b934b39dc35e3a2cb5374 Mon Sep 17 00:00:00 2001 From: Oleksandr Zaichenko Date: Wed, 6 Dec 2017 16:43:52 +0200 Subject: [PATCH 1/2] Added gerrit score field definition --- .../jetbrains/buildServer/commitPublisher/Constants.java | 1 + .../commitPublisher/gerrit/GerritClientBase.java | 8 +++++++- .../commitPublisher/gerrit/GerritConnectionDetails.java | 7 ++++++- .../commitPublisher/gerrit/GerritPublisher.java | 4 +++- .../commitPublisher/gerrit/GerritSettings.java | 3 ++- 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java index c9748e68..4fd85bc1 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java @@ -30,6 +30,7 @@ public class Constants { public static final String GERRIT_PUBLISHER_ID = "gerritStatusPublisher"; public static final String GERRIT_SERVER = "gerritServer"; public static final String GERRIT_PROJECT = "gerritProject"; + public static final String GERRIT_SCORE_FIELD = "gerritScoreField"; public static final String GERRIT_USERNAME = "gerritUsername"; public static final String GERRIT_SUCCESS_VOTE = "successVote"; public static final String GERRIT_FAILURE_VOTE = "failureVote"; diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java index 96c2b780..5af2974b 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java @@ -21,8 +21,14 @@ abstract class GerritClientBase implements GerritClient { public void review(@NotNull final GerritConnectionDetails connectionDetails, @NotNull final String vote, @NotNull final String message, @NotNull final String revision) throws JSchException, IOException { StringBuilder command = new StringBuilder(); + + /** + * Added gerScoreField + * */ command.append("gerrit review --project ").append(connectionDetails.getGerritProject()) - .append(" --verified ").append(vote) + .append(connectionDetails.gerScoreField()) + //.append(" --verified ") + .append(vote) .append(" -m \"").append(escape(message)).append("\" ") .append(revision); runCommand(connectionDetails, command.toString()); diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritConnectionDetails.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritConnectionDetails.java index 65ae1a5d..ba5c940b 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritConnectionDetails.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritConnectionDetails.java @@ -13,14 +13,16 @@ class GerritConnectionDetails { private final String myServer; private final String myUserName; private final String myKeyId; + private final String myGerritScoreField; GerritConnectionDetails(@NotNull SProject project, @NotNull String gerritProject, - @NotNull String server, @NotNull String username, @Nullable String keyId) { + @NotNull String server, @NotNull String username, @Nullable String keyId, @NotNull String gerritScoreFiled) { myProject = project; myGerritProject = gerritProject; myServer = server; myUserName = username; myKeyId = keyId; + myGerritScoreField = gerritScoreFiled; } @NotNull @@ -48,4 +50,7 @@ String getKeyId() { return myKeyId; } + @NotNull + String gerScoreField() {return myGerritScoreField; } + } diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisher.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisher.java index c357ffd9..d810ae96 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisher.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisher.java @@ -52,7 +52,7 @@ public boolean buildFinished(@NotNull SFinishedBuild build, @NotNull BuildRevisi myGerritClient.review( new GerritConnectionDetails(bt.getProject(), getGerritProject(), getGerritServer(), getUsername(), - myParams.get(ServerSshKeyManager.TEAMCITY_SSH_KEY_PROP)), + myParams.get(ServerSshKeyManager.TEAMCITY_SSH_KEY_PROP), getGerritScoreField()), vote, msg, revision.getRevision() ); return true; @@ -70,6 +70,8 @@ private String getGerritProject() { return myParams.get(Constants.GERRIT_PROJECT); } + private String getGerritScoreField() {return myParams.get(Constants.GERRIT_SCORE_FIELD); } + private String getUsername() { return myParams.get(Constants.GERRIT_USERNAME); } diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java index 35e3d006..e4b3c4c5 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java @@ -64,6 +64,7 @@ public Map getDefaultParameters() { Map params = new HashMap(); params.put(Constants.GERRIT_SUCCESS_VOTE, "+1"); params.put(Constants.GERRIT_FAILURE_VOTE, "-1"); + params.put(Constants.GERRIT_SCORE_FIELD, "--build-result"); return params; } @@ -108,7 +109,7 @@ public void testConnection(@NotNull BuildTypeIdentity buildTypeOrTemplate, @NotN myGerritClient.testConnection( new GerritConnectionDetails(buildTypeOrTemplate.getProject(), params.get(Constants.GERRIT_PROJECT), params.get(Constants.GERRIT_SERVER), params.get(Constants.GERRIT_USERNAME), - params.get(ServerSshKeyManager.TEAMCITY_SSH_KEY_PROP)) + params.get(ServerSshKeyManager.TEAMCITY_SSH_KEY_PROP), params.get(Constants.GERRIT_SCORE_FIELD)) ); } catch (Exception e) { throw new PublisherException("Gerrit publisher connection test has failed", e); From 518aacf901fd11c5abedd9275e5a5885e19733ae Mon Sep 17 00:00:00 2001 From: Oleksandr Zaichenko Date: Thu, 7 Dec 2017 11:19:21 +0200 Subject: [PATCH 2/2] Added (custom)score field to gerrit template --- .../commitPublisher/CommitStatusPublisherFeature.java | 2 +- .../jetbrains/buildServer/commitPublisher/Constants.java | 5 +++++ .../commitPublisher/gerrit/GerritClientBase.java | 3 ++- .../commitPublisher/gerrit/GerritSettings.java | 2 +- .../buildServerResources/gerrit/gerritSettings.jsp | 9 +++++++++ .../commitPublisher/CommitStatusPublisherTestBase.java | 6 +++--- .../commitPublisher/gerrit/GerritPublisherTest.java | 1 + 7 files changed, 22 insertions(+), 6 deletions(-) diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherFeature.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherFeature.java index 394d75c4..76c23112 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherFeature.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherFeature.java @@ -82,7 +82,7 @@ public Collection process(Map params) { }; } - @Override + //@Override public boolean isRequiresAgent() { return false; } diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java index 4fd85bc1..341ee077 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/Constants.java @@ -121,6 +121,11 @@ public String getGerritUsername() { return GERRIT_USERNAME; } + @NotNull + public String getGerritScoreField() { + return GERRIT_SCORE_FIELD; + } + @NotNull public String getGerritSuccessVote() { return GERRIT_SUCCESS_VOTE; diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java index 5af2974b..68668df7 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritClientBase.java @@ -26,7 +26,8 @@ public void review(@NotNull final GerritConnectionDetails connectionDetails, @No * Added gerScoreField * */ command.append("gerrit review --project ").append(connectionDetails.getGerritProject()) - .append(connectionDetails.gerScoreField()) + .append(" --") + .append(connectionDetails.gerScoreField()).append(" ") //.append(" --verified ") .append(vote) .append(" -m \"").append(escape(message)).append("\" ") diff --git a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java index e4b3c4c5..7068aa6e 100644 --- a/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java +++ b/commit-status-publisher-server/src/main/java/jetbrains/buildServer/commitPublisher/gerrit/GerritSettings.java @@ -64,7 +64,7 @@ public Map getDefaultParameters() { Map params = new HashMap(); params.put(Constants.GERRIT_SUCCESS_VOTE, "+1"); params.put(Constants.GERRIT_FAILURE_VOTE, "-1"); - params.put(Constants.GERRIT_SCORE_FIELD, "--build-result"); + params.put(Constants.GERRIT_SCORE_FIELD, "build-result"); return params; } diff --git a/commit-status-publisher-server/src/main/resources/buildServerResources/gerrit/gerritSettings.jsp b/commit-status-publisher-server/src/main/resources/buildServerResources/gerrit/gerritSettings.jsp index af6fc2d4..7ea1d28b 100644 --- a/commit-status-publisher-server/src/main/resources/buildServerResources/gerrit/gerritSettings.jsp +++ b/commit-status-publisher-server/src/main/resources/buildServerResources/gerrit/gerritSettings.jsp @@ -40,6 +40,15 @@ + + + + + Like: reviewed | build-result | code-review | extension-check + + + + diff --git a/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherTestBase.java b/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherTestBase.java index 0c904cf1..4dfa291c 100644 --- a/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherTestBase.java +++ b/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/CommitStatusPublisherTestBase.java @@ -132,12 +132,12 @@ public ValueResolver getValueResolver() { return null; } - @Override + //@Override public boolean isBranchesConfigured() { return false; } - @Override + //@Override public boolean isCompositeBuild() { return false; } @@ -161,7 +161,7 @@ public Browser getVcsBrowser(boolean b, @Nullable String s) { return null; } - @Override + //@Override public boolean isDefaultExcluded() { return false; } } diff --git a/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisherTest.java b/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisherTest.java index cee94075..d5235cf4 100644 --- a/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisherTest.java +++ b/commit-status-publisher-server/src/test/java/jetbrains/buildServer/commitPublisher/gerrit/GerritPublisherTest.java @@ -81,6 +81,7 @@ protected Map getPublisherParams(final String gerritProjectName) put(Constants.GERRIT_USERNAME, "gerrit_user"); put(Constants.GERRIT_SUCCESS_VOTE, "+1"); put(Constants.GERRIT_FAILURE_VOTE, "-1"); + put(Constants.GERRIT_SCORE_FIELD, "verified"); }}; }