com.atlassian.bitbucket.scm.ScmCommandFactory |
Creates commands
which provide basic SCM functionality such as creating repositories, retrieving
commits and viewing diffs. Each method accepts a set of CommandParameters
which are used to control the
command's behaviour and output.
In general, commands fall into two categories:
PageRequest
describing the page of output that should be returned and return
an object graph when the command is executedVoid
(usually null
) when the
command is executed
Note: The repository
against which created commands will operate was specified when the factory
was retrieved from the ScmService
, and cannot be changed.
Plugin developers: This is probably not the interface you want to use. The API provides services whose functionality is backed by the SCM. Using those services automatically chooses the correct SCM based on the repository, and provides a more stable, compatible API. In general, the functionality of this command factory is exposed by:
The documentation for each method on this interface includes a link to the API service method or methods which expose it.Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Retrieves blame (also sometimes referred to as annotations) for a file at a given revision.
| |||||||||||
Retrieves a page of
changesets given a set of commit IDs , where each changeset includes the first page of changes
between a requested commit and its first parent. | |||||||||||
Retrieves
details for the specified commit. | |||||||||||
Streams commits which match the provided
parameters to the provided callback. | |||||||||||
Retrieves a
page of commits matching the specified parameters . | |||||||||||
Retrieves the common ancestor for the provided commits
| |||||||||||
Resolves the default branch for the specified repository.
| |||||||||||
Streams a diff between two
commits . | |||||||||||
Streams the
tree nodes (files, subdirectories and submodules) in the specified
directory . | |||||||||||
Streams the contents of the
specified file . | |||||||||||
This method is deprecated.
in 6.4 for removal in 7.0. Use
refs(RefsCommandParameters, RefCallback) instead.
| |||||||||||
Streams the raw content of the given file after performing a best effort detection of its
MIME type.
| |||||||||||
Streams all of the
refs in the repository. | |||||||||||
Resolves refs from the ref IDs provided on
parameters , which may be one of
Callers can specify on the parameters whether a provided ID is expected to resolve to a
branch , tag ,
or a ref of unknown type . | |||||||||||
Streams
tags ordered either alphabetically or by modification and optionally filtered. | |||||||||||
Streams all of the commits in the repository reachable from any branch or tag, traversed in topological order.
| |||||||||||
Retrieves blame (also sometimes referred to as annotations) for a file at a given revision.
The PageRequest
provided determines the lines in the file for which blame is calculated,
and only lines within the scope of the page request will be returned. However, because adjacent lines may be
spanned
by a single author
, the number
of distinct Blame
objects returned will frequently be less than the limit
.
parameters | parameters describing the file and revision used to calculate blame |
---|---|
pageRequest | describes the set of lines in the file to calculate blame for |
Blame
for the specified file and
revision for the requested set of linesRetrieves a Command
which, when executed, will stream branches
ordered either
alphabetically or by modification and optionally filtered.
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical
ordermodification
orderparameters | parameters describing desired order and filter text |
---|---|
callback | the callback to receive streamed branches |
Retrieves a page
of branches
ordered either alphabetically or by modification and
optionally filtered.
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical
ordermodification
orderparameters | parameters describing desired order and filter text |
---|---|
pageRequest | describes the set of branches to return |
Retrieves a page
of changes
describing the modifications made between two
revisions, optionally filtered by path.
If no explicit "since"
revision is specified, it defaults to the
parent of the "until"
revision. If the "until" revision specifies
a merge commit (a commit with multiple parents), no changes will be returned.
Note: Some changes
, such as copies
and moves
,
affect more than one path. When filtering by path, if both paths are not available the change's type may not
be correctly detected by some SCMs.
parameters | parameters describing the revisions to compare and paths to filter by |
---|---|
pageRequest | describes the set of changes to return |
Retrieves a Command
which, when executed, will stream changes
describing modifications
made between two revisions, optionally filtered by path.
If no explicit "since"
revision is specified, it defaults to the
parent of the "until"
revision. If the "until" revision specifies
a merge commit (a commit with multiple parents), no changes will be returned.
Note: Some changes
, such as copies
and moves
,
affect more than one path. When filtering by path, if both paths are not available the change's type may not
be correctly detected by some SCMs.
parameters | parameters describing the revisions to compare and paths to filter by |
---|---|
callback | the callback to receive streamed commits |
Retrieves a page of changesets
given a set of commit IDs
, where each changeset includes the first page of changes
between a requested commit and its first parent.
parameters | parameters describing the changesets to retrieve |
---|---|
pageRequest | describes the page of changesets to retrieve |
Retrieves details
for the specified commit.
If a path
is provided, the Changeset
returned may not
be for the specified commit
. Instead, that commit is used as
a starting point and details for the first commit in its ancestry which affects that path are returned.
parameters | parameters describing the commit to retrieve details for |
---|
Streams commits which match the provided parameters
to the provided callback.
parameters | parameters describing the commits to retrieve |
---|---|
callback | a callback to receive the streamed commits |
UnsupportedOperationException | if a secondary
repository is provided an cross-
repository operations are not supported |
---|
Retrieves a page
of commits matching the specified parameters
.
If the SCM supports
cross-repository
operations, a secondary repository
may be provided. Otherwise, it must be omitted or match the target repository.
parameters | parameters describing which commits to retrieve |
---|---|
pageRequest | describes the set of commits to return |
UnsupportedOperationException | if a secondary
repository was provided and the underlying SCM does not support
cross-repository operations |
---|
Retrieves the common ancestor for the provided commits
parameters | parameters describing which common ancestor to retrieve |
---|
null
.Resolves the default branch for the specified repository.
The returned command may throw NoDefaultBranchException
, when executed, if the specified repository does not have a resolvable default branch.
This might happen, for example, on a new repository with no commits, or if the only commits to a repository have
been to a branch other than the default branch.
NoDefaultBranchException | if the repository does not have a resolvable default branch |
---|
Streams a diff between two commits
.
parameters | parameters describing the diff to stream |
---|---|
callback | the callback to receive the streamed diff |
Streams the tree nodes
(files, subdirectories and submodules) in the specified
directory
.
parameters | parameters providing the directory to stream and the revision to stream it for |
---|---|
callback | the callback to receive the streamed nodes |
pageRequest | describes the set of nodes to stream |
Streams the contents of the specified file
.
parameters | parameters describing the file to stream and the revision to stream it for |
---|---|
callback | the callback to receive the streamed content |
pageRequest | describes the set of lines in the file to stream |
This method is deprecated.
in 6.4 for removal in 7.0. Use refs(RefsCommandParameters, RefCallback)
instead.
Streams refs
for all of the heads in the repository. The exact definition of "heads" is an
SCM-specific detail, but it will generally include all branches and tags in the repository.
Note: This method is not exposed via the service API. It is only available directly on the SCM API.
callback | the ref callback that will be called for each head |
---|
Streams the raw content of the given file after performing a best effort detection of its
MIME type. That MIME type will be used to retrieve an OutputStream
from the provided supplier,
and the file's raw content will then be written to the returned stream.
parameters | parameters used to specify the path and version of the file to stream |
---|---|
outputSupplier | the supplier which, when given a content type, will provide an output stream |
Streams all of the refs
in the repository. The exact specification for what "refs" includes
is an SCM-specific detail, but it will generally include all branches and tags in the repository.
Note: This method is not exposed via the service API. It is only available directly on the SCM API.
parameters | parameters to allow evolving the SPI over time |
---|---|
callback | the ref callback that will be called for each ref |
Resolves the specified refId
, which may be a:
refId
should be resolved to a specific type, that type
should be set to allow the SCM to restrict its search.
If a hash is provided, it will be resolved to the branch or tag it is the tip of. If it is not the tip of
any branch or tag, it will resolve to null
. If a type
was specified, the hash will only be resolved against that type.
When a hash is provided and resolves to multiple branches, tags or a combination of both, it is left to the SCM implementation to determine the result. SCM implementors are encouraged to choose a tag over a branch, and to return the "first" branch or tag, ordered alphabetically, but this is not enforced.
parameters | parameters describing the ref to resolve |
---|
Resolves refs from the ref IDs provided on parameters
, which may be one of
parameters
whether a provided ID is expected to resolve to a
branch
, tag
,
or a ref of unknown type
.
If hashes are provided, they will be resolved to branches or tags they are the tip of. If they are not the tip of
any branch or tag, they will resolve to null
and will not be included in the returned map.
When a hash is provided and resolves to multiple branches, tags or a combination of both, it is left to the SCM implementation to determine the result. SCM implementors are encouraged to choose a tag over a branch, and to return the "first" branch or tag, ordered alphabetically, but this is not enforced.
parameters | describes the ref IDs to resolve |
---|
Retrieves a page
of tags
ordered either alphabetically or by modification and
optionally filtered.
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical
ordermodification
orderparameters | parameters describing desired order and filter text |
---|---|
pageRequest | describes the set of tags to return |
Streams tags
ordered either alphabetically or by modification and optionally filtered.
When no explicit order is requested, the default ordering depends on whether a filter was provided:
alphabetical
ordermodification
orderparameters | parameters describing desired order and filter text |
---|---|
callback | a callback to receive the streamed commits |
Streams all of the commits in the repository reachable from any branch or tag, traversed in topological order.
callback | the callback to receive the streamed commits |
---|
Retrieves the type
for the specified path
at the requested revision, if the path is present. Note that the same path might have different types between
revisions but the root entry ("", "\" or "/") will always be a directory
.
parameters | parameters describing the path to check, and the revision to check it for |
---|