[JIRA] (JENKINS-39977) Support for bitbucket-branch-source-plugin

111 views
Skip to first unread message

mail@tknerr.de (JIRA)

unread,
Nov 23, 2016, 10:21:03 AM11/23/16
to jenkinsc...@googlegroups.com
Torben Knerr created an issue
 
Jenkins / Improvement JENKINS-39977
Support for bitbucket-branch-source-plugin
Issue Type: Improvement Improvement
Assignee: Daniel Spilker
Components: job-dsl-plugin
Created: 2016/Nov/23 3:20 PM
Environment: Jenkins v2, bitbucket-branch-source-plugin v1.8
Priority: Minor Minor
Reporter: Torben Knerr

It would be nice to have a DSL for the bitbucket-branch-source-plugin

See here:
https://github.com/jenkinsci/bitbucket-branch-source-plugin

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v7.1.7#71011-sha1:2526d7c)
Atlassian logo

mkobit@gmail.com (JIRA)

unread,
Dec 1, 2016, 10:11:01 PM12/1/16
to jenkinsc...@googlegroups.com
Mike Kobit commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

I'm interested in taking this on.

Taking a look at the no changes XML it looks like they are not the job type but part of an OrganizationFolder:

<?xml version='1.0' encoding='UTF-8'?>
<jenkins.branch.OrganizationFolder plugin="branc...@1.11.1">
  <actions/>
  <description></description>
  <properties>
    <jenkins.branch.NoTriggerOrganizationFolderProperty>
      <branches>.*</branches>
    </jenkins.branch.NoTriggerOrganizationFolderProperty>
  </properties>
  <views>
    <hudson.model.AllView>
      <owner class="jenkins.branch.OrganizationFolder" reference="../../.."/>
      <name>All</name>
      <filterExecutors>false</filterExecutors>
      <filterQueue>false</filterQueue>
      <properties class="hudson.model.View$PropertyList"/>
    </hudson.model.AllView>
  </views>
  <viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
  <healthMetrics>
    <com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric plugin="cloudbee...@5.13"/>
  </healthMetrics>
  <icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon" plugin="cloudbee...@5.13"/>
  <orphanedItemStrategy class="com.cloudbees.hudson.plugins.folder.computed.DefaultOrphanedItemStrategy" plugin="cloudbee...@5.13">
    <pruneDeadBranches>true</pruneDeadBranches>
    <daysToKeep>0</daysToKeep>
    <numToKeep>0</numToKeep>
  </orphanedItemStrategy>
  <triggers>
    <com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger plugin="cloudbee...@5.13">
      <spec>H H * * *</spec>
      <interval>86400000</interval>
    </com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger>
  </triggers>
  <navigators>
    <com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator plugin="cloudbees-bitbucket-branch-source@1.8">
      <repoOwner>bitbuck</repoOwner>
      <checkoutCredentialsId>SAME</checkoutCredentialsId>
      <pattern>.*</pattern>
      <autoRegisterHooks>false</autoRegisterHooks>
      <sshPort>-1</sshPort>
    </com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator>
  </navigators>
  <projectFactories>
    <org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProjectFactory plugin="workflow-m...@2.9.2"/>
  </projectFactories>
</jenkins.branch.OrganizationFolder>

Any suggestions on what you think the best user experience would be here for a user defining a Bitbucket Branch Source folder?

mkobit@gmail.com (JIRA)

unread,
Dec 1, 2016, 11:12:02 PM12/1/16
to jenkinsc...@googlegroups.com

mkobit@gmail.com (JIRA)

unread,
Dec 2, 2016, 10:01:01 AM12/2/16
to jenkinsc...@googlegroups.com
 
Re: Support for bitbucket-branch-source-plugin

Ok, I just realized my confusion.

One of the job types is an OrganizationFolder, the other is a WorkflowMultiBranchProject.

I was looking to add in support for the OrganizationFolder type

mkobit@gmail.com (JIRA)

unread,
Dec 8, 2016, 5:19:01 PM12/8/16
to jenkinsc...@googlegroups.com
 
Re: Support for bitbucket-branch-source-plugin

Daniel Spilker - I've started trying to tackle this based on what I have seen in the UI and how some of the other code looks. I'm hoping to open a PR in the next couple days as I get some time to write it up.

Proposed DSL

How do you feel about this sort of DSL:

organizationFolderJob('orgFolder') {
  description('This contains branch source jobs for Bitbucket and GitHub')
  displayName('Organization Folder')
  branchAutoTriggerPattern('master|develop|feature/*')
  triggers {
    periodicIfNotOtherwiseTriggered(TWELVE_HOURS)
  }
  orphanedItemStrategy {
    discardOldItems {
      daysToKeep(1)
      numToKeep(10)
    }
  }
  organizations {
    bitbucket {
      repoOwner('KEY')
      scanCredentialsId('bitbucketScanCredentials')
      repositoryPattern('*')
      autoRegisterWebhooks()
      checkoutCredentialsId('bitbucketSshCheckoutCredentials')
      bitbucketServerUrl('https://bitbucket.corp.com')
      sshPort(7990)
    }
  }
}

Out-of-scope

  • Pipeline libraries configuration

mkobit@gmail.com (JIRA)

unread,
Dec 8, 2016, 5:20:01 PM12/8/16
to jenkinsc...@googlegroups.com
Mike Kobit edited a comment on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin
[~daspilker] - I've started trying to tackle this based on what I have seen in the UI and how some of the other code looks. I'm hoping to open a PR in the next couple days as I get some time to write it up.

h3. Proposed DSL


How do you feel about this sort of DSL:

{code:none}

organizationFolderJob('orgFolder') {
  description('This contains branch source jobs for Bitbucket and GitHub')
  displayName('Organization Folder')
  branchAutoTriggerPattern('master|develop|feature/*')
  triggers {
    periodicIfNotOtherwiseTriggered(TWELVE_HOURS)
  }
  orphanedItemStrategy {
    discardOldItems {
      daysToKeep(1)
      numToKeep(10)
    }
  }
  organizations {
    bitbucket {
      repoOwner('KEY')
      scanCredentialsId('bitbucketScanCredentials')
      repositoryPattern('*')
      autoRegisterWebhooks()
      checkoutCredentialsId('bitbucketSshCheckoutCredentials')
      bitbucketServerUrl('https://bitbucket.corp.com')
      sshPort(7990)
    }
  }
}
{code}

h3. Out-of-scope

* Pipeline libraries configuration

* (possibly) GitHub SCM Navigator configuration

mail@tknerr.de (JIRA)

unread,
Dec 8, 2016, 5:59:01 PM12/8/16
to jenkinsc...@googlegroups.com
Torben Knerr commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

Mike Kobit thanks taking this on!

I was also confused as I was simply using the "Bitbucket Branch Source" in a standard "WorkflowMultiBranchProject". It was only later that I realized there is also the "Teams" configuration via the "OrganizationFolder".

Here is how I configured it for a Multibranch Pipeline for now:

multibranchPipelineJob("somePipeline") {

	configure {
		it / sources / data / 'jenkins.branch.BranchSource' / source(class: 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMSource') {
			credentialsId('bitbucketUserPasswordAPICredentialsForCheckingBranches')
			checkoutCredentialsId('bitbucketCredentialsForCloningAndPulling')
			repoOwner("KEY")
			repository("my-repo")
			includes('master release/* feature/*')
			excludes()
			bitbucketServerUrl('https://my.bitbucket.com')
			sshPort('7999')
		}
	}

	// check every minute for scm changes as well as new / deleted branches
	triggers {
		periodic(1)
	}
}

Do you plan to add DSL support for this as well?

mkobit@gmail.com (JIRA)

unread,
Dec 10, 2016, 2:55:01 PM12/10/16
to jenkinsc...@googlegroups.com
Mike Kobit commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

Was not planning on it as part of this iteration

mail@daniel-spilker.com (JIRA)

unread,
Dec 22, 2016, 2:35:01 PM12/22/16
to jenkinsc...@googlegroups.com
Daniel Spilker resolved as Fixed
 

The Bitbucket Branch Source Plugin is supported through the Automatically Generated DSL:

multibranchPipelineJob(String name) {
    branchSources {
        branchSource {
            source {
                bitbucketSCMSource {
                    id(String value)
                    repoOwner(String value)
                    repository(String value)
                    autoRegisterHook(boolean value)
                    // Left blank to use Bitbucket Cloud.
                    bitbucketServerUrl(String value)
                    checkoutCredentialsId(String value)
                    credentialsId(String value)
                    excludes(String value)
                    includes(String value)
                    // Left blank to use Bitbucket Cloud.
                    sshPort(int value)
                }
            }
        }
    }
}
Change By: Daniel Spilker
Status: Open Resolved
Resolution: Fixed

mail@daniel-spilker.com (JIRA)

unread,
Dec 24, 2016, 9:57:02 AM12/24/16
to jenkinsc...@googlegroups.com
Daniel Spilker closed an issue as Fixed
Change By: Daniel Spilker
Status: Resolved Closed

scm_issue_link@java.net (JIRA)

unread,
Feb 7, 2017, 10:00:02 AM2/7/17
to jenkinsc...@googlegroups.com
SCM/JIRA link daemon commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

Code changed in jenkins
User: Daniel Spilker
Path:
docs/Home.md
job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/organizationFolder.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/ComputedFolder.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/DslFactory.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/JobParent.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/workflow/ScmNavigatorsContext.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/jobs/MultibranchWorkflowJob.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/jobs/OrganizationFolderJob.groovy
job-dsl-core/src/main/resources/javaposse/jobdsl/dsl/jobs/OrganizationFolderJob-template.xml
job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/JobParentSpec.groovy
job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/workflow/ScmNavigatorsContextSpec.groovy
job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/jobs/OrganizationFolderJobSpec.groovy
http://jenkins-ci.org/commit/job-dsl-plugin/9fdd8567f838e739b86a9ad0eeb8bcfb2b40e709
Log:
Merge branch 'JENKINS-39977'

Compare: https://github.com/jenkinsci/job-dsl-plugin/compare/3c059354f364...9fdd8567f838

scm_issue_link@java.net (JIRA)

unread,
Feb 7, 2017, 10:00:02 AM2/7/17
to jenkinsc...@googlegroups.com
 
Re: Support for bitbucket-branch-source-plugin

Code changed in jenkins
User: Mike Kobit
Path:


job-dsl-core/src/main/docs/examples/javaposse/jobdsl/dsl/DslFactory/organizationFolder.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/ComputedFolder.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/DslFactory.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/JobParent.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/helpers/workflow/ScmNavigatorsContext.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/jobs/MultibranchWorkflowJob.groovy
job-dsl-core/src/main/groovy/javaposse/jobdsl/dsl/jobs/OrganizationFolderJob.groovy
job-dsl-core/src/main/resources/javaposse/jobdsl/dsl/jobs/OrganizationFolderJob-template.xml
job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/JobParentSpec.groovy
job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/helpers/workflow/ScmNavigatorsContextSpec.groovy
job-dsl-core/src/test/groovy/javaposse/jobdsl/dsl/jobs/OrganizationFolderJobSpec.groovy

http://jenkins-ci.org/commit/job-dsl-plugin/201d9f3159ebc686f5831f095e198e131c8b57e9
Log:
JENKINS-39977: Add support for Organization Folder items and GitHub and Bitbucket SCM navigators

  • GitHub Branch source support
  • Bitbucket Branch source support

Left out of this iteration:

  • Folder icon
  • Pipeline libraries
  • Health metrics.
    There is only 1 available metric implementation now that is not very useful to the organization folder item type.
  • Git SCM navigator

fakemailred888@gmail.com (JIRA)

unread,
Jul 2, 2018, 1:39:02 PM7/2/18
to jenkinsc...@googlegroups.com
red der commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

Any documentation for this at all? Seems to be broken right now. "autoRegisterHook" is deprecated and traits don't see to work, also I can find no actual working examples of using traits- can I reopen this?

This message was sent by Atlassian JIRA (v7.10.1#710002-sha1:6efc396)

mail@daniel-spilker.com (JIRA)

unread,
Jul 3, 2018, 3:29:01 PM7/3/18
to jenkinsc...@googlegroups.com
Daniel Spilker commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

red der Use the embedded API viewer to lookup the DSL syntax, see Dynamic DSL for details. You need to use at least version 2.2.11 of the Bitbucket Branch Source plugin to use traits. The following script is working for me. If there are still problems, please open a new issue.

multibranchPipelineJob('example-mbp') {
  branchSources {
    branchSource {
      source {
        bitbucket {
          repoOwner('jenkinsci')
          repository('job-dsl-plugin')
          traits {
            originPullRequestDiscoveryTrait {
              strategyId(1)
            }
          }
        }
      }
    }
  }
}

bochenski.kuba+jenkins@gmail.com (JIRA)

unread,
Mar 31, 2020, 10:55:02 AM3/31/20
to jenkinsc...@googlegroups.com
Jakub Bochenski commented on Improvement JENKINS-39977
 
Re: Support for bitbucket-branch-source-plugin

So where can I find a list of traits?

This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

bochenski.kuba+jenkins@gmail.com (JIRA)

unread,
Mar 31, 2020, 10:57:02 AM3/31/20
to jenkinsc...@googlegroups.com
 
Re: Support for bitbucket-branch-source-plugin

For reference it's in the api viewer at plugin/job-dsl/api-viewer/index.html#path/javaposse.jobdsl.dsl.jobs.OrganizationFolderJob.organizations-bitbucket

Reply all
Reply to author
Forward
0 new messages