Client Web Fragment Plugin Modules

SCM Request Check Plugin Module

Introduction

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:

  • 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.

Configuration

The root element for an SCM Request Check plugin module is <scm-request-check/>. It allows the following attributes for configuration:

Attributes

Example

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: