Interface VcsRepositoryConfigurationService
- All Known Implementing Classes:
VcsRepositoryConfigurationServiceImpl
- Since:
- 5.14
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumDeprecated.static enum -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescription@NotNull ErrorCollectionconfigureRssDetection(long repositoryId, PartialVcsRepositoryData vcsRepositoryData, boolean isEnabled) Sets detection of Bamboo Specs for repository and saves new config.default @NotNull PartialVcsRepositoryDatacreateLinkedRepository(@NotNull PartialVcsRepositoryData newVcsConfiguration, @NotNull com.atlassian.user.User user, @NotNull VcsRepositoryConfigurationService.LinkedRepositoryAccess accessOption) Deprecated.Creates new linked repository@NotNull PartialVcsRepositoryDatacreateLinkedRepository(@NotNull PartialVcsRepositoryData newVcsConfiguration, @NotNull com.atlassian.user.User user, @NotNull VcsRepositoryConfigurationService.RepositoryAccess accessOption) Creates new linked repository@NotNull PartialVcsRepositoryDatacreatePlanRepository(@NotNull Plan plan, @NotNull PartialVcsRepositoryData newVcsConfiguration) Creates "plan local" repository and adds it to a plan.@NotNull PartialVcsRepositoryDatacreateProjectRepository(@NotNull PartialVcsRepositoryData newVcsConfiguration, @Nullable com.atlassian.user.User user, @NotNull VcsRepositoryConfigurationService.RepositoryAccess accessOption) Creates new project repositoryvoiddeleteLinkedRepository(long repositoryId) Removes linked repository.voiddeleteProjectRepository(long repositoryId) Removes project repository.voiddeleteRepository(@NotNull Plan plan, long repositoryId, @Nullable Long replacementRepositoryId) Removes repository definition from a plan@NotNull PartialVcsRepositoryDataeditLinkedRepository(long repositoryId, @NotNull PartialVcsRepositoryData newVcsConfiguration) Edits existing linked repository@NotNull PartialVcsRepositoryDataeditProjectRepository(long repositoryId, @NotNull PartialVcsRepositoryData newVcsConfiguration) Edits existing project repository@NotNull PartialVcsRepositoryDataeditRepository(@NotNull Plan plan, long repositoryId, @NotNull PartialVcsRepositoryData newVcsConfiguration) Edits existing "plan local" repository.getRelevantJobsForRepositoryIdChange(@NotNull ImmutablePlan plan, long repositoryId) Deprecated.since 5.14@org.jetbrains.annotations.NotNull booleanhasProjectSharedCredentialsForRepository(PartialVcsRepositoryData vcsRepositoryData) @NotNull PartialVcsRepositoryDatalinkRepositoryToPlan(@NotNull Plan plan, long selectedRepositoryId) Connects a linked repository to a plan by creating a new repository that inherits all the data from the linked repository and adding it to the plan.mergeLinkedRepository(@NotNull PartialVcsRepositoryData vcsRepositoryData) Merges the state of the given linked repository into the database.voidmergePlanRepositories(@NotNull Plan plan, @NotNull List<PartialVcsRepositoryData> vcsRepositoryDataList) Merges the state of the given plan repositories into the database.mergeProjectRepository(@NotNull PartialVcsRepositoryData vcsRepositoryData) Merges the state of the given project repository into the database.voidmoveRepository(@NotNull Plan plan, long repositoryId, long beforePosition, long afterPosition) Changes position of repository in the repository list.replaceRepositoryInPlan(@NotNull Plan plan, @NotNull VcsRepositoryData parentRepository, @NotNull PartialVcsRepositoryData oldRepository, @NotNull PartialVcsRepositoryData newRepository) Replaces uses of a repository with another one.voidsetParentOfPlanRepository(@NotNull ImmutablePlan plan, long repositoryId, long parentRepositoryId) Creates or changes parent-child relationship for a plan repository.voidshareRepository(@NotNull Plan plan, @NotNull PartialVcsRepositoryData repositoryData, @NotNull String repositoryName, @Nullable String userDescription, @NotNull com.atlassian.user.User user) Converts existing Plan repository to Linked repository.booleanvalidateContinuableStatus(@NotNull ResultsSummary resultSummary) Checks that result is continuable and repositories referenced by a result still exists in Bamboo db.voidvalidateLinkedRepository(@NotNull PartialVcsRepositoryData vcsRepositoryData) Validate linked repository before saving it in database.booleanvalidateLinkedRepositoryName(@NotNull String repositoryName, @Nullable BambooIdProvider vcsRepositoryData) Checks if name of a linked repository is unique.voidvalidatePlanRepositoriesNamesAndOids(@NotNull Plan plan, @NotNull List<PartialVcsRepositoryData> repositoryDataList) Validate repository names checking if there are no duplicates.voidvalidatePlanRepository(@NotNull Plan plan, @NotNull PartialVcsRepositoryData vcsRepositoryData) Deprecated.since 9.0 without direct replacement.voidvalidateProjectRepository(@NotNull PartialVcsRepositoryData vcsRepositoryData) Validate project repository before saving it in database.booleanvalidateProjectRepositoryName(@NotNull String repositoryName, @NotNull Long projectId, @Nullable BambooIdProvider vcsRepositoryData) Checks if name of a project repository is unique in the project.booleanvalidateRepositoryName(@NotNull ImmutablePlan immutablePlan, @NotNull String repositoryName, @Nullable BambooIdProvider repositoryDefinition) Checks if provided name for repository is unique in the PlanbooleanvalidateRestartableStatus(@NotNull ResultsSummary resultSummary) Checks that result is restartable and repositories referenced by a result still exists in Bamboo db.
-
Field Details
-
LEGACY_VCS_PLUGINS_USED_BANDANA_KEY
- See Also:
-
-
Method Details
-
createLinkedRepository
@NotNull @NotNull PartialVcsRepositoryData createLinkedRepository(@NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration, @NotNull @NotNull com.atlassian.user.User user, @NotNull @NotNull VcsRepositoryConfigurationService.RepositoryAccess accessOption) Creates new linked repository- Parameters:
newVcsConfiguration-user-accessOption-- Returns:
-
createLinkedRepository
@Deprecated @NotNull default @NotNull PartialVcsRepositoryData createLinkedRepository(@NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration, @NotNull @NotNull com.atlassian.user.User user, @NotNull @NotNull VcsRepositoryConfigurationService.LinkedRepositoryAccess accessOption) Deprecated.Creates new linked repository- Parameters:
newVcsConfiguration-user-accessOption-- Returns:
-
createProjectRepository
@NotNull @NotNull PartialVcsRepositoryData createProjectRepository(@NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration, @Nullable @Nullable com.atlassian.user.User user, @NotNull @NotNull VcsRepositoryConfigurationService.RepositoryAccess accessOption) Creates new project repository- Parameters:
newVcsConfiguration-user-accessOption-- Returns:
-
editLinkedRepository
@NotNull @NotNull PartialVcsRepositoryData editLinkedRepository(long repositoryId, @NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration) Edits existing linked repository- Parameters:
repositoryId-newVcsConfiguration-- Returns:
-
editProjectRepository
@NotNull @NotNull PartialVcsRepositoryData editProjectRepository(long repositoryId, @NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration) Edits existing project repository- Parameters:
repositoryId-newVcsConfiguration-- Returns:
-
validateLinkedRepositoryName
boolean validateLinkedRepositoryName(@NotNull @NotNull String repositoryName, @Nullable @Nullable BambooIdProvider vcsRepositoryData) Checks if name of a linked repository is unique.- Parameters:
repositoryName-vcsRepositoryData-- Returns:
-
validateProjectRepositoryName
boolean validateProjectRepositoryName(@NotNull @NotNull String repositoryName, @NotNull @NotNull Long projectId, @Nullable @Nullable BambooIdProvider vcsRepositoryData) Checks if name of a project repository is unique in the project.- Parameters:
repositoryName-projectId-- Returns:
-
validateRepositoryName
boolean validateRepositoryName(@NotNull @NotNull ImmutablePlan immutablePlan, @NotNull @NotNull String repositoryName, @Nullable @Nullable BambooIdProvider repositoryDefinition) Checks if provided name for repository is unique in the Plan -
linkRepositoryToPlan
@NotNull @NotNull PartialVcsRepositoryData linkRepositoryToPlan(@NotNull @NotNull Plan plan, long selectedRepositoryId) Connects a linked repository to a plan by creating a new repository that inherits all the data from the linked repository and adding it to the plan.- Parameters:
plan-selectedRepositoryId-- Returns:
-
createPlanRepository
@NotNull @NotNull PartialVcsRepositoryData createPlanRepository(@NotNull @NotNull Plan plan, @NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration) Creates "plan local" repository and adds it to a plan.- Parameters:
plan-newVcsConfiguration-- Returns:
-
editRepository
@NotNull @NotNull PartialVcsRepositoryData editRepository(@NotNull @NotNull Plan plan, long repositoryId, @NotNull @NotNull PartialVcsRepositoryData newVcsConfiguration) Edits existing "plan local" repository.- Parameters:
plan-repositoryId-newVcsConfiguration-- Returns:
-
deleteRepository
void deleteRepository(@NotNull @NotNull Plan plan, long repositoryId, @Nullable @Nullable Long replacementRepositoryId) Removes repository definition from a plan- Parameters:
plan-repositoryId-replacementRepositoryId- repository id to replace removed one in tasks depending on it
-
deleteLinkedRepository
void deleteLinkedRepository(long repositoryId) Removes linked repository.- Parameters:
repositoryId-
-
deleteProjectRepository
void deleteProjectRepository(long repositoryId) Removes project repository.- Parameters:
repositoryId-
-
moveRepository
void moveRepository(@NotNull @NotNull Plan plan, long repositoryId, long beforePosition, long afterPosition) Changes position of repository in the repository list. Important for setting default repository- Parameters:
plan-repositoryId- the repository to movebeforePosition- position of the repository that will be before the moving Repository, -1 if the beginning of the listafterPosition- position of the repository that will be after the moving Repository, -1 if the end of the list
-
setParentOfPlanRepository
void setParentOfPlanRepository(@NotNull @NotNull ImmutablePlan plan, long repositoryId, long parentRepositoryId) Creates or changes parent-child relationship for a plan repository.- Parameters:
plan-repositoryId-parentRepositoryId-
-
replaceRepositoryInPlan
PartialVcsRepositoryData replaceRepositoryInPlan(@NotNull @NotNull Plan plan, @NotNull @NotNull VcsRepositoryData parentRepository, @NotNull @NotNull PartialVcsRepositoryData oldRepository, @NotNull @NotNull PartialVcsRepositoryData newRepository) Replaces uses of a repository with another one.- Parameters:
plan-parentRepository-oldRepository-newRepository-- Returns:
-
validateRestartableStatus
Checks that result is restartable and repositories referenced by a result still exists in Bamboo db. -
validateContinuableStatus
Checks that result is continuable and repositories referenced by a result still exists in Bamboo db.- Since:
- 6.9
-
getRelevantJobsForRepositoryIdChange
@Deprecated Map<ImmutableJob,List<TaskDefinition>> getRelevantJobsForRepositoryIdChange(@NotNull @NotNull ImmutablePlan plan, long repositoryId) Deprecated.since 5.14Gets list of jobs using a repository.- Parameters:
plan-repositoryId-
-
validateLinkedRepository
void validateLinkedRepository(@NotNull @NotNull PartialVcsRepositoryData vcsRepositoryData) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Validate linked repository before saving it in database.- Parameters:
vcsRepositoryData- imported linked repository- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
validateProjectRepository
void validateProjectRepository(@NotNull @NotNull PartialVcsRepositoryData vcsRepositoryData) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Validate project repository before saving it in database.- Parameters:
vcsRepositoryData- imported project repository- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
mergeLinkedRepository
PartialVcsRepositoryData mergeLinkedRepository(@NotNull @NotNull PartialVcsRepositoryData vcsRepositoryData) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Merges the state of the given linked repository into the database.This service will attempt to merge the entity based on
ImmutableEntityWithOid.getOid(), and if there's no match, based onDescriptionProvider.getName(). If an existing entity is found, then it will be updated. Otherwise, a new database entity will be created.It's assumed that this method is used in specs import only as it's sending analytic event.
- Parameters:
vcsRepositoryData- imported linked repository- Returns:
- an object after persisting to the database - either the newly created or updated database object
- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
mergeProjectRepository
PartialVcsRepositoryData mergeProjectRepository(@NotNull @NotNull PartialVcsRepositoryData vcsRepositoryData) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Merges the state of the given project repository into the database.This service will attempt to merge the entity based on
ImmutableEntityWithOid.getOid(), and if there's no match, based onDescriptionProvider.getName(). If an existing entity is found, then it will be updated. Otherwise, a new database entity will be created. It's assumed that this method is used in specs import only as it's sending analytic event.- Parameters:
vcsRepositoryData- imported project repository- Returns:
- an object after persisting to the database - either the newly created or updated database object
- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
validatePlanRepository
@Internal @Deprecated void validatePlanRepository(@NotNull @NotNull Plan plan, @NotNull @NotNull PartialVcsRepositoryData vcsRepositoryData) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Deprecated.since 9.0 without direct replacement. The algorithm has changed.Validate plan repository before saving it in database.- Parameters:
plan-vcsRepositoryData- imported plan repository- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
validatePlanRepositoriesNamesAndOids
void validatePlanRepositoriesNamesAndOids(@NotNull @NotNull Plan plan, @NotNull @NotNull List<PartialVcsRepositoryData> repositoryDataList) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Validate repository names checking if there are no duplicates.- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
mergePlanRepositories
void mergePlanRepositories(@NotNull @NotNull Plan plan, @NotNull @NotNull List<PartialVcsRepositoryData> vcsRepositoryDataList) throws com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException Merges the state of the given plan repositories into the database. Note that it is up to the caller to validate if the resulting changes of repository configurations are actually legal.This service will attempt to merge the entities based on
BambooIdProvider.getId(), and if there's no match, a new database entity will be created. All other repositories in plan will be removed.- Parameters:
plan-vcsRepositoryDataList- list of imported plan repositories- Throws:
com.atlassian.bamboo.specs.api.exceptions.PropertiesValidationException
-
configureRssDetection
@NotNull @NotNull ErrorCollection configureRssDetection(long repositoryId, PartialVcsRepositoryData vcsRepositoryData, boolean isEnabled) Sets detection of Bamboo Specs for repository and saves new config. Validates if repository supports RSS.- Parameters:
repositoryId- id of repositoryvcsRepositoryData- repository configuration, remains unchangedisEnabled- true if Specs detection should be enabled, false otherwise- Returns:
- a list of errors.
-
VcsRepositoryConfigurationService.RepositoryAccess