Whenever an scm client (for example, the git
binary) pushes commits to or pulls commits from Bitbucket Data Center, the request must
pass through a pipeline of SCM Request Checks before being allowed to interact with a Bitbucket Data Center repository. You can add to
this pipeline by defining your own SCM Request Check modules.
Example SCM request checks might include:
ScmRequestCheck
implementations are passed an ScmRequest
object which allows them to determine the context repository for the request and whether the request is a push or pull.
ScmRequest
also allows the request check to send human-readable messages to the client.
The root element for an SCM Request Check plugin module is <scm-request-check/>
. It allows the following attributes for
configuration:
Name | Required | Description | Default |
---|---|---|---|
key | Yes | The identifier of the plugin module. This key must be unique within the plugin where it is defined. | N/A |
class | Yes | The fully qualified Java class name of SCM request check. This class must implement ScmRequestCheck. | N/A |
weight | The (integer) weight of the plugin module. Request checks with a larger weight will be processed later. | 10 |
Here is an excerpt from the atlassian-plugin.xml
file that defines Bitbucket Data Center's bundled SCM request checks:
1 2<atlassian-plugin key="\${project.groupId}.\${project.artifactId}" name="\${project.name}" plugins-version="2"> <plugin-info> <description>\${project.description}</description> <version>\${project.version}</version> <vendor name="\${project.organization.name}" url="\${project.organization.url}" /> </plugin-info> <!-- check that the context user has access to the repository, processed first --> <scm-request-check key="repository-authorisation-check" weight="100" class="com.atlassian.bitbucket.internal.scm.check.RepositoryAuthorisationCheck" /> <!-- check that there aren't too many concurrent git hosting operations, processed second --> <scm-request-check key="throttle-check" weight="200" class="com.atlassian.bitbucket.internal.scm.check.ThrottleCheck" /> </atlassian-plugin>
Rate this page: