@Internal public class StashRepositoryImpl extends AbstractStandaloneRepository implements StashRepository
CachingAwareRepository.CachableOperation
BUILD_TRIGGER_IP, buildDirectoryManager, buildLoggerManager, customVariableContext, featureManager, REPO_PREFIX, repositoryModuleDescriptor, templateRenderer, textProvider
moduleDescriptor
REPOSITORY_STASH_APPLICATION, REPOSITORY_STASH_BRANCH, REPOSITORY_STASH_COMMAND_TIMEOUT, REPOSITORY_STASH_FETCH_WHOLE_REPOSITORY, REPOSITORY_STASH_IS_REPOSITORY_STORED_KEY, REPOSITORY_STASH_LFS_REPOSITORY, REPOSITORY_STASH_PRIVATE_KEY, REPOSITORY_STASH_PROJECT_KEY, REPOSITORY_STASH_PUBLIC_KEY, REPOSITORY_STASH_REPOSITORY_ID, REPOSITORY_STASH_REPOSITORY_SLUG, REPOSITORY_STASH_REPOSITORY_URL, REPOSITORY_STASH_USE_REMOTE_AGENT_CACHE, REPOSITORY_STASH_USE_SHALLOW_CLONES, REPOSITORY_STASH_USE_SUBMODULES, REPOSITORY_STASH_VERBOSE_LOGS
SELECTED_REPOSITORY, UNKNOWN_HOST
GIT_REPOSITORIES_OF_PLAN
FILTER_PATTERN_EXCLUDE, FILTER_PATTERN_INCLUDE, FILTER_PATTERN_NONE, FILTER_PATTERN_OPTION, FILTER_PATTERN_REGEX
CHANGESET_FILTER_PATTERN_REGEX, MAVEN_RELEASE_PLUGIN_EXCLUSION_PATTERN
Constructor and Description |
---|
StashRepositoryImpl() |
Modifier and Type | Method and Description |
---|---|
void |
addDefaultValues(@NotNull BuildConfiguration buildConfiguration)
Extension point for adding default values to the form for
RenderableBuildConfiguration.getEditHtml(com.atlassian.bamboo.ww2.actions.build.admin.create.BuildConfiguration, com.atlassian.bamboo.plan.Plan) |
void |
beforeEditPageRendering(@NotNull org.apache.commons.configuration.HierarchicalConfiguration buildConfiguration)
Action to be taken before rendering the edit page.
|
ErrorCollection |
beforeSave(@NotNull org.apache.commons.configuration.HierarchicalConfiguration configuration)
Action to be taken before repository is saved from the UI.
|
@NotNull BuildRepositoryChanges |
collectChangesForRevision(@NotNull PlanKey planKey,
@NotNull String targetRevision)
Collects the changes for the targetRevision.
|
@NotNull BuildRepositoryChanges |
collectChangesSinceLastBuild(@NotNull String planKey,
@Nullable String lastVcsRevisionKey)
Collects the changes since the lastVcsRevisionKey.
|
@NotNull String |
commit(@NotNull File sourceDirectory,
@NotNull String message)
Perform a commit (dvcs commit).
|
@Nullable com.atlassian.applinks.api.ApplicationLink |
getApplicationLink() |
CacheId |
getCacheId(@NotNull CachingAwareRepository.CachableOperation cachableOperation)
Cache id has to fulfill the following:
Given two Repository objects A and B, returning equal CacheId (in terms of equals()) and a cachable operation foo(),
in the following sequence of calls made in a short time period:
1.
|
CapabilityContext |
getCapabilityContext() |
int |
getCommandTimeout() |
@NotNull Map<String,String> |
getCustomVariables()
Return a map containing name->value mapping of the variables.
|
TriggerModuleDescriptor |
getDefaultTriggerModule() |
CommitContext |
getFirstCommit()
Retrieve the commit that created the Branch.
|
@Nullable GitRepository |
getGitRepository() |
String |
getHost()
What's the repository server host
|
CommitContext |
getLastCommit()
Retrieve last commit on the branch set on this Repository.
|
@NotNull String |
getName()
The display name for the repository type
|
@NotNull List<VcsBranch> |
getOpenBranches(@Nullable String context)
Set of open branches that are discovered in the repository. |
String |
getOptionDescription() |
@NotNull Map<String,String> |
getPlanRepositoryVariables()
Return a map containing name->value mapping of the plan repository format variables.
|
String |
getRepositoryUrl() |
@NotNull Set<Requirement> |
getRequirements() |
@NotNull String |
getScm()
Get a string representing the name of the repository type.
|
String |
getStashProjectKey() |
String |
getStashRepositoryId() |
String |
getStashRepositorySlug() |
@NotNull VcsBranch |
getVcsBranch() |
boolean |
getVerboseLogs() |
boolean |
isCachingSupportedFor(@NotNull CachingAwareRepository.CachableOperation cachableOperation) |
boolean |
isFetchWholeRepository() |
boolean |
isLfs() |
boolean |
isMergingSupported() |
boolean |
isRepositoryDifferent(@NotNull Repository repository)
Checks if the current repo is the same as the given repository
|
boolean |
isUseRemoteAgentCache() |
boolean |
isUseShallowClones() |
boolean |
isUseSubmodules() |
boolean |
mergeWorkspaceWith(@NotNull BuildContext buildContext,
@NotNull File checkoutDirectory,
@NotNull String targetRevision)
Merges a workspace located in checkout directory with the target revision.
|
void |
populateFromConfig(@NotNull org.apache.commons.configuration.HierarchicalConfiguration config)
Update the current object with data in the
HierarchicalConfiguration |
void |
prepareConfigObject(@NotNull BuildConfiguration buildConfiguration)
Do any preprocessing work before validation occurs.
|
void |
pushRevision(@NotNull File sourceDirectory,
@Nullable String vcsRevisionKey)
Push the specified revision to the remote directory.
|
@NotNull String |
retrieveSourceCode(@NotNull BuildContext buildContext,
@Nullable PlanVcsRevisionData planVcsRevisionData,
@NotNull File sourceDirectory,
int depth) |
@NotNull String |
retrieveSourceCode(@NotNull BuildContext buildContext,
@Nullable String vcsRevisionKey,
@NotNull File sourceDirectory)
Checks out the latest source code from an appropriate repository to specified directory
|
@NotNull String |
retrieveSourceCode(@NotNull BuildContext buildContext,
@Nullable String vcsRevisionKey,
@NotNull File sourceDirectory,
int depth)
Checks out the latest source code from an appropriate repository to specified directory
|
void |
setAdministrationConfigurationAccessor(AdministrationConfigurationAccessor administrationConfigurationAccessor) |
void |
setBambooAuthenticationContext(BambooAuthenticationContext bambooAuthenticationContext) |
void |
setCapabilityContext(CapabilityContext capabilityContext) |
void |
setI18nResolver(com.atlassian.sal.api.message.I18nResolver i18nResolver) |
void |
setRepositoryId(long repositoryId) |
void |
setRepositoryManager(RepositoryManager repositoryManager) |
void |
setStashCapabilityProvider(StashCapabilityProvider stashCapabilityProvider) |
void |
setStashClientFactory(com.atlassian.stash.rest.client.applinks.ApplinkStashClientFactory stashClientFactory) |
void |
setVcsBranch(@NotNull VcsBranch vcsBranch)
Set and prepare the repository for using an arbitrary branch.
|
boolean |
stashServerRemoteEventsAreWorking() |
boolean |
stashServerSupportsRemoteEvents() |
@NotNull org.apache.commons.configuration.HierarchicalConfiguration |
toConfiguration()
Generate a
HierarchicalConfiguration from the current state of the object |
boolean |
usePollingForBranchDetection()
If Bamboo generic detection polling should be used for this repository
|
@NotNull ErrorCollection |
validate(@NotNull BuildConfiguration buildConfiguration)
Validates the properties in the
BuildConfiguration object. |
getAdvancedEditHtml, getAdvancedViewHtml, getEditHtml, getViewHtml, getViewHtml
checkConnection, customizeBuildRequirements, getAdvancedEditHtml, getAdvancedViewHtml, getBranchIntegrationEditHtml, getChangesetFilterPatternRegex, getDescription, getEditHtml, getFilterFilePatternOption, getFilterFilePatternRegex, getKey, getLocationIdentifier, getMavenPomCheckoutAccessEditHtml, getMaxCommitsToReturn, getMaxRetries, getMinimalEditHtml, getPollingTriggerModule, getQuietPeriod, getShortKey, getSourceCodeDirectory, getSystemWideExclusionPatterns, getViewHtml, getWorkingDirectory, init, isAdvancedOptionEnabled, isQuietPeriodEnabled, isWorkspaceEmpty, removeBuildRequirements, setBuildDirectoryManager, setBuildLoggerManager, setChangesetFilterPatternRegex, setCustomVariableContext, setFeatureManager, setFilterFilePatternOption, setFilterFilePatternRegex, setTemplateRenderer, setTextProvider, setWorkingDir, substituteString, toMergeCapableRepository
getTemplateRenderer, populateContextForEdit, populateContextForView
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getAdvancedEditHtml, getAdvancedViewHtml
checkConnection, getKey, getLocationIdentifier, getMinimalEditHtml, getShortKey
getSourceCodeDirectory
customizeBuildRequirements, removeBuildRequirements
isConfigurationMissing
init
getEditHtml, getViewHtml
getDescription
getBranchIntegrationEditHtml
getViewHtml
getAdvancedEditHtml, getAdvancedViewHtml, getEditHtml, getViewHtml
@NotNull public @NotNull String getName()
Repository
getName
in interface Repository
getName
in interface DescriptionProvider
getName
in interface NameProvider
public String getHost()
Repository
getHost
in interface Repository
public boolean isRepositoryDifferent(@NotNull @NotNull Repository repository)
RepositoryV2
isRepositoryDifferent
in interface RepositoryV2
repository
- to compare againstpublic void addDefaultValues(@NotNull @NotNull BuildConfiguration buildConfiguration)
BuildConfigurationAwarePlugin
RenderableBuildConfiguration.getEditHtml(com.atlassian.bamboo.ww2.actions.build.admin.create.BuildConfiguration, com.atlassian.bamboo.plan.Plan)
addDefaultValues
in interface BuildConfigurationAwarePlugin
addDefaultValues
in class AbstractRepository
buildConfiguration
- -public void prepareConfigObject(@NotNull @NotNull BuildConfiguration buildConfiguration)
BuildConfigurationAwarePlugin
prepareConfigObject
in interface BuildConfigurationAwarePlugin
prepareConfigObject
in class BaseBuildConfigurationAwarePlugin
buildConfiguration
- -public void populateFromConfig(@NotNull @NotNull org.apache.commons.configuration.HierarchicalConfiguration config)
ConvertibleFromConfig
HierarchicalConfiguration
populateFromConfig
in interface ConvertibleFromConfig
populateFromConfig
in class AbstractRepository
@NotNull public @NotNull org.apache.commons.configuration.HierarchicalConfiguration toConfiguration()
ConvertibleFromConfig
HierarchicalConfiguration
from the current state of the objecttoConfiguration
in interface ConvertibleFromConfig
toConfiguration
in class AbstractRepository
HierarchicalConfiguration
. Never null@NotNull public @NotNull ErrorCollection validate(@NotNull @NotNull BuildConfiguration buildConfiguration)
BuildConfigurationAwarePlugin
BuildConfiguration
object. The name of the properties match those passed
in through the form fragments in RenderableBuildConfiguration.getEditHtml(com.atlassian.bamboo.ww2.actions.build.admin.create.BuildConfiguration, com.atlassian.bamboo.plan.Plan)
template.validate
in interface BuildConfigurationAwarePlugin
validate
in class AbstractRepository
buildConfiguration
- -ErrorCollection
keyed by the field name.public void beforeEditPageRendering(@NotNull @NotNull org.apache.commons.configuration.HierarchicalConfiguration buildConfiguration)
EditActionAwareRepository
beforeEditPageRendering
in interface EditActionAwareRepository
buildConfiguration
- configuration to be loaded into the UIpublic ErrorCollection beforeSave(@NotNull @NotNull org.apache.commons.configuration.HierarchicalConfiguration configuration)
EditActionAwareRepository
beforeSave
in interface EditActionAwareRepository
@NotNull public @NotNull String getScm()
ScmTypePublishingRepository
getScm
in interface ScmTypePublishingRepository
@NotNull public @NotNull BuildRepositoryChanges collectChangesForRevision(@NotNull @NotNull PlanKey planKey, @NotNull @NotNull String targetRevision) throws RepositoryException
OnceOffCapableRepository
collectChangesForRevision
in interface OnceOffCapableRepository
collectChangesForRevision
in class AbstractRepository
RepositoryException
- if something goes wrong@NotNull public @NotNull BuildRepositoryChanges collectChangesSinceLastBuild(@NotNull @NotNull String planKey, @Nullable @Nullable String lastVcsRevisionKey) throws RepositoryException
RepositoryV2
collectChangesSinceLastBuild
in interface RepositoryV2
lastVcsRevisionKey
- can be null, if null you should ensure the correct vcsrevisionkey is returned in the BuildChanges object.RepositoryException
- if something goes wrong@NotNull public @NotNull String retrieveSourceCode(@NotNull @NotNull BuildContext buildContext, @Nullable @Nullable String vcsRevisionKey, @NotNull @NotNull File sourceDirectory) throws RepositoryException
CustomSourceDirectoryAwareRepository
retrieveSourceCode
in interface CustomSourceDirectoryAwareRepository
vcsRevisionKey
- - may be null if you want latest codesourceDirectory
- - directory to checkout toRepositoryException
@NotNull public @NotNull String retrieveSourceCode(@NotNull @NotNull BuildContext buildContext, @Nullable @Nullable String vcsRevisionKey, @NotNull @NotNull File sourceDirectory, int depth) throws RepositoryException
BranchMergingAwareRepository
retrieveSourceCode
in interface BranchMergingAwareRepository
vcsRevisionKey
- - may be null if you want latest codesourceDirectory
- - directory to checkout todepth
- - how many historical revisions we'd like to check out (-1 means all revisions)RepositoryException
@NotNull public @NotNull String retrieveSourceCode(@NotNull @NotNull BuildContext buildContext, @Nullable @Nullable PlanVcsRevisionData planVcsRevisionData, @NotNull @NotNull File sourceDirectory, int depth) throws RepositoryException
retrieveSourceCode
in interface CheckoutCustomRevisionDataAwareRepository
RepositoryException
@NotNull public @NotNull Set<Requirement> getRequirements()
getRequirements
in interface RequirementsAwareRepository
public boolean stashServerSupportsRemoteEvents()
stashServerSupportsRemoteEvents
in interface StashRepository
public boolean stashServerRemoteEventsAreWorking()
stashServerRemoteEventsAreWorking
in interface StashRepository
public TriggerModuleDescriptor getDefaultTriggerModule()
getDefaultTriggerModule
in class AbstractRepository
public void setRepositoryId(long repositoryId)
setRepositoryId
in interface RequiresRepositoryData
public void setStashCapabilityProvider(StashCapabilityProvider stashCapabilityProvider)
public void setI18nResolver(com.atlassian.sal.api.message.I18nResolver i18nResolver)
public void setRepositoryManager(RepositoryManager repositoryManager)
public CapabilityContext getCapabilityContext()
getCapabilityContext
in interface StashRepository
public void setCapabilityContext(CapabilityContext capabilityContext)
public void setAdministrationConfigurationAccessor(AdministrationConfigurationAccessor administrationConfigurationAccessor)
setAdministrationConfigurationAccessor
in class AbstractRepository
public void setStashClientFactory(com.atlassian.stash.rest.client.applinks.ApplinkStashClientFactory stashClientFactory)
public void setBambooAuthenticationContext(BambooAuthenticationContext bambooAuthenticationContext)
public String getOptionDescription()
getOptionDescription
in interface StashRepository
public CacheId getCacheId(@NotNull @NotNull CachingAwareRepository.CachableOperation cachableOperation)
CachingAwareRepository
getCacheId
in interface CachingAwareRepository
public boolean isCachingSupportedFor(@NotNull @NotNull CachingAwareRepository.CachableOperation cachableOperation)
isCachingSupportedFor
in interface CachingAwareRepository
@NotNull public @NotNull List<VcsBranch> getOpenBranches(@Nullable @Nullable String context) throws RepositoryException
BranchDetectionCapableRepository
Set
of open branches that are discovered in the repository. Returns empty collection if no branches at
all (can that happen?). Used for monitoring repositories for new branches.
An open branch is a branch that is considered 'open' by underlying VCS - it has nothing to do with the actual
development on that branch (recent commits or so).getOpenBranches
in interface BranchDetectionCapableRepository
List
of branch names. May be empty.RepositoryException
public CommitContext getFirstCommit() throws RepositoryException
BranchDetectionCapableRepository
getFirstCommit
in interface BranchDetectionCapableRepository
RepositoryException
public CommitContext getLastCommit() throws RepositoryException
BranchDetectionCapableRepository
getLastCommit
in interface BranchDetectionCapableRepository
RepositoryException
public boolean mergeWorkspaceWith(@NotNull @NotNull BuildContext buildContext, @NotNull @NotNull File checkoutDirectory, @NotNull @NotNull String targetRevision) throws RepositoryException
BranchMergingAwareRepository
mergeWorkspaceWith
in interface BranchMergingAwareRepository
buildContext
- the build context of build doing the mergecheckoutDirectory
- the workspace to use for mergetargetRevision
- the revision to merge withRepositoryException
public boolean isMergingSupported()
isMergingSupported
in interface BranchMergingAwareRepository
public void pushRevision(@NotNull @NotNull File sourceDirectory, @Nullable @Nullable String vcsRevisionKey) throws RepositoryException
PushCapableRepository
pushRevision
in interface PushCapableRepository
sourceDirectory
- - the working directory of the repository we want to push fromvcsRevisionKey
- - the revisionKey (usually a branch name) to pushRepositoryException
- - when something goes wrong@NotNull public @NotNull String commit(@NotNull @NotNull File sourceDirectory, @NotNull @NotNull String message) throws RepositoryException
PushCapableRepository
commit
in interface PushCapableRepository
sourceDirectory
- - which workspace directory to perform the commitmessage
- - what message use for commitRepositoryException
- - when something goes wrong@NotNull public @NotNull Map<String,String> getCustomVariables()
CustomVariableProviderRepository
Null values will be filtered out so it's safe to put them in the map.
getCustomVariables
in interface CustomVariableProviderRepository
public boolean usePollingForBranchDetection()
BranchInformationProvider
usePollingForBranchDetection
in interface BranchInformationProvider
@NotNull public @NotNull Map<String,String> getPlanRepositoryVariables()
CustomVariableProviderRepository
Null values will be filtered out so it's safe to put them in the map.
getPlanRepositoryVariables
in interface CustomVariableProviderRepository
@Nullable public @Nullable com.atlassian.applinks.api.ApplicationLink getApplicationLink()
getApplicationLink
in interface StashRepository
public String getStashProjectKey()
getStashProjectKey
in interface StashRepository
public String getStashRepositorySlug()
getStashRepositorySlug
in interface StashRepository
public String getStashRepositoryId()
getStashRepositoryId
in interface StashRepository
public String getRepositoryUrl()
getRepositoryUrl
in interface StashRepository
public boolean isUseShallowClones()
isUseShallowClones
in interface StashRepository
public boolean isUseSubmodules()
isUseSubmodules
in interface StashRepository
public int getCommandTimeout()
getCommandTimeout
in interface StashRepository
public boolean getVerboseLogs()
getVerboseLogs
in interface StashRepository
public boolean isUseRemoteAgentCache()
isUseRemoteAgentCache
in interface StashRepository
public boolean isFetchWholeRepository()
isFetchWholeRepository
in interface StashRepository
public boolean isLfs()
@NotNull public @NotNull VcsBranch getVcsBranch()
getVcsBranch
in interface BranchAwareRepository
public void setVcsBranch(@NotNull @NotNull VcsBranch vcsBranch)
BranchAwareRepository
setVcsBranch
in interface BranchAwareRepository
@Nullable public @Nullable GitRepository getGitRepository()
getGitRepository
in interface GitRepositoryFacade
Copyright © 2022 Atlassian Software Systems Pty Ltd. All rights reserved.