NAME

    WebService::BitbucketServer - Bindings for Bitbucket Server REST APIs

VERSION

    version 0.601

SYNOPSIS

        my $api = WebService::BitbucketServer->new(
            base_url    => 'https://stash.example.com/',
            username    => 'bob',
            password    => 'secret',
        );
    
        my $response = $api->core->get_application_properties;
        my $app_info = $response->data;
        print "Making API calls to: $app_info->{displayName} $app_info->{version}\n";
    
        # Or use the low-level method (useful perhaps for new endpoints
        # that are not packaged yet):
    
        my $response = $api->call(method => 'GET', url => 'api/1.0/application-properties');
    
        # You can also use your own user agent:
    
        my $api = WebService::BitbucketServer->new(
            base_url    => 'https://stash.example.com/',
            username    => 'bob',
            password    => 'secret',
            ua          => Mojo::UserAgent->new,
        );
    
        # If the user agent is nonblocking, responses are Futures:
    
        my $future = $api->core->get_application_properties;
        $future->on_done(sub {
            my $app_info = shift->data;
            print "Making API calls to: $app_info->{displayName} $app_info->{version}\n";
        });

DESCRIPTION

    This is the main module for the Bitbucket Server API bindings for Perl.

ATTRIBUTES

 base_url

    Get the base URL of the Bitbucket Server host.

 path

    Get the path from the base URL to the APIs. Defaults to "rest".

 username

    Get the username of the user for authenticating.

 password

    Get the password of the user for authenticating.

 ua

    Get the user agent used to make API calls.

    Defaults to HTTP::Tiny.

    Because this API module uses HTTP::AnyUA under the hood, you can
    actually use any user agent supported by HTTP::AnyUA.

 any_ua

    Get the HTTP::AnyUA object.

 json

    Get the JSON (or compatible) object used for encoding and decoding
    documents.

 no_security_warning

    Get whether or not a warning will be issued when an insecure action
    takes place (such as sending credentials unencrypted). Defaults to
    false (i.e. will issue warning).

 core

    Get the WebService::BitbucketServer::Core::V1 api.

 access_tokens

    Get the WebService::BitbucketServer::AccessTokens::V1 api.

 audit

    Get the WebService::BitbucketServer::Audit::V1 api.

 ref_restriction

    Get the WebService::BitbucketServer::RefRestriction::V2 api.

 branch

    Get the WebService::BitbucketServer::Branch::V1 api.

 build

    Get the WebService::BitbucketServer::Build::V1 api.

 comment_likes

    Get the WebService::BitbucketServer::CommentLikes::V1 api.

 default_reviewers

    Get the WebService::BitbucketServer::DefaultReviewers::V1 api.

 git

    Get the WebService::BitbucketServer::Git::V1 api.

 gpg

    Get the WebService::BitbucketServer::GPG::V1 api.

 jira

    Get the WebService::BitbucketServer::Jira::V1 api.

 ssh

    Get the WebService::BitbucketServer::SSH::V1 api.

 mirroring_upstream

    Get the WebService::BitbucketServer::MirroringUpstream::V1 api.

 repository_ref_sync

    Get the WebService::BitbucketServer::RepositoryRefSync::V1 api.

METHODS

 new

        $api = WebService::BitbucketServer->new(base_url => $base_url, %other_attributes);

    Create a new API context object. Provide "ATTRIBUTES" to customize.

 url

        $url = $api->url;

    Get the URL of the APIs (a combination of "base_url" and "path").

 call

        $response = $api->call(method => $method, url => $url, %options);

    Make a request to an API and get a response.

      * url - the endpoint URL, relative to "url"

      * method - the HTTP method

      * data - request data

      * data_type - type of request data, if any (defaults to
      "application/json")

      * raw - get a hashref response instead of a
      WebService::BitbucketServer::Response

 write_api_packages

        WebService::BitbucketServer->write_api_packages;
        WebService::BitbucketServer->write_api_packages(dir => 'lib');

    Download API specifications from https://developer.atlassian.com and
    generate packages for them, writing them to the specified directory.
    You normally don't need this because this module ships with pre-built
    APIs, but you can use this to generate other APIs or versions if
    needed.

    Requires XML::LibXML.

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) 2017 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.