The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

WebService::BitbucketServer::RefRestriction::V2 - Bindings for a Bitbucket Server REST API

VERSION

version 0.605

SYNOPSIS

    my $stash = WebService::BitbucketServer->new(
        base_url    => 'https://stash.example.com/',
        username    => 'bob',
        password    => 'secret',
    );
    my $api = $stash->ref_restriction;

DESCRIPTION

This is a Bitbucket Server REST API for RefRestriction::V2.

Original API documentation created by and copyright Atlassian.

ATTRIBUTES

context

Get the instance of WebService::BitbucketServer passed to "new".

METHODS

new

    $api = WebService::BitbucketServer::RefRestriction::V2->new(context => $webservice_bitbucketserver_obj);

Create a new API.

Normally you would use $webservice_bitbucketserver_obj->ref_restriction instead.

get_restrictions_for_repository

Search for restrictions using the supplied parameters.

The authenticated user must have REPO_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    GET branch-permissions/2.0/projects/{projectKey}/repos/{repositorySlug}/restrictions

Parameters:

  • type - string, default: none

    (optional) types of restrictions to filter on: one of 'read-only', 'no-deletes', 'fast-forward-only' or 'pull-request-only'.

  • matcherType - string, default: none

    (optional) matcher type to filter on: one of 'BRANCH', 'PATTERN', 'MODEL_CATEGORY' or 'MODEL_BRANCH'.

  • matcherId - string, default: none

    (optional) matcher id to filter on. Requires the matcherType parameter to be specified also.

Responses:

  • 200 - page, type: application/json

  • 404 - not-found, type: application/json

    The restriction could not be found.

create_restrictions_for_repository

Create a restriction for the supplied branch or set of branches to be applied to the given repository.

A restriction means preventing writes on the specified branch(es) by all except a set of users and/or groups, or preventing specific operations such as branch deletion.

For example, you can restrict write access on 'master' to just the 'senior-developer' group, or prevent anyone from deleting that branch.

The request matcher and type must conform to the following.

  •  The matcher can be one of the following types
    • 'BRANCH' represents a specific Branch name. You must supply the fully qualified name of the ref to restrict, e.g. "refs/heads/master" instead of "master".

    • 'PATTERN' represents a wildcard pattern that may match multiple branches. You must specify a valid Branch Permission Pattern.

    • 'MODEL_CATEGORY' represents Branch prefixes in the Branching model for the repository. The 'id' must be one of

      • 'FEATURE'

      • 'BUGFIX'

      • 'HOTFIX'

      • 'RELEASE'

      See the Branch REST API for more information.

    • 'MODEL_BRANCH' represents either the Development or Production branch in the branching model for the repository. The 'id' must be one of

      • 'development'

      • 'production'

      See the Branch REST API for more information.

  • Type: Set and be one of

    • 'pull-request-only'

    • 'fast-forward-only'

    • 'no-deletes'

    • 'read-only'

The authenticated user must have REPO_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    POST branch-permissions/2.0/projects/{projectKey}/repos/{repositorySlug}/restrictions

Responses:

  • 200 - restriction, type: application/json

    Response contains the ref restriction that was just created.

  • 400 - errors, type: application/json

    The request has failed validation.

  • 401 - validation, type: application/json

    The currently authenticated user has insufficient permissions to perform this operation.

delete_restriction_for_repository

Deletes a restriction as specified by a restriction id.

The authenticated user must have REPO_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    DELETE branch-permissions/2.0/projects/{projectKey}/repos/{repositorySlug}/restrictions/{id}

Parameters:

  • id - int, default: none

Responses:

  • 204 - data, type: unknown

    an empty response indicating that the restriction no longer exists on the repository

get_restriction_for_repository

Returns a restriction as specified by a restriction id.

The authenticated user must have REPO_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    GET branch-permissions/2.0/projects/{projectKey}/repos/{repositorySlug}/restrictions/{id}

Parameters:

  • id - int, default: none

Responses:

  • 200 - restriction, type: application/json

    The restriction that was created

  • 404 - not-found, type: unknown

    The restriction could not be found.

get_restrictions

Search for restrictions using the supplied parameters.

The authenticated user must have REPO_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    GET branch-permissions/2.0/projects/{projectKey}/restrictions

Parameters:

  • type - string, default: none

    (optional) types of restrictions to filter on: one of 'read-only', 'no-deletes', 'fast-forward-only' or 'pull-request-only'.

  • matcherType - string, default: none

    (optional) matcher type to filter on: one of 'BRANCH', 'PATTERN', 'MODEL_CATEGORY' or 'MODEL_BRANCH'.

  • matcherId - string, default: none

    (optional) matcher id to filter on. Requires the matcherType parameter to be specified also.

Responses:

  • 200 - page, type: application/json

  • 404 - not-found, type: application/json

    The restriction could not be found.

create_restriction

Create a restriction for the supplied branch or set of branches to be applied on all repositories in the given project.

A restriction means preventing writes on the specified branch(es) by all except a set of users and/or groups, or preventing specific operations such as branch deletion.

For example, you can restrict write access on 'master' to just the 'senior-developer' group, or prevent anyone from deleting that branch.

The request matcher and type must conform to the following.

  •  The matcher can be one of the following types
    • 'BRANCH' represents a specific Branch name. You must supply the fully qualified name of the ref to restrict, e.g. "refs/heads/master" instead of "master".

    • 'PATTERN' represents a wildcard pattern that may match multiple branches. You must specify a valid Branch Permission Pattern.

    • 'MODEL_CATEGORY' represents Branch prefixes in the Branching model for the project. The 'id' must be one of

      • 'FEATURE'

      • 'BUGFIX'

      • 'HOTFIX'

      • 'RELEASE'

      See the Branch REST API for more information.

    • 'MODEL_BRANCH' represents either the Development or Production branch in the branching model for the project. The 'id' must be one of

      • 'development'

      • 'production'

      See the Branch REST API for more information.

  • Type: Set and be one of

    • 'pull-request-only'

    • 'fast-forward-only'

    • 'no-deletes'

    • 'read-only'

The authenticated user must have PROJECT_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    POST branch-permissions/2.0/projects/{projectKey}/restrictions

Responses:

  • 200 - restriction, type: application/json

    Response contains the ref restriction that was just created.

  • 400 - errors, type: application/json

    The request has failed validation.

  • 401 - validation, type: application/json

    The currently authenticated user has insufficient permissions to perform this operation.

delete_restriction

Deletes a restriction as specified by a restriction id.

The authenticated user must have PROJECT_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    DELETE branch-permissions/2.0/projects/{projectKey}/restrictions/{id}

Parameters:

  • id - int, default: none

Responses:

  • 204 - data, type: unknown

    an empty response indicating that the restriction no longer exists on the project

get_restriction

Returns a restriction as specified by a restriction id.

The authenticated user must have REPO_ADMIN permission or higher to call this resource. Only authenticated users may call this resource.

    GET branch-permissions/2.0/projects/{projectKey}/restrictions/{id}

Parameters:

  • id - int, default: none

Responses:

  • 200 - restriction, type: application/json

    The restriction that was created

  • 404 - not-found, type: unknown

    The restriction could not be found.

SEE ALSO

BUGS

Please report any bugs or feature requests on the bugtracker website https://github.com/chazmcgarvey/WebService-BitbucketServer/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR

Charles McGarvey <chazmcgarvey@brokenzipper.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2018 by Charles McGarvey.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.