Comments (28)
Hi, I'm going to add the logic for jobs triggered through a push on the Bitbucket Server with the following payload (see https://confluence.atlassian.com/bitbucketserver/event-payload-938025882.html#Eventpayload-Push):
{ "eventKey":"repo:refs_changed", "date":"2017-09-19T09:45:32+1000", "actor":{ "name":"admin", "emailAddress":"[email protected]", "id":1, "displayName":"Administrator", "active":true, "slug":"admin", "type":"NORMAL" }, "repository":{ "slug":"repository", "id":84, "name":"repository", "scmId":"git", "state":"AVAILABLE", "statusMessage":"Available", "forkable":true, "project":{ "key":"PROJ", "id":84, "name":"project", "public":false, "type":"NORMAL" }, "public":false }, "changes":[ { "ref":{ "id":"refs/heads/master", "displayId":"master", "type":"BRANCH" }, "refId":"refs/heads/master", "fromHash":"ecddabb624f6f5ba43816f5926e580a5f680a932", "toHash":"178864a7d521b6f5e720b386b2c2b0ef8563e0dc", "type":"UPDATE" } ] }
from bitbucket-push-and-pull-request-plugin.
Hi @impulse200 and @rlees85, I found something interesting, it seems to be that the official documentation is not up to date:
https://jira.atlassian.com/browse/BSERV-10704
from bitbucket-push-and-pull-request-plugin.
Same.
WARNING: Error while serving https://[removed]/bitbucket-hook/
java.lang.reflect.InvocationTargetException
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:27)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:458)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
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:865)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRCrumbExclusion.process(BitBucketPPRCrumbExclusion.java:47)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:73)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
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:1642)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
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:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
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:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:503)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.UnsupportedOperationException: Unsupported SCM type null
at io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRJobProbe.triggerMatchingJobs(BitBucketPPRJobProbe.java:63)
at io.jenkins.plugins.bitbucketpushandpullrequest.processor.BitBucketPPROldPostPayloadProcessor.processPayload(BitBucketPPROldPostPayloadProcessor.java:44)
at io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver.doIndex(BitBucketPPRHookReceiver.java:101)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
... 78 more
from bitbucket-push-and-pull-request-plugin.
Digging deeper, it seems our Bitbucket server REST API is not supported:
if (USER_AGENT.equals(request.getHeader("user-agent"))) {
LOGGER.log(Level.INFO, "Received new x-event-key service payload");
bitbucketEvent = new BitBucketPPREvent(request.getHeader("x-event-key"));
payload = gson.fromJson(inputStream, BitBucketPPRNewPayload.class);
} else {
LOGGER.log(Level.INFO, "Received old POST service payload");
bitbucketEvent = new BitBucketPPREvent("repo:post");
payload = gson.fromJson(inputStream, BitBucketPPROldPost.class);
}
public static final String USER_AGENT = "Bitbucket-Webhooks/2.0";
Our BitBucket server is quite a current version (5.7.1) and does NOT set this user-agent header.
I don't think it should be being handled as an 'old POST request' but I am not an expert.
X-Request-Id: 572b2351-0774-4386-a92b-7116e2b4ddd0
Content-Type: application/json; charset=utf-8
X-Event-Key: repo:refs_changed
from bitbucket-push-and-pull-request-plugin.
Hi @osipovaleks ,
which are the "user-agent" and "x-event-key" header properties that you are sending?
from bitbucket-push-and-pull-request-plugin.
I think we are using an old version of the webhooks plugin (1.6.2). I thought the webhooks was a part of Bitbucket (my bad). As its not my server I need to ask permission to upgrade the plugin so hopefully tomorrow we can try again with 1.6.4 (latest)
Apologies for this if thats all whats causing it... hopefully it will be the same for the original poster too...
user-agent is blank/not set (again on the old plugin)
from bitbucket-push-and-pull-request-plugin.
Are you all using the Bitbucket server?
from bitbucket-push-and-pull-request-plugin.
Hi @osipovaleks ,
which are the "user-agent" and "x-event-key" header properties that you are sending?
Are you all using the Bitbucket server?
No, I use Bitbucket Cloud
from bitbucket-push-and-pull-request-plugin.
Ok, just two questions:
- did you already triggered the job manually? You have to do it for the first time. Only after that, the automatic triggering over the webhook is active.
- did you configured the Bitbucket Repository under the Source Code Management with your credentials, as shown in the plugin page? ( https://plugins.jenkins.io/bitbucket-push-and-pull-request )
from bitbucket-push-and-pull-request-plugin.
Ok, just two questions:
1. did you already triggered the job manually? You have to do it for the first time. Only after that, the automatic triggering over the webhook is active.
yes, I started my job manually, everything works well this way, but webhook does not work
2. did you configured the Bitbucket Repository under the Source Code Management with your credentials, as shown in the plugin page? ( https://plugins.jenkins.io/bitbucket-push-and-pull-request )
i used ssh key in bash for access to bitbucket, so credentials in jenkins is empty
from bitbucket-push-and-pull-request-plugin.
I found logs :)
Feb 15, 2019 12:57:41 PM WARNING org.eclipse.jetty.server.handler.ContextHandler$Context log
Error while serving http://****************.ua:14080/job/**********************/test/trendMap
java.lang.NoClassDefFoundError: Could not initialize class org.jfree.chart.JFreeChart
at org.jfree.chart.ChartFactory.createStackedAreaChart(ChartFactory.java:1124)
at hudson.tasks.test.AbstractTestResultAction.createChart(AbstractTestResultAction.java:362)
at hudson.tasks.test.AbstractTestResultAction.doGraphMap(AbstractTestResultAction.java:312)
at hudson.tasks.test.TestResultProjectAction.doTrendMap(TestResultProjectAction.java:122)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
Caused: java.lang.reflect.InvocationTargetException
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:537)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:458)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:282)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
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:865)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:64)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
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:142)
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:1642)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
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:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
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:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:503)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:748)
I will get access to console at monday, and try fix this error
from bitbucket-push-and-pull-request-plugin.
this is mistake. I turn off charts in job, logs is empty, but web hooks does't work
from bitbucket-push-and-pull-request-plugin.
did you configure the Jenkins logger as shown in this screenshot?
from bitbucket-push-and-pull-request-plugin.
yes, but log is empty:(
thanks, I my started job with "Trigger builds remotely (e.g., from scripts)"
from bitbucket-push-and-pull-request-plugin.
Hi. I have quite the same issue with build job not being triggered. All I got in logs is:
Received commit hook notification : {"eventKey":"repo:refs_changed","date":"2019-02-22T11:19:26+0300","actor":
[... redacted ...]
,"changes":[{"ref":{"id":"refs/heads/jenkins-test","displayId":"jenkins-test","type":"BRANCH"},"refId":"refs/heads/jenkins-test","fromHash":"ecf7056e367ae7dad2e47f54eb29d77d036282d6","toHash":"67a039c746da6d4cd201c82178ac5245ae88cc52","type":"UPDATE"}]}
Feb 22, 2019 11:19:26 AM INFO io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
Received old POST service payload
Sorry, had to remove sensitive information from request body.
Edit: I am using BitBucket server 5.16.1
Edit2: I just found that it is accompanied with this errors in main jenkins log
Feb 22, 2019 11:48:14 AM INFO io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
Received old POST service payload
Feb 22, 2019 11:48:14 AM WARNING org.eclipse.jetty.server.handler.ContextHandler$Context log
Error while serving http://jenkins.[REDACTED]/bitbucket-hook/
java.lang.UnsupportedOperationException: Unsupported SCM type null
at io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRJobProbe.triggerMatchingJobs(BitBucketPPRJobProbe.java:63)
at io.jenkins.plugins.bitbucketpushandpullrequest.processor.BitBucketPPROldPostPayloadProcessor.processPayload(BitBucketPPROldPostPayloadProcessor.java:44)
at io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver.doIndex(BitBucketPPRHookReceiver.java:101)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
Caused: java.lang.reflect.InvocationTargetException
at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
at org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:27)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.MetaClass$9.dispatch(MetaClass.java:458)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668)
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:865)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.plugins.locale.LocaleFilter.doFilter(LocaleFilter.java:42)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:239)
at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:215)
at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:88)
at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:114)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRCrumbExclusion.process(BitBucketPPRCrumbExclusion.java:47)
at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:73)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
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:1642)
at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
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:257)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
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:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:503)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:748)
from bitbucket-push-and-pull-request-plugin.
@impulse200 thanks! I'm adding a better support for the bitbucket server, but I need more information to complete and test the implementation. For example, could you tell me which data is set in the payload for the property "repository"? I mean, is it something that could be used as a kind of "unique" identifier?
from bitbucket-push-and-pull-request-plugin.
from bitbucket-push-and-pull-request-plugin.
Hello @cdelmonte-zg
Here is request json that I have in Bitbucket repository webhooks info page:
{
"eventKey": "repo:refs_changed",
"date": "2019-02-22T11:07:01+0300",
"actor": {
"name": "USERNAME",
"emailAddress": "email@company",
"id": 949,
"displayName": "Readable User Name",
"active": true,
"slug": "username",
"type": "NORMAL",
"links": {
"self": [
{
"href": "https://git.company.domain/users/username"
}
]
}
},
"repository": {
"slug": "telegram",
"id": 152,
"name": "telegram",
"scmId": "git",
"state": "AVAILABLE",
"statusMessage": "Available",
"forkable": true,
"project": {
"key": "~USERNAME",
"id": 242,
"name": "Readable User Name",
"type": "PERSONAL",
"owner": {
"name": "username",
"emailAddress": "email@company",
"id": 949,
"displayName": "Readable User Name",
"active": true,
"slug": "username",
"type": "NORMAL",
"links": {
"self": [
{
"href": "https://git.company.domain/users/username"
}
]
}
},
"links": {
"self": [
{
"href": "https://git.company.domain/users/username"
}
]
}
},
"public": true,
"links": {
"clone": [
{
"href": "ssh://[email protected]:7999/~username/telegram.git",
"name": "ssh"
},
{
"href": "https://git.company.domain/scm/~username/telegram.git",
"name": "http"
}
],
"self": [
{
"href": "https://git.company.domain/users/username/repos/telegram/browse"
}
]
}
},
"changes": [
{
"ref": {
"id": "refs/heads/jenkins-test",
"displayId": "jenkins-test",
"type": "BRANCH"
},
"refId": "refs/heads/jenkins-test",
"fromHash": "07cb39c8deef32f0544c9a69152a2448d36b6695",
"toHash": "17824eef6441648cf10e24beab08bc8fa0e6e7e1",
"type": "UPDATE"
}
]
}
I have to redact actual values as this is my company's private Bitbucket installation:
'username' - lowercase user name used to login to Bitbucket
'USERNAME' - same, but in upper case
'Readable User Name' and 'email@company' - are values from AD for corresponding USERNAME
'telegram' is repository name which is private for USERNAME. It could be project name I guess.
from bitbucket-push-and-pull-request-plugin.
Hi @impulse200 and @rlees85, I have a question. Reading the official documentation of bitbucket, I cannot find the links property in the repository property
https://confluence.atlassian.com/bitbucketserver0516/event-payload-966061436.html
Might you check it once again?
Thanks :)
"links": {
"clone": [
{
"href": "ssh://[email protected]:7999/~username/telegram.git",
"name": "ssh"
},
{
"href": "https://git.company.domain/scm/~username/telegram.git",
"name": "http"
}
],
"self": [
{
"href": "https://git.company.domain/users/username/repos/telegram/browse"
}
]
}
from bitbucket-push-and-pull-request-plugin.
Hi. Not sure how could I help you, @cdelmonte-zg Do you have actual steps I could do?
from bitbucket-push-and-pull-request-plugin.
@impulse200 I would push a develop branch, that you could use to create a local version of the plugin with the new features. Do you know how to create hpi archives?
from bitbucket-push-and-pull-request-plugin.
Do you know how to create hpi archives?
No idea :-)
from bitbucket-push-and-pull-request-plugin.
@impulse200 released, can you reinstall the plugin and test if the push is now working? Thank you :-)
from bitbucket-push-and-pull-request-plugin.
@cdelmonte-zg , sorry, out of office for two weeks.
from bitbucket-push-and-pull-request-plugin.
I'll try and get this tested on ours over the next couple of days. Not surprised about the documentation being stale, not a massive fan of bitbucket ;)
from bitbucket-push-and-pull-request-plugin.
@rlees85 thank you 👍
from bitbucket-push-and-pull-request-plugin.
Now Bitbucket says "200" as Jenkins accepts the request, but our build does not start. Please find below all the debug stuff.
Please note our Bitbucket server is not current (5.7.1)!! (They still haven't updated it yet and this could be not helping in my case).
Request JSON sent out to Jenkins:
{
"eventKey": "repo:refs_changed",
"date": "2019-03-07T11:38:15+0000",
"actor": {
"name": "richard.lees",
"emailAddress": "[email protected]",
"id": 1260,
"displayName": "Richard Lees",
"active": true,
"slug": "richard.lees",
"type": "NORMAL"
},
"repository": {
"slug": "dkr-jenkins-slave-hybris65",
"id": 260,
"name": "dkr-jenkins-slave-hybris65",
"scmId": "git",
"state": "AVAILABLE",
"statusMessage": "Available",
"forkable": true,
"project": {
"key": "PKR",
"id": 231,
"name": "Packer",
"description": "Packer scripts for generating both AMI and Docker images.",
"public": false,
"type": "NORMAL"
},
"public": false
},
"changes": [
{
"ref": {
"id": "refs/tags/test1",
"displayId": "test1",
"type": "TAG"
},
"refId": "refs/tags/test1",
"fromHash": "0000000000000000000000000000000000000000",
"toHash": "76e67f1b12f5232c76eb531099782f5058d2986e",
"type": "ADD"
}
]
}
Logs from Jenkins:
Mar 07, 2019 11:35:11 AM io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
WARNING: The Jenkins job cannot be triggered. You might no have configured correctly the WebHook on BitBucket with the last slash `http://<JENKINS-URL>/bitbucket-hook/`
Mar 07, 2019 11:35:46 AM io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
INFO: Received x-event-key payload from bb server
Mar 07, 2019 11:35:46 AM io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
WARNING: null
Mar 07, 2019 11:38:15 AM io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
INFO: Received x-event-key payload from bb server
Mar 07, 2019 11:38:15 AM io.jenkins.plugins.bitbucketpushandpullrequest.BitBucketPPRHookReceiver doIndex
WARNING: null
Jenkins URL in Bitbucket DOES have the trailing /
Thanks for your efforts 👍 will be a really useful plugin!
edit: I think I remember seeing your code that the plugin looks for a specific user agent for Bitbucket server (or was it Cloud I can't remember). I know our version of the plugin is before the commit that adds a user-agent to the webhook.
from bitbucket-push-and-pull-request-plugin.
Hi @rlees85 , thank you :)
I changed in the last release the decision block based on the user agent. Now I'm checking directly the kind of event triggered.
As you also said, the problem you are now encountering is due to the version of your bitbucket server: the link clone properties about the repository are only present in the payload sent starting from the version 5.14
:(
from bitbucket-push-and-pull-request-plugin.
Related Issues (20)
- Multibranch pipeline does not start with PR Creation - webhook works correctly HOT 1
- NullPointerException occurs when webhook triggered HOT 4
- "Single triggered job" option. How does it work? HOT 7
- Pipeline executed from wrong branch when using Lightweight checkout HOT 3
- "Single triggered job" and local option "Single trigged repository" HOT 3
- NullPointerException: BitBucketPPRAction.getType() is null HOT 3
- can't get trigger on push to two branches
- [Request] Documentation on Bitbucket Cloud integration for build status propagation back to BB-cloud HOT 2
- Cannot get multibranch pipelines to trigger on push HOT 13
- bitbucket-push-and-pull-request-plugin stopped working with Bitbucket cloud HOT 8
- bitBucketPPRPluginConfig configuration as code
- Can not checkout merge commit in Jenkins Pipeline HOT 2
- Error making a pull request and the webhook it is trigger
- Upgrading from 2.8.3 to 3.0.2
- Cloud push trigger missing credentials when checking for changes
- ERROR: Could not find credentials entry with ID 'SOME_PIPELINE_PARAM_ID'
- Empty env BITBUCKET_PULL_REQUEST_LINK
- Build Status not propagating to Bitbucket On Prem HOT 3
- what is the issue am getting "trigger not set" HOT 1
- Some log messages don't print their parameters anymore HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bitbucket-push-and-pull-request-plugin.