Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-33901

Bitbucket notifier plugin does not support SSH on port 443

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • None
    • Plugin org.jenkins-ci.plugins:bitbucket-build-status-notifier:1.1.0

      On some servers the outgoing traffic on port 22 is blocked and BitBucket supports that by providing an alternative URL scheme. See section "SSH on Port 443" at the bottom of this page.

      So the URL looks like this: ssh://git@altssh.bitbucket.org:443/accountname/reponame/

      The plugin throws an error like this:

      itbucket notify on start failed: Bitbucket build notifier support only repositories hosted in bitbucket.org
      java.lang.Exception: Bitbucket build notifier support only repositories hosted in bitbucket.org
      at org.jenkinsci.plugins.bitbucket.BitbucketBuildStatusNotifier.createBuildStatusResourceFromBuild(BitbucketBuildStatusNotifier.java:183)
      at org.jenkinsci.plugins.bitbucket.BitbucketBuildStatusNotifier.notifyBuildStatus(BitbucketBuildStatusNotifier.java:215)
      at org.jenkinsci.plugins.bitbucket.BitbucketBuildStatusNotifier.prebuild(BitbucketBuildStatusNotifier.java:85)
      at hudson.model.AbstractBuild$AbstractBuildExecution.preBuild(AbstractBuild.java:804)
      at hudson.model.AbstractBuild$AbstractBuildExecution.preBuild(AbstractBuild.java:799)
      at hudson.model.Build$BuildExecution.doRun(Build.java:142)
      at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533)
      at hudson.model.Run.execute(Run.java:1759)
      at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      at hudson.model.ResourceController.execute(ResourceController.java:89)
      at hudson.model.Executor.run(Executor.java:240)

      It seems to be consistent with the code: https://github.com/jenkinsci/bitbucket-build-status-notifier-plugin/blob/master/src/main/java/org/jenkinsci/plugins/bitbucket/BitbucketBuildStatusNotifier.java#L182

      I've tried to replace the line above by something like (probably better to define a list of allowed URLs and check if the host is in it though):

      URIish urIish = scmAdapter.getRepositoryUri();
      if (!urIish.getHost().equals("bitbucket.org") &&
      !urIish.getHost().equals("altssh.bitbucket.org") &&
      !urIish.getHost().equals("altssh.bitbucket.org:443"))

      { throw new Exception("Bitbucket build notifier support only repositories hosted in bitbucket.org"); }

      But I'm not allowed to push to the repo. Could you fix this?

      Thanks in advance!

            amansilla Antonio Mansilla
            manpe Jean-Paul Delimat
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: