Mercurial > hg > mercurial
changeset 960:1aaf8dba4072
fixing TW-48788 for the case of SSH url
author | Pavel.Sher |
---|---|
date | Tue, 21 Feb 2017 18:22:37 +0100 |
parents | 9e67a769bcc1 |
children | 075f3521bd02 |
files | mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupportTest.java |
diffstat | 2 files changed, 26 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupport.java Tue Feb 21 18:14:54 2017 +0100 +++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupport.java Tue Feb 21 18:22:37 2017 +0100 @@ -46,24 +46,29 @@ String fetchUrl = url.getUrl(); boolean testRequired = true; - MavenVcsUrl mavenUrl = url.asMavenVcsUrl(); - if (mavenUrl != null && !"hg".equals(mavenUrl.getProviderSchema())) { - return null; - } + + if (fetchUrl.startsWith("ssh://hg@bitbucket.org")) { + testRequired = false; // definitely Mercurial + } else { + MavenVcsUrl mavenUrl = url.asMavenVcsUrl(); + if (mavenUrl != null && !"hg".equals(mavenUrl.getProviderSchema())) { + return null; + } - if (mavenUrl != null) { - fetchUrl = mavenUrl.getProviderSpecificPart(); - testRequired = false; - } + if (mavenUrl != null) { + fetchUrl = mavenUrl.getProviderSpecificPart(); + testRequired = false; + } - if (fetchUrl.startsWith("http")) { - // check URL by sending HTTP request - if (isMercurialRepository(fetchUrl, url.getCredentials())) { - testRequired = false; + if (fetchUrl.startsWith("http")) { + // check URL by sending HTTP request + if (isMercurialRepository(fetchUrl, url.getCredentials())) { + testRequired = false; + } } } - Map<String, String> res = new HashMap<String, String>(myVcsSupport.getDefaultVcsProperties()); + Map<String, String> res = new HashMap<>(myVcsSupport.getDefaultVcsProperties()); res.put(Constants.REPOSITORY_PROP, fetchUrl); Credentials credentials = url.getCredentials(); if (credentials != null) {
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupportTest.java Tue Feb 21 18:14:54 2017 +0100 +++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialUrlSupportTest.java Tue Feb 21 18:22:37 2017 +0100 @@ -16,11 +16,9 @@ package jetbrains.buildServer.buildTriggers.vcs.mercurial; -import jetbrains.buildServer.BaseTestCase; import jetbrains.buildServer.vcs.Credentials; import jetbrains.buildServer.vcs.VcsException; import jetbrains.buildServer.vcs.VcsUrl; -import junit.framework.Assert; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; @@ -65,6 +63,14 @@ assertEquals("pass1", props.get(Constants.PASSWORD)); } + public void ssh_protocol_mercurial_repo() throws VcsException { + VcsUrl url = new VcsUrl("ssh://hg@bitbucket.org/user/repo"); + Map<String, String> props = myUrlSupport.convertToVcsRootProperties(url); + assertNotNull(props); + + assertEquals("ssh://hg@bitbucket.org/user/repo", props.get(Constants.REPOSITORY_PROP)); + } + public void http_protocol_svn_repo() throws VcsException { VcsUrl url = new VcsUrl("http://svn.jetbrains.org/teamcity/plugins/xml-tests-reporting/trunk"); Map<String, String> props = myUrlSupport.convertToVcsRootProperties(url);