Client Web Fragment Plugin Modules

Rate this page:

SCM Request Check Plugin Module


Whenever an scm client (for example, the git binary) pushes commits to or pulls commits from Bitbucket Server, the request must pass through a pipeline of SCM Request Checks before being allowed to interact with a Bitbucket Server repository. You can add to this pipeline by defining your own SCM Request Check modules.

Example SCM request checks might include:

  • A check that puts a repository into maintenance mode (all pushes and pulls are blocked) to fix a bad merge
  • A check that prevents access to a repository that has been moved to another server, and sends the user a message with the new location

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:


keyYesThe identifier of the plugin module. This key must be unique within the plugin where it is defined.N/A
classYesThe fully qualified Java class name of SCM request check. This class must implement ScmRequestCheck.N/A
weightThe (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 Server's bundled SCM request checks:

<atlassian-plugin key="\${project.groupId}.\${project.artifactId}" name="\${}" plugins-version="2">
        <vendor name="\${}" url="\${project.organization.url}" />

    <!-- check that the context user has access to the repository, processed first -->
    <scm-request-check key="repository-authorisation-check"
                       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"
                       class="com.atlassian.bitbucket.internal.scm.check.ThrottleCheck" />

Rate this page: