Closed Z9n2JktHlZDmlhSvqc9X2MmL3BwQG7tk closed 10 months ago
During Pull request merge bitbucket.org sends first hook about real changes push and one more about "This commit is not reachable from any branch or tag in this repository. It may be from a fork outside of this repository". Second request payload:
{
"push": {
"changes": [
{
"old": {
"name": "__MERGED_BRANCH_NAME__",
"target": {
"type": "commit",
"hash": "__NONEXISTING_COMMIT_ID__",
"date": ".....",
"author": {.....},
"message": ".....",
"summary": {.....},
"links": {.....},
"parents": [.....],
"rendered": {},
"properties": {}
},
"links": {.....},
"type": "branch",
"merge_strategies": [
"merge_commit",
"squash",
"fast_forward"
],
"default_merge_strategy": "squash"
},
"new": null, <----------- !!!!!!!!!!
"truncated": false,
"created": false,
"forced": false,
"closed": true
}
]
},
"repository": {
"type": "repository",
"full_name": "__REPOSITORY__",
"links": {.....},
"name": ".....",
"scm": "git",
"website": null,
"owner": {.....},
"workspace": {.....},
"is_private": true,
"project": {.....},
"uuid": "{.....}",
"parent": null
},
"actor": {.....}
}
Here we see "new": null
.
Added a patch to code, it seems to work. PR merge followed by patching worked good: no any errors, job was automatically triggered.
Patch:
--- src/main/java/io/jenkins/plugins/bitbucketpushandpullrequest/filter/repository/BitBucketPPRRepositoryPushActionFilter.java
+++ src/main/java/io/jenkins/plugins/bitbucketpushandpullrequest/filter/repository/BitBucketPPRRepositoryPushActionFilter.java
@@ -69,11 +69,12 @@
logger.info(
() -> "Should trigger build for the bitbucket action: " + bitbucketAction.toString() + "?");
- if (!bitbucketAction.getType().equalsIgnoreCase("BRANCH")
+ if ( bitbucketAction == null || bitbucketAction.getType() == null || (
+ !bitbucketAction.getType().equalsIgnoreCase("BRANCH")
&& !bitbucketAction.getType().equalsIgnoreCase("named_branch")
&& !bitbucketAction.getType().equalsIgnoreCase("UPDATE")
&& !bitbucketAction.getType().equalsIgnoreCase("TAG")
- && !this.triggerAlsoIfTagPush) {
+ && !this.triggerAlsoIfTagPush) ) {
logger.info(
"Neither bitbucketAction type is BRANCH, nor UPDATE, nor trigger on tag push is set: "
+ bitbucketAction.getType());
Will be fixed in the next bugfix release 3.0.1
Problem: job does not run automatically on a push event in the repository.
I use BitBucket cloud (bitbucket.org) and BitBucketPPR plugin 3.0.0, Jenkins-2.414.3. Repository is configured to send webhooks on push events only. For some reason on manual Pull request merge on bitbucket.org I get 2 webhooks, one of which is "branch: null". This leads to
java.lang.NullPointerException
. As I understand exception also affects first non-null webhook, it does not run the job too.