Class BranchCreationFacadeImpl

    • Method Detail

      • createOrEnableChainsBranches

        public void createOrEnableChainsBranches​(@NotNull
                                                 @NotNull List<ImmutableChain> chains,
                                                 @NotNull
                                                 @NotNull PlanBranchWorkflow planBranchWorkflow,
                                                 @NotNull
                                                 @NotNull Function<VcsBranchConfigurator,​VcsBranch> vcsBranchProvider,
                                                 @NotNull
                                                 @NotNull Function<ImmutableChain,​BuildConfiguration> buildConfigurationProvider,
                                                 @NotNull
                                                 @NotNull Consumer<PlanKey> planBranchConsumer,
                                                 Optional<VcsPullRequest> pullRequest)
        Description copied from interface: BranchCreationFacade
        Given a list of plans and a vcs branch creates plan branches for those chains, queuing RSS execution if required. The overloaded method is aimed to deal with pull requests. If branch name conflicts with an existing plan branch, the name will be automatically generated.
        Specified by:
        createOrEnableChainsBranches in interface BranchCreationFacade
        Parameters:
        chains - list of plans for which plan branches should be created
        planBranchWorkflow - workflow which led to creation of these branches
        vcsBranchProvider - provides VcsBranch to use when overriding repository definition
        buildConfigurationProvider - provides a default fragment of configuration to create the chain branch with
        planBranchConsumer - code should be executed before triggering events that new plan created
        pullRequest - optional pull requests object which contains potential source repository information
      • createOrEnableChainsBranches

        public void createOrEnableChainsBranches​(@NotNull
                                                 @NotNull List<ImmutableChain> chains,
                                                 @NotNull
                                                 @NotNull PlanBranchWorkflow planBranchWorkflow,
                                                 @NotNull
                                                 @NotNull Function<VcsBranchConfigurator,​VcsBranch> vcsBranchProvider,
                                                 @NotNull
                                                 @NotNull Function<ImmutableChain,​BuildConfiguration> buildConfigurationProvider,
                                                 @NotNull
                                                 @NotNull Consumer<PlanKey> planBranchConsumer)
        Description copied from interface: BranchCreationFacade
        Given a list of plans and a vcs branch creates plan branches for those chains, queuing RSS execution if required. If branch name conflicts with an existing plan branch, the name will be automatically generated.
        Specified by:
        createOrEnableChainsBranches in interface BranchCreationFacade
        Parameters:
        chains - list of plans for which plan branches should be created
        planBranchWorkflow - workflow which led to creation of these branches
        vcsBranchProvider - provides VcsBranch to use when overriding repository definition
        buildConfigurationProvider - provides a default fragment of configuration to create the chain branch with
        planBranchConsumer - code should be executed before triggering events that new plan created
      • createManualBranches

        @NotNull
        public @NotNull List<ChainBranchCreationResult> createManualBranches​(@NotNull
                                                                             @NotNull ImmutableChain chain,
                                                                             @NotNull
                                                                             @NotNull Collection<VcsBranch> branches,
                                                                             @Nullable
                                                                             @Nullable ErrorCollection errorCollection,
                                                                             @NotNull
                                                                             PlanCreationService.EnablePlan enablePlan)
        Description copied from interface: BranchCreationFacade
        Given a list of branches names, create plan branches for them under give chain. Enqueues RSS execution if required. Branches created using this method are excluded from expiration by default. Branches are considered to be "manual branches"
        Specified by:
        createManualBranches in interface BranchCreationFacade
        Parameters:
        chain - chain for which plan branches should be created
        branches - branches to create
        errorCollection - to add errors to, if you don't supply an error collection, they will just get logged
        enablePlan - defines whether newly created branches should be enabled or disabled after creation
        Returns:
        collection of branch keys (for created lightweight branches) and RSS executions futures (for enqueued divergent branches)
      • createChainBranch

        @NotNull
        public @NotNull ChainBranchCreationResult createChainBranch​(@NotNull
                                                                    @NotNull ImmutableChain chain,
                                                                    @NotNull
                                                                    @NotNull PlanBranchWorkflow planBranchWorkflow,
                                                                    @NotNull
                                                                    @NotNull String branchName,
                                                                    @Nullable
                                                                    @Nullable String branchDescription,
                                                                    @Nullable
                                                                    @Nullable VcsBranch vcsBranch,
                                                                    @NotNull
                                                                    PlanCreationService.EnablePlan enablePlan,
                                                                    boolean enableExpiry)
                                                             throws PlanCreationDeniedException,
                                                                    WebValidationException
        Description copied from interface: BranchCreationFacade
        Given a branch name and (optionally) vcs branch name, creates a plan branch, overriding repository definition. Returns either plan branch key if lightweight branch was created or future reference if divergent branch creation has been queued.
        Specified by:
        createChainBranch in interface BranchCreationFacade
        Parameters:
        chain - chain for which plan branches should be created
        planBranchWorkflow - workflow which led to creation of this chain branch
        branchName - name of plan branch to create
        branchDescription - optional description of the new branch
        vcsBranch - VCS branch to use when overriding repository definition
        enablePlan - defines whether newly created branches should be enabled or disabled after creation
        enableExpiry - defines whether created branch can be removed due to branch expiration detection
        Returns:
        Throws:
        PlanCreationDeniedException - if chain branch creation was denied for any reason
        WebValidationException - if there were validation errors
      • createChainBranch

        @Nullable
        public @Nullable ChainBranchCreationResult createChainBranch​(@NotNull
                                                                     @NotNull ImmutableChain chain,
                                                                     @NotNull
                                                                     @NotNull PlanBranchWorkflow planBranchWorkflow,
                                                                     @NotNull
                                                                     @NotNull String branchName,
                                                                     @Nullable
                                                                     @Nullable String branchDescription,
                                                                     @Nullable
                                                                     @Nullable VcsBranch vcsBranch,
                                                                     @NotNull
                                                                     PlanCreationService.EnablePlan enablePlan,
                                                                     boolean enableExpiry,
                                                                     @NotNull
                                                                     @NotNull com.atlassian.struts.ValidationAware validationAware)
                                                              throws PlanCreationDeniedException
        Description copied from interface: BranchCreationFacade
        Given a branch name and (optionally) vcs branch name, creates a plan branch, overriding repository definition. Returns either plan branch key if lightweight branch was created or future reference if divergent branch creation has been queued.
        Specified by:
        createChainBranch in interface BranchCreationFacade
        Parameters:
        chain - chain to create branches under
        planBranchWorkflow - which workflow led to creation of this chain branch
        branchName - name of plan branch to create
        branchDescription - optional description of the new branch
        vcsBranch - VCS branch to use when overriding repository definition
        enablePlan - defines whether newly created branches should be enabled or disabled after creation
        enableExpiry - defines whether created branch can be removed due to branch expiration detection
        validationAware - to add errors to
        Returns:
        Null if there were validation errors. Otherwise either key of newly created lightweight plan branch or RSS execution future for enqueued divergent branch
        Throws:
        PlanCreationDeniedException - if chain branch creation was denied for any reason
      • scheduleBranchListInitialisation

        public boolean scheduleBranchListInitialisation​(@NotNull
                                                        @NotNull Chain chain)
        Description copied from interface: BranchCreationFacade
        Schedules initialisation of existing vcs branch list. The next branch detection for the chain will only seek for existing branches but will not create any ChainBranches.
        Specified by:
        scheduleBranchListInitialisation in interface BranchCreationFacade
        Parameters:
        chain - chain which vcs branches list should be initialized
        Returns:
        false if another detection for this chain is already in progress or in queue
      • getOpenBranches

        @Nullable
        public @Nullable List<VcsBranch> getOpenBranches​(@NotNull
                                                         @NotNull ImmutableChain chain,
                                                         @Nullable
                                                         @Nullable ErrorCollection errorCollection)
        Description copied from interface: BranchCreationFacade
        Returns a list of currently open branches for the chain's default repository List ordering determined by underlying repository (preference is for native ordering e.g. last updated first for hg)
        Specified by:
        getOpenBranches in interface BranchCreationFacade
        Parameters:
        chain - to find branches for
        errorCollection - to add errors to
        Returns:
        a list of currently open branches for the chain's default repository or null if there were errors fetching branches list
      • getOpenBranches

        @Nullable
        public @Nullable List<VcsBranch> getOpenBranches​(@NotNull
                                                         @NotNull ImmutableChain chain,
                                                         @Nullable
                                                         @Nullable ErrorCollection errorCollection,
                                                         @NotNull
                                                         @NotNull Optional<String> searchTerm)
        Description copied from interface: BranchCreationFacade
        Returns a list of currently open branches for the chain's default repository List filtered by optional case-insensitive searchTerm. Ordering determined by underlying repository (preference is for native ordering e.g. last updated first for hg)
        Specified by:
        getOpenBranches in interface BranchCreationFacade
        Parameters:
        chain - to find branches for
        errorCollection - to add errors to
        searchTerm - optional search term that has to appear inside branch name
        Returns:
        a list of currently open branches for the chain's default repository or null if there were errors fetching branches list