Merge "Harmonize action names with names used in hooks-its"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/bz/BugzillaClient.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/bz/BugzillaClient.java
index aa38f85..770ed96 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/hooks/bz/BugzillaClient.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/bz/BugzillaClient.java
@@ -103,17 +103,27 @@
}
}
- public void performAction(final String bugId, final String actionName,
- final String actionValue) throws BugzillaException,
+ public void performAction(final String bugId, final String actionNameParam,
+ final String actionValueParam) throws BugzillaException,
InvalidTransitionException {
Bug bug = getBug(bugId);
+
+ String actionName = actionNameParam;
+ if (actionName.startsWith("set-")) {
+ actionName = actionName.substring(4);
+ }
+ actionName = actionName.replaceAll("-and-", "/");
+
+ String actionValue = actionValueParam;
+ actionValue = actionValue.replaceAll(" ", "/");
+
if ("status".equals(actionName) || "resolution".equals(actionName)) {
performSimpleActionChainable(bug, actionName, actionValue);
} else if ("status/resolution".equals(actionName)) {
performChainedAction(bug, actionName, actionValue);
} else {
- throw new InvalidTransitionException("Action " + actionName + " is not"
- + " known");
+ throw new InvalidTransitionException("Action " + actionNameParam
+ + " is not known");
}
connector.executeMethod(new UpdateBug(bug));
}
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index f80859c..592b992 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -515,11 +515,11 @@
adds a rendered Velocity template as issue comment.
<<action-log-event,log-event>>::
appends the event's properties to gerrit's log.
-<<action-resolution,resolution>>::
+<<action-set-resolution,set-resolution>>::
sets the resolution of the issue
-<<action-status,status>>::
+<<action-set-status,set-status>>::
sets the status of the issue
-<<action-status-resolution,status/resolution>>::
+<<action-set-status-and-resolution,set-status-and-resolution>>::
sets the status of the issue
Further actions may be provided by 'hooks-its' based plugins.
@@ -627,47 +627,46 @@
This action is useful, when testing rules or trying to refine
conditions on rules, as it make the available properties visible.
-[[action-resolution]]
-Action: resolution
-^^^^^^^^^^^^^^^^^^
+[[action-set-resolution]]
+Action: set-resolution
+^^^^^^^^^^^^^^^^^^^^^^
-The 'resolution' action sets the issue's resolution. The first parameter is
-the resolution to set. So for example
+The 'set-resolution' action sets the issue's resolution. The first
+parameter is the resolution to set. So for example
----
-action = resolution WORKSFORME
+action = set-resolution WORKSFORME
----
sets the issue's status to WORKSFORME.
If you want to set the status and the resolution, use the
-'status/resolution' action, so you can set both status and resolution
-in one go.
+'set-status-and-resolution' action, so you can set both status and
+resolution in one go.
-[[action-status]]
-Action: status
-^^^^^^^^^^^^^^
+[[action-set-status]]
+Action: set-status
+^^^^^^^^^^^^^^^^^^
-The 'status' action sets the issue's status. The first parameter is
-the status to set. So for example
+The 'set-status' action sets the issue's status. The first parameter
+is the status to set. So for example
----
-action = status CONFIRMED
+action = set-status CONFIRMED
----
sets the issue's status to CONFIRMED.
If you want to set the status to a value that also requires a
-resolution, use the 'status/resolution' action, so you can set both
-status and resolution in one go.
+resolution, use the 'set-status-and-resolution' action, so you can set
+both status and resolution in one go.
-[[action-status-resolution]]
-Action: status/resolution
-^^^^^^^^^^^^^^^^^^^^^^^^^
+[[action-set-status-and-resolution]]
+Action: set-status-and-resolution
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-The 'status/resolution' action sets both the issue's status and it's
-resolution in one go. The first parameter is of the form
-'STATUS/RESOLUTION' and sets the status to 'STATUS' and the resolution
-to 'RESOLUTION'.
+The 'set-status-and-resolution' action sets both the issue's status
+and it's resolution in one go. The first parameter denotes the status
+to set, the second parameter denotes the resolution to set.
So for example
----
-action = status/resolution RESOLVED/FIXED
+action = set-status-and-resolution RESOLVED FIXED
----
sets the issue's status to RESOLVED and it's resolution to FIXED.