
In the repository where the future groovy files will be stored, create a directory called "utilities" and create the file "BitbucketMultibranch.groovy" in it with the following contents:
package utilities
import javaposse.jobdsl.dsl.DslFactory
class BitbucketMultibranch {
    String name
    String description
    String displayName
    String serverUrl
    String repoOwner
    String repository
    String credentialsId
    String includeBranches
    String excludeBranches
	void build(DslFactory dslFactory) {
	    def job = dslFactory.multibranchPipelineJob(name) {
	        description(description)
	        displayName(displayName)
	        branchSources {
	            branchSource {
	                source {
	                    bitbucket {
	                        serverUrl(serverUrl)
	                        repoOwner(repoOwner)
	                        repository(repository)
	                        credentialsId(credentialsId)
	                        traits {
	                            headWildcardFilter {
	                                excludes(excludeBranches)
	                                includes(includeBranches)
	                            }
	                        }
	                    }
	                }
	            }
	        }
	        configure {
	          	def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
	          	traits << 'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait' {
	            	strategyId(3) // detect all branches
	          	}
	        }
        	factory {
	            workflowBranchProjectFactory {
	                scriptPath('.jenkins/Jenkinsfile')
	            }
	        }
	        orphanedItemStrategy {
	            discardOldItems {
	                numToKeep(15)
	            }
	        }
	    }
	}
}
Now, to create an Item, it is enough to create a file with the groovy extension in the root of the repository, so that it can be processed by Seed Job.
artem-dsl.groovy
import utilities.BitbucketMultibranch
def multiPipeline = new BitbucketMultibranch(
    description: 'Just try make world better',
    name: 'Artem-DSL',
    displayName: 'Artem-DSL',
    serverUrl: 'https://git.artem.services',
    repoOwner: "dev",
    repository: "artem-dls",
    credentialsId: 'svc-bitbucket',
    includeBranches: 'development staging master',
    excludeBranches: ''
).build(this)
Build for GitHub.
GitHubMultibranch.groovy:
package utilities
import javaposse.jobdsl.dsl.DslFactory
class GithubMultibranch {
    String name
    String description
    String displayName
    String repositoryOwner
    String repositoryName
    String credentials
    String includeBranches
    String excludeBranches
	void build(DslFactory dslFactory) {
	    def job = dslFactory.multibranchPipelineJob(name) {
	        description(description)
	        displayName(displayName)
		    branchSources {
		        github {
		            scanCredentialsId(credentials)
		            repoOwner(repositoryOwner)
		            repository(repositoryName)
		            includes(includeBranches)
		            excludes(excludeBranches)
		        }
		    }
		    factory {
		        workflowBranchProjectFactory {
		            scriptPath('.jenkins/Jenkinsfile')
		        }
		    }
		    orphanedItemStrategy {
		        discardOldItems {
		            numToKeep(15)
		        }
		    }
		}
	}
}
artem-github.groovy:
import utilities.GithubMultibranch
def multiPipeline = new GithubMultibranch(
    description: 'Just try make world better',
    name: 'Github-Test',
    displayName: 'Github-Test',
    repositoryOwner: "artem",
    repositoryName: "dsl-test",
    credentials: 'artem-github',
    includeBranches: 'development staging master',
    excludeBranches: ''
).build(this)
Hi,
But anyhow, I have to create a seed job.
I want a groovy script/python which should create a Multi branch pipeline job automatically without creating even a seed job.
What do you think , is it possible?
Hi!
I used "seed job" as a "heartbeat" my repository with my *.groovy files, and I created it only once, after I just added configs to my repo and "seed job" automatically create jobs.
Maybe I didn’t total understood your question