diff --git a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/api/v2/resources/HgConfigDto.java b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/api/v2/resources/HgConfigDto.java index 5953b7c789..641b8650fc 100644 --- a/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/api/v2/resources/HgConfigDto.java +++ b/scm-plugins/scm-hg-plugin/src/main/java/sonia/scm/api/v2/resources/HgConfigDto.java @@ -19,6 +19,8 @@ public class HgConfigDto extends HalRepresentation { private String pythonPath; private boolean useOptimizedBytecode; private boolean showRevisionInId; + private boolean enableHttpPostArgs; + private boolean disableHookSSLValidation; @Override @SuppressWarnings("squid:S1185") // We want to have this method available in this package diff --git a/scm-plugins/scm-hg-plugin/src/main/js/HgConfigurationForm.js b/scm-plugins/scm-hg-plugin/src/main/js/HgConfigurationForm.js index 8a96ea1801..8e370a70c6 100644 --- a/scm-plugins/scm-hg-plugin/src/main/js/HgConfigurationForm.js +++ b/scm-plugins/scm-hg-plugin/src/main/js/HgConfigurationForm.js @@ -11,6 +11,8 @@ type Configuration = { "encoding": string, "useOptimizedBytecode": boolean, "showRevisionInId": boolean, + "disableHookSSLValidation": boolean, + "enableHttpPostArgs": boolean, "disabled": boolean, "_links": Links }; @@ -101,6 +103,8 @@ class HgConfigurationForm extends React.Component { {this.inputField("encoding")} {this.checkbox("useOptimizedBytecode")} {this.checkbox("showRevisionInId")} + {this.checkbox("disableHookSSLValidation")} + {this.checkbox("enableHttpPostArgs")} {this.checkbox("disabled")} ); diff --git a/scm-plugins/scm-hg-plugin/src/main/resources/locales/en/plugins.json b/scm-plugins/scm-hg-plugin/src/main/resources/locales/en/plugins.json index 48f3bd57d6..ee1b6c8911 100644 --- a/scm-plugins/scm-hg-plugin/src/main/resources/locales/en/plugins.json +++ b/scm-plugins/scm-hg-plugin/src/main/resources/locales/en/plugins.json @@ -20,6 +20,10 @@ "useOptimizedBytecodeHelpText": "Use the Python '-O' switch.", "showRevisionInId": "Show Revision", "showRevisionInIdHelpText": "Show revision as part of the node id.", + "enableHttpPostArgs": "Enable HttpPostArgs Protocol", + "enableHttpPostArgsHelpText": "Disables the validation of ssl certificates for the mercurial hook, which forwards the repository changes back to scm-manager. This option should only be used, if SCM-Manager uses a self signed certificate.", + "disableHookSSLValidation": "Disable SSL Validation on Hooks", + "disableHookSSLValidationHelpText": "Enables the experimental HttpPostArgs Protocol of mercurial. The HttpPostArgs Protocol uses the body of post requests to send the meta information instead of http headers. This helps to reduce the header size of mercurial requests. HttpPostArgs is supported since mercurial 3.8.", "disabled": "Disabled", "disabledHelpText": "Enable or disable the Mercurial plugin.", "required": "This configuration value is required" diff --git a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/api/v2/resources/HgConfigDtoToHgConfigMapperTest.java b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/api/v2/resources/HgConfigDtoToHgConfigMapperTest.java index f8aaedb32f..524e33e265 100644 --- a/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/api/v2/resources/HgConfigDtoToHgConfigMapperTest.java +++ b/scm-plugins/scm-hg-plugin/src/test/java/sonia/scm/api/v2/resources/HgConfigDtoToHgConfigMapperTest.java @@ -30,6 +30,8 @@ public class HgConfigDtoToHgConfigMapperTest { assertEquals("/etc/", config.getPythonPath()); assertTrue(config.isShowRevisionInId()); assertTrue(config.isUseOptimizedBytecode()); + assertTrue(config.isDisableHookSSLValidation()); + assertTrue(config.isEnableHttpPostArgs()); } private HgConfigDto createDefaultDto() { @@ -41,6 +43,8 @@ public class HgConfigDtoToHgConfigMapperTest { configDto.setPythonPath("/etc/"); configDto.setShowRevisionInId(true); configDto.setUseOptimizedBytecode(true); + configDto.setDisableHookSSLValidation(true); + configDto.setEnableHttpPostArgs(true); return configDto; }