Package com.atlassian.bamboo.plan.branch
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 Summary
Modifier and TypeMethodDescriptionvoid
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.getOpenBranches
(@NotNull VariableSubstitutor variableSubstitutor, @NotNull VcsRepositoryData vcsRepositoryData, @NotNull VcsBranchDetector branchDetector, @Nullable ErrorCollection errorCollection, @NotNull Iterable<ImmutableChain> chains) Returns a list of currently open branches for given repository.boolean
scheduleBranchDetectionForRepository
(long repositoryId) Schedules branch detection for given repositoryboolean
scheduleBranchListInitialisation
(@NotNull Chain chain) Schedules initialisation of existing vcs branch list.
-
Method Details
-
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 repositoryignoreChainsConfig
- 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
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 configurationvcsRepositoryData
- the repositorybranchDetector
- executor responsible for branch detectionerrorCollection
- errors collection to add errors tochains
- 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
-