Interface BranchDetectionService

  • All Known Implementing Classes:
    BranchDetectionServiceImpl

    public interface BranchDetectionService
    A service for polling VCS repositories for open branches and creating new branches for plans. This service is responsible for throttling the detection requests.
    • Method Detail

      • scheduleBranchDetectionForRepository

        boolean scheduleBranchDetectionForRepository​(long repositoryId)
        Schedules branch detection for given repository
      • detectBranchesForRepository

        void detectBranchesForRepository​(long repositoryId,
                                         boolean ignoreChainsConfig)
        Immediately executes branch detection for a given repository and creates new plan branches for chains using this repository as default. This method blocks until the detection is finished.
        Parameters:
        repositoryId - id of the repository
        ignoreChainsConfig - allows to force branch creation and cleanup for all related chains. If true branch detection will be executed even if a chain is not configured to automatically manage branches.
      • scheduleBranchListInitialisation

        boolean scheduleBranchListInitialisation​(@NotNull
                                                 @NotNull Chain chain)
        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.
        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
        Throws:
        IllegalStateException - if plan doesn't have default repository
      • getOpenBranches

        @NotNull
        @NotNull Optional<List<VcsBranch>> getOpenBranches​(@NotNull
                                                           @NotNull VariableSubstitutor variableSubstitutor,
                                                           @NotNull
                                                           @NotNull VcsRepositoryData vcsRepositoryData,
                                                           @NotNull
                                                           @NotNull VcsBranchDetector branchDetector,
                                                           @Nullable
                                                           @Nullable ErrorCollection errorCollection,
                                                           @NotNull
                                                           @NotNull Iterable<ImmutableChain> chains)
        Returns a list of currently open branches for given repository. List ordering determined by underlying repository (preference is for native ordering e.g. last updated first for hg)
        Parameters:
        variableSubstitutor - variable substitutor to use for substituting repository configuration
        vcsRepositoryData - the repository
        branchDetector - executor responsible for branch detection
        errorCollection - errors collection to add errors to
        chains - list of chains against which errors will be recorded
        Returns:
        list of branches open in VCS or nothing if there's been an error fetching branches