Class GitBranchDetector
- java.lang.Object
-
- com.atlassian.bamboo.plugins.git.v2.AbstractGitExecutor
-
- com.atlassian.bamboo.plugins.git.v2.GitBranchDetector
-
- All Implemented Interfaces:
IdentifyingExecutor<VcsBranchDetector>
,VcsBranchDetector
public class GitBranchDetector extends AbstractGitExecutor implements VcsBranchDetector
-
-
Field Summary
-
Fields inherited from class com.atlassian.bamboo.plugins.git.v2.AbstractGitExecutor
buildDirectoryManager, buildLoggingContext, customVariableContext, DEFAULT_BRANCH, i18nResolver, sshProxyService, trustedKeyHelper
-
-
Constructor Summary
Constructors Constructor Description GitBranchDetector(CapabilityContext capabilityContext, CredentialsAccessor credentialsAccessor, CustomVariableContext customVariableContext, BuildDirectoryManager buildDirectoryManager, com.atlassian.sal.api.message.I18nResolver i18nResolver, TrustedKeyHelper trustedKeyHelper, SshProxyService sshProxyService, BuildLoggingContext buildLoggingContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull CommitContext
getFirstCommitApproximation(@NotNull VcsRepositoryData repositoryData)
Retrieve an old, preferably the first commit on a branch.@NotNull CommitContext
getLastCommit(@NotNull VcsRepositoryData repositoryData)
Retrieve last commit on the branch set on this Repository.@NotNull List<VcsBranch>
getOpenBranches(@NotNull VcsRepositoryData repositoryData)
Set
of open branches that are discovered in the repository.@Nullable ContextualVcsId<VcsBranchDetector>
getVcsIdForExecutor(@NotNull VcsRepositoryData vcsRepositoryData)
Returned id has to fulfill the following: Given two VcsRepositoryData objects A and B, and executor e returning equal ContextualVcsId (in terms of equals()), for any operation foo() provided by the executor, the calls e::foo(A) and e::foo(B) should be equivalent.-
Methods inherited from class com.atlassian.bamboo.plugins.git.v2.AbstractGitExecutor
fetchCacheWithRetry, fetchWithRetry, getAccessData, getCacheDirectory, getCachePath, getGitCapability, getSharedCredentialsIdField, getSshCapability, getSubstitutedAccessData, getSubstitutedAccessDataBuilder, getWorkingDirectory, isUsingSharedCredentials, rethrowOrRemoveDirectory, substituteString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.atlassian.bamboo.vcs.runtime.VcsBranchDetector
getFirstCommit, usePollingForBranchDetection
-
-
-
-
Constructor Detail
-
GitBranchDetector
@Inject public GitBranchDetector(CapabilityContext capabilityContext, CredentialsAccessor credentialsAccessor, CustomVariableContext customVariableContext, BuildDirectoryManager buildDirectoryManager, com.atlassian.sal.api.message.I18nResolver i18nResolver, TrustedKeyHelper trustedKeyHelper, SshProxyService sshProxyService, BuildLoggingContext buildLoggingContext)
-
-
Method Detail
-
getOpenBranches
@NotNull public @NotNull List<VcsBranch> getOpenBranches(@NotNull @NotNull VcsRepositoryData repositoryData) throws RepositoryException
Description copied from interface:VcsBranchDetector
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).- Specified by:
getOpenBranches
in interfaceVcsBranchDetector
- Returns:
List
of branch names. May be empty.- Throws:
RepositoryException
-
getFirstCommitApproximation
@NotNull public @NotNull CommitContext getFirstCommitApproximation(@NotNull @NotNull VcsRepositoryData repositoryData) throws RepositoryException
Description copied from interface:VcsBranchDetector
Retrieve an old, preferably the first commit on a branch. Implementations must not return null. The default implementation may return null.- Specified by:
getFirstCommitApproximation
in interfaceVcsBranchDetector
- Throws:
RepositoryException
-
getLastCommit
@NotNull public @NotNull CommitContext getLastCommit(@NotNull @NotNull VcsRepositoryData repositoryData) throws RepositoryException
Description copied from interface:VcsBranchDetector
Retrieve last commit on the branch set on this Repository. Method is used by Chain Branch automatic expiry. If this method returns null Chain Branch is not expired.- Specified by:
getLastCommit
in interfaceVcsBranchDetector
- Returns:
- the last commit
- Throws:
RepositoryException
-
getVcsIdForExecutor
@Nullable public @Nullable ContextualVcsId<VcsBranchDetector> getVcsIdForExecutor(@NotNull @NotNull VcsRepositoryData vcsRepositoryData)
Description copied from interface:IdentifyingExecutor
Returned id has to fulfill the following: Given two VcsRepositoryData objects A and B, and executor e returning equal ContextualVcsId (in terms of equals()), for any operation foo() provided by the executor, the calls e::foo(A) and e::foo(B) should be equivalent. To be more precise: given any time point t and any variable context v, calling a::foo(A) should yield the same results as calling e::foo(B). Given the above it follows that - calculation of the id should take into account global and plan variables. This means, that calling this method on the same object in different variable context can (possibly must) yield different results. - equal ids need not (and should not) guarantee equal call results over indefinite time. In particular, result of e:foo(A).equals(e::foo(A)) is allowed to be false, since 2 calls to e::foo(A) do not happen at the same time. Example: 2 git repositories with the same url and credentials are considered equal in context ofVcsBranchDetector
. If they also point to the same branch, they are considered equal in context ofVcsChangeDetector
- Specified by:
getVcsIdForExecutor
in interfaceIdentifyingExecutor<VcsBranchDetector>
- Returns:
- the id of repository, can be null if no feasible identification algorithm exists
-
-