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

Bitbucket branch source plugin does not understand the new Bitbucket Server webhooks

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      The latest Bitbucket Server version, 5.5, has built-in support for webhooks (as opposed to the plugin previously providing this functionality).

      For some reason, the built-in webhook does not send the same event keys as before, specifically it sets `X-Event-Key: repo:refs_changed` instead of `X-Event-Key: repo:push`, which the plugin expects.

      See https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html - apparently there are other changes to the payloads as well compared to Bitbucket Cloud.

      The latest comments on JENKINS-28877 touch on this issue as well.

      Example error message in the Bitbucket log:

      java.lang.Exception: X-Event-Key HTTP header invalid: repo:refs_changed 
         at org.kohsuke.stapler.HttpResponses.error(HttpResponses.java:83) 
         at com.cloudbees.jenkins.plugins.bitbucket.hooks.BitbucketSCMSourcePushHookReceiver.doNotify(BitbucketSCMSourcePushHookReceiver.java:99) 
         at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) 
         at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343) 
         at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184) 
         at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117) 
         at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129) 
         at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
         at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) 
         at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) 
         at org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374) 
         at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715) 
         at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845) 
         at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649) 
         at org.kohsuke.stapler.Stapler.service(Stapler.java:238) 
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
         at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135) 
         at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) 
         at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) 
         at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) 
         at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) 
         at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) 
         at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:232) 
         at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:209) 
         at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88) 
         at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:113) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132) 
         at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:138) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
         at com.cloudbees.jenkins.plugins.bitbucket.hooks.BitbucketSCMSourcePushHookReceiver.process(BitbucketSCMSourcePushHookReceiver.java:70) 
         at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:59) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84) 
         at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) 
         at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87) 
         at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90) 
         at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
         at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
         at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
         at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) 
         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 
         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
         at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 
         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) 
         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) 
         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) 
         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) 
         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 
         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) 
         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) 
         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
         at org.eclipse.jetty.server.Server.handle(Server.java:564) 
         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) 
         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) 
         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) 
         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) 
         at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) 
         at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77) 
         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
         at java.lang.Thread.run(Thread.java:748)
      

       

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              estyrke Emil Styrke
              Votes:
              38 Vote for this issue
              Watchers:
              55 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: