Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-61431

Atomatically Scan Bitbucket Server Project for Repositories

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      Hi,

      this plugin creates reliable Webhooks in the repositories hosted in a Bitbucket Server Instance, but one has to manually create at least a multibranch project for this to work. However, it would be nice, if there were an option for an automatic scan for each Repo in a Project, like in the old Plugin from CloudBee (which does not create a Webhook reliable (only like once in ~40 retrys) and also searches a new Maintainer, so I wouldn't bet on this horse anymore).

        Attachments

          Issue Links

            Activity

            Hide
            nickbrown Nicholas Brown added a comment -

            I currently have something like when the using the bitbucket-branch-source plugin to create multi-branch for all repos in FOO Bitbucket project. Being able to replicate that with the atlassian-bitbucket-server-integration-plugin would be great.

            organizations {
             bitbucket {
               serverUrl("https://bitbucket.example.com:8443")
               repoOwner("FOO")
               credentialsId("bitbucket_password_credential")
               traits {
                 bitbucketBranchDiscovery{strategyId(0)}
                 bitbucketPullRequestDiscovery{ strategyId(1)}
               }
             }
            }
            
            buildStrategies {
             buildRegularBranches()
             buildChangeRequests{ ignoreTargetOnlyChanges(false) ignoreUntrustedChanges(false) } }
            
            projectFactories {
             workflowMultiBranchProjectFactory{ scriptPath 'Jenkinsfile' scriptPath 'debian/Jenkinsfile' }
            }
            
            triggers { periodicFolderTrigger{ interval('5m') } }
            orphanedItemStrategy { discardOldItems { } }
            
            }
            
            
            Show
            nickbrown Nicholas Brown added a comment - I currently have something like when the using the bitbucket-branch-source plugin to create multi-branch for all repos in FOO Bitbucket project. Being able to replicate that with the atlassian-bitbucket-server-integration-plugin would be great. organizations { bitbucket { serverUrl( "https: //bitbucket.example.com:8443" ) repoOwner( "FOO" ) credentialsId( "bitbucket_password_credential" ) traits { bitbucketBranchDiscovery{strategyId(0)} bitbucketPullRequestDiscovery{ strategyId(1)} } } } buildStrategies { buildRegularBranches() buildChangeRequests{ ignoreTargetOnlyChanges( false ) ignoreUntrustedChanges( false ) } } projectFactories { workflowMultiBranchProjectFactory{ scriptPath 'Jenkinsfile' scriptPath 'debian/Jenkinsfile' } } triggers { periodicFolderTrigger{ interval( '5m' ) } } orphanedItemStrategy { discardOldItems { } } }
            Hide
            mhenschke_atlassian Martin Henschke added a comment - - edited

            Hi Matthias, and everyone who has commented on this issue- thank you for your input and suggestions! We are investigating an implementation of this at the moment.
            For now, we are still exploring what a technical design would look like, but we have a number of questions about the kind of configuration options you will need on such a project. Specifically:

            • Do you store your Jenkinsfile in a consistent location for every repository in a project? Would you expect the plugin to be able to "find" your Jenkinsfile anywhere in the project, or would the restriction of a consistent path be appropriate?
            • When scanning a project, would you want every repository with a Jenkinsfile to be matched, or just a subset? If so, what kind of criteria would you want to include/exclude repositories?
            • What config do you want to be automatically set on each project? How much would need to be individualized for each project?
            • Do you rely on many other plugins, apart from the Bitbucket Jenkins Integration plugin in your multibranch projects? If so, do you need/expect this configuration to be carried over to child projects? Which plugins do you use?
            • And more generally, would you be using this as a migration tool (so you can quickly generate a lot of Jenkinsfiles), for automatically handling job creation on an ongoing basis, or both?

            If you have time to answer these questions, it would be a great help. You can leave comments on this ticket, or by email. Thank you again!

            Show
            mhenschke_atlassian Martin Henschke added a comment - - edited Hi Matthias, and everyone who has commented on this issue- thank you for your input and suggestions! We are investigating an implementation of this at the moment. For now, we are still exploring what a technical design would look like, but we have a number of questions about the kind of configuration options you will need on such a project. Specifically: Do you store your Jenkinsfile in a consistent location for every repository in a project? Would you expect the plugin to be able to "find" your Jenkinsfile anywhere in the project, or would the restriction of a consistent path be appropriate? When scanning a project, would you want every repository with a Jenkinsfile to be matched, or just a subset? If so, what kind of criteria would you want to include/exclude repositories? What config do you want to be automatically set on each project? How much would need to be individualized for each project? Do you rely on many other plugins, apart from the Bitbucket Jenkins Integration plugin in your multibranch projects? If so, do you need/expect this configuration to be carried over to child projects? Which plugins do you use? And more generally, would you be using this as a migration tool (so you can quickly generate a lot of Jenkinsfiles), for automatically handling job creation on an ongoing basis, or both? If you have time to answer these questions, it would be a great help. You can leave comments on this ticket, or by email. Thank you again!
            Hide
            gerpu Paul Schubert added a comment -

            Hi Martin Henschke ,

            many thanks for asking us before starting development on this topic. Awesome!
            I'll try to provide you short answers. Please don't hesitate do ask further questions.

            1. Do you store your Jenkinsfile in a consistent location for every repository in a project? Would you expect the plugin to be able to "find" your Jenkinsfile anywhere in the project, or would the restriction of a consistent path be appropriate?

            We have the Jenkinsfile in the root of each repository. So we don't expect the Jenkins plugin to find it anywhere. 

            1. When scanning a project, would you want every repository with a Jenkinsfile to be matched, or just a subset? If so, what kind of criteria would you want to include/exclude repositories?

            We do would like to have the posiibility to exclude a repository. So within a project we expext per default every repository containing a Jenkinsfile on root level to be matched, but we would like to be able to exclude specific ones (ideally "configured" inside of the Jenkinsfile or repository).

            1. What config do you want to be automatically set on each project? How much would need to be individualized for each project?

            In this issue we expected to create a Jenkins project with your plugin for each Bitbucket project. So, if you consider providing a "scan" not (only) on Bitbucket project level but on Bitbucket in general, than we only need to select/include/exclude specific Bitbucket projects, nothing more.

            1. Do you rely on many other plugins, apart from the Bitbucket Jenkins Integration plugin in your multibranch projects? If so, do you need/expect this configuration to be carried over to child projects? Which plugins do you use?

            Well we don't really understand this question, but we do not (expect to) use other plugins beside the "standard" plugins. (Of course we need to be able to configure stuff currently configureable like "Bitbucket Server instance", "Clone from" or the "Behaviours" on the top level.

            1. And more generally, would you be using this as a migration tool (so you can quickly generate a lot of Jenkinsfiles), for automatically handling job creation on an ongoing basis, or both?

            We would be using it "for automatically handling job creation on an ongoing basis".

            Many thanks in advance for considering and hopefully takling this issue/feature. If you need any further information, let us know.

            Cheers, Paul

            Show
            gerpu Paul Schubert added a comment - Hi Martin Henschke , many thanks for asking us before starting development on this topic. Awesome! I'll try to provide you short answers. Please don't hesitate do ask further questions. Do you store your Jenkinsfile in a consistent location for every repository in a project? Would you expect the plugin to be able to "find" your Jenkinsfile anywhere in the project, or would the restriction of a consistent path be appropriate? We have the Jenkinsfile in the root of each repository. So we don't expect the Jenkins plugin to find it anywhere.  When scanning a project, would you want every repository with a Jenkinsfile to be matched, or just a subset? If so, what kind of criteria would you want to include/exclude repositories? We do would like to have the posiibility to exclude a repository. So within a project we expext per default every repository containing a Jenkinsfile on root level to be matched, but we would like to be able to exclude specific ones (ideally "configured" inside of the Jenkinsfile or repository). What config do you want to be automatically set on each project? How much would need to be individualized for each project? In this issue we expected to create a Jenkins project with your plugin for each Bitbucket project. So, if you consider providing a "scan" not (only) on Bitbucket project level but on Bitbucket in general, than we only need to select/include/exclude specific Bitbucket projects, nothing more. Do you rely on many other plugins, apart from the Bitbucket Jenkins Integration plugin in your multibranch projects? If so, do you need/expect this configuration to be carried over to child projects? Which plugins do you use? Well we don't really understand this question, but we do not (expect to) use other plugins beside the "standard" plugins. (Of course we need to be able to configure stuff currently configureable like "Bitbucket Server instance", "Clone from" or the "Behaviours" on the top level. And more generally, would you be using this as a migration tool (so you can quickly generate a lot of Jenkinsfiles), for automatically handling job creation on an ongoing basis, or both? We would be using it "for automatically handling job creation on an ongoing basis". Many thanks in advance for considering and hopefully takling this issue/feature. If you need any further information, let us know. Cheers, Paul
            Hide
            pb_devops_aws Pat Bee added a comment -

            Martin Henschke
            Answering each of your questions for the environment I'm currently working in.

            • We have the jenkinsfile in the root of the repo.  (I will note that the other plug in allows you to specify the name and path to the jenkinsfile that you want.)
            • If we don't want a repo to match we tend to rename the jenkinsfile or put it in a subdirectory.  (Ex. "jenkinsfile.xx" )
            • In our application the most common alternate configuration is how often to run the build if not triggered.  Some repos are built daily even if there are no commits.
            • We use ALOT of plugins, but in the context of your question I'm not really sure what is in play at that level.
            • We have 272 projects and 4070 repositories, this is really to allow use to not have to manually set up thousands of repos. Or to avoid having to write some sort of code to automate the set up of all of the repositories.
            Show
            pb_devops_aws Pat Bee added a comment - Martin Henschke Answering each of your questions for the environment I'm currently working in. We have the jenkinsfile in the root of the repo.  (I will note that the other plug in allows you to specify the name and path to the jenkinsfile that you want.) If we don't want a repo to match we tend to rename the jenkinsfile or put it in a subdirectory.  (Ex. "jenkinsfile.xx" ) In our application the most common alternate configuration is how often to run the build if not triggered.  Some repos are built daily even if there are no commits. We use ALOT of plugins, but in the context of your question I'm not really sure what is in play at that level. We have 272 projects and 4070 repositories, this is really to allow use to not have to manually set up thousands of repos. Or to avoid having to write some sort of code to automate the set up of all of the repositories.
            Hide
            huber Kevin Huber added a comment -

            Hey Martin Henschke,
            why don't you just adopt https://plugins.jenkins.io/cloudbees-bitbucket-branch-source/ ?
            The plugin looks for a new maintainer and is widely used.
            All the problems you are trying to solve, are already solved by this plugin.

            Show
            huber Kevin Huber added a comment - Hey Martin Henschke , why don't you just adopt https://plugins.jenkins.io/cloudbees-bitbucket-branch-source/ ? The plugin looks for a new maintainer and is widely used. All the problems you are trying to solve, are already solved by this plugin.

              People

              Assignee:
              mhenschke_atlassian Martin Henschke
              Reporter:
              garionion Matthias Detsch
              Votes:
              18 Vote for this issue
              Watchers:
              26 Start watching this issue

                Dates

                Created:
                Updated: