jenkinsci / jenkinsci/git-plugin

[JENKINS-39221] Pipeline Job seems to ignore Branch Specifiers in config.xml when being triggered by BitBucket Plugin

Open
#2,977 0 comments 0 reactions 0 assignees View on GitHub
component:git-plugin component:pipeline imported-jira-issue pipeline priority:major resolution:unresolved
Dominant language
Java
Stars
694
Forks
1.1k
Avg merge
1h 29m
Merged PRs (30d)
3

Description

We use web hooks from Bitbucket to trigger our Pipeline jobs. Our job configuration is set up through Job DSL, where multiple branches are specified per job (https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob-scm-git-branches).

However, only incoming hooks for commits to master triggers a build. Through poking around and debugging the BitBucket Plugin, Workflow Job and GitSCM plugins, it seems that none of the BranchSpecs are deserialized from the GitSCM plugin:

In hudson.plugins.git.GitSCM the following field is empty

private List branches;

I can see these branches are included in the pipeline job's config.xml:

"1.0" encoding="UTF-8"?>




false



NAME=some-app GIT_CREDENTIALS_ID=bitbucket-jenkins GIT_URL=git@​bitbucket.org:some/repo BUILD_MSI=true BUILD_RELEASE_ASSEMBLY=true TEST_JOBS=some-integration-test
false

true
true
true
false









-1
10
-1
-1

some-docker-node
false
"hudson.plugins.git.GitSCM">


git@​bitbucket.org:some/repo.git
bitbucket-jenkins




master


trigger-test


2
false
Default
jenkins
no-reply@​example.com
"hudson.plugins.git.browser.BitbucketWeb">
https://bitbucket.org/some/repo




token
room
false
false
true
true
true
true
true






bitbucket-jenkins


"org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition">
</span>pipeline script goes here<span class="code-tag">
false



Hooks from master are the only ones triggering a build, as it seems to be the default branch when a BranchSpec is missing.

I've done the exact same debugging with a regular Maven Job and then everything works as expected. 'List branches' is populated with the same branches as specified in the config.xml

A workaround I've thought to use is another type of job just for triggering the Pipeline Job with the correct branch as a parameter...

---
Originally reported by aro, imported from: Pipeline Job seems to ignore Branch Specifiers in config.xml when being triggered by BitBucket Plugin


  • status: Open
  • priority: Major
  • component(s): git-plugin, pipeline
  • label(s): pipeline, triaged-2018-11, trigger
  • resolution: Unresolved
  • votes: 0
  • watchers: 2
  • imported: 2025-12-02

Raw content of original issue

We use web hooks from Bitbucket to trigger our Pipeline jobs. Our job configuration is set up through Job DSL, where multiple branches are specified per job (https://jenkinsci.github.io/job-dsl-plugin/#path/pipelineJob-scm-git-branches).

However, only incoming hooks for commits to master triggers a build. Through poking around and debugging the BitBucket Plugin, Workflow Job and GitSCM plugins, it seems that none of the BranchSpecs are deserialized from the GitSCM plugin:

In hudson.plugins.git.GitSCM the following field is empty



private List<BranchSpec> branches;


I can see these branches are included in the pipeline job's config.xml:



<?xml version="1.0" encoding="UTF-8"?>

<flow-definition>
<actions />
<description />
<keepDependencies>false</keepDependencies>
<properties>
<EnvInjectJobProperty>
<info>
<propertiesContent>NAME=some-app GIT_CREDENTIALS_ID=bitbucket-jenkins GIT_URL=git@bitbucket.org:some/repo BUILD_MSI=true BUILD_RELEASE_ASSEMBLY=true TEST_JOBS=some-integration-test</propertiesContent>
<loadFilesFromMaster>false</loadFilesFromMaster>
</info>
<on>true</on>
<keepJenkinsSystemVariables>true</keepJenkinsSystemVariables>
<keepBuildVariables>true</keepBuildVariables>
<overrideBuildParameters>false</overrideBuildParameters>
<contributors />
</EnvInjectJobProperty>
</properties>
<triggers>
<com.cloudbees.jenkins.plugins.BitBucketTrigger>
<spec />
</com.cloudbees.jenkins.plugins.BitBucketTrigger>
</triggers>
<logRotator>
<daysToKeep>-1</daysToKeep>
<numToKeep>10</numToKeep>
<artifactDaysToKeep>-1</artifactDaysToKeep>
<artifactNumToKeep>-1</artifactNumToKeep>
</logRotator>
<assignedNode>some-docker-node</assignedNode>
<canRoam>false</canRoam>
<scm class="hudson.plugins.git.GitSCM">
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>git@bitbucket.org:some/repo.git</url>
<credentialsId>bitbucket-jenkins</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>master</name>
</hudson.plugins.git.BranchSpec>
<hudson.plugins.git.BranchSpec>
<name>trigger-test</name>
</hudson.plugins.git.BranchSpec>
</branches>
<configVersion>2</configVersion>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<gitTool>Default</gitTool>
<gitConfigName>jenkins</gitConfigName>
<gitConfigEmail>no-reply@example.com</gitConfigEmail>
<browser class="hudson.plugins.git.browser.BitbucketWeb">
<url>https://bitbucket.org/some/repo</url>
</browser>
</scm>
<publishers>
<jenkins.plugins.hipchat.HipChatNotifier>
<token>token</token>
<room>room</room>
<startNotification>false</startNotification>
<notifySuccess>false</notifySuccess>
<notifyAborted>true</notifyAborted>
<notifyNotBuilt>true</notifyNotBuilt>
<notifyUnstable>true</notifyUnstable>
<notifyFailure>true</notifyFailure>
<notifyBackToNormal>true</notifyBackToNormal>
<startJobMessage />
<completeJobMessage />
</jenkins.plugins.hipchat.HipChatNotifier>
</publishers>
<buildWrappers>
<com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
<user>bitbucket-jenkins</user>
</com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper>
</buildWrappers>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition">
<script>pipeline script goes here</script>
<sandbox>false</sandbox>
</definition>
</flow-definition>


Hooks from master are the only ones triggering a build, as it seems to be the default branch when a BranchSpec is missing.

I've done the exact same debugging with a regular Maven Job and then everything works as expected. 'List<BranchSpec> branches' is populated with the same branches as specified in the config.xml

A workaround I've thought to use is another type of job just for triggering the Pipeline Job with the correct branch as a parameter...

environment

```
Jenkins 2.7 / Jenkins 2.72 (tried both)

Git plugin 3.0.0

Pipeline 2.4

Bitbucket Plugin 1.1.5
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.