[![npm](https://img.shields.io/npm/v/bitbucket-repository-provider.svg)](https://www.npmjs.com/package/bitbucket-repository-provider)
[![Greenkeeper](https://badges.greenkeeper.io/arlac77/bitbucket-repository-provider.svg)](https://greenkeeper.io/)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/arlac77/bitbucket-repository-provider)
[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![Build Status](https://secure.travis-ci.org/arlac77/bitbucket-repository-provider.png)](http://travis-ci.org/arlac77/bitbucket-repository-provider)
[![codecov.io](http://codecov.io/github/arlac77/bitbucket-repository-provider/coverage.svg?branch=master)](http://codecov.io/github/arlac77/bitbucket-repository-provider?branch=master)
[![Coverage Status](https://coveralls.io/repos/arlac77/bitbucket-repository-provider/badge.svg)](https://coveralls.io/r/arlac77/bitbucket-repository-provider)
[![Known Vulnerabilities](https://snyk.io/test/github/arlac77/bitbucket-repository-provider/badge.svg)](https://snyk.io/test/github/arlac77/bitbucket-repository-provider)
[![GitHub Issues](https://img.shields.io/github/issues/arlac77/bitbucket-repository-provider.svg?style=flat-square)](https://github.com/arlac77/bitbucket-repository-provider/issues)
[![Stories in Ready](https://badge.waffle.io/arlac77/bitbucket-repository-provider.svg?label=ready&title=Ready)](http://waffle.io/arlac77/bitbucket-repository-provider)
[![Dependency Status](https://david-dm.org/arlac77/bitbucket-repository-provider.svg)](https://david-dm.org/arlac77/bitbucket-repository-provider)
[![devDependency Status](https://david-dm.org/arlac77/bitbucket-repository-provider/dev-status.svg)](https://david-dm.org/arlac77/bitbucket-repository-provider#info=devDependencies)
[![docs](http://inch-ci.org/github/arlac77/bitbucket-repository-provider.svg?branch=master)](http://inch-ci.org/github/arlac77/bitbucket-repository-provider)
[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
[![downloads](http://img.shields.io/npm/dm/bitbucket-repository-provider.svg?style=flat-square)](https://npmjs.org/package/bitbucket-repository-provider)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)

# bitbucket-repository-provider

repository provider for bitbucket

# API

<!-- Generated by documentation.js. Update this documentation by updating the source code. -->

### Table of Contents

-   [BitbucketProvider](#bitbucketprovider)
    -   [Parameters](#parameters)
    -   [repositoryClass](#repositoryclass)
    -   [branchClass](#branchclass)
    -   [repositoryGroupClass](#repositorygroupclass)
    -   [analyseURL](#analyseurl)
        -   [Parameters](#parameters-1)
    -   [repository](#repository)
        -   [Parameters](#parameters-2)
    -   [project](#project)
        -   [Parameters](#parameters-3)
    -   [defaultOptions](#defaultoptions)
    -   [optionsFromEnvironment](#optionsfromenvironment)
        -   [Parameters](#parameters-4)
-   [BitbucketBranch](#bitbucketbranch)
    -   [entry](#entry)
        -   [Parameters](#parameters-5)
    -   [createPullRequest](#createpullrequest)
        -   [Parameters](#parameters-6)
    -   [defaultOptions](#defaultoptions-1)
-   [hash](#hash)
-   [BitbucketRepository](#bitbucketrepository)
    -   [Parameters](#parameters-7)
    -   [Properties](#properties)
    -   [urls](#urls)
    -   [homePageURL](#homepageurl)
    -   [issuesURL](#issuesurl)
    -   [createBranch](#createbranch)
        -   [Parameters](#parameters-8)
    -   [deleteBranch](#deletebranch)
        -   [Parameters](#parameters-9)
-   [BitbucketProject](#bitbucketproject)
    -   [defaultOptions](#defaultoptions-2)
-   [api](#api)

## BitbucketProvider

**Extends Provider**

Provider for bitbucket repositories

### Parameters

-   `config` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
    -   `config.url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** provider scm base
    -   `config.api` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** provider api base
    -   `config.auth` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** authentication
        -   `config.auth.type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
        -   `config.auth.username` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
        -   `config.auth.password` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 

### repositoryClass

Returns **Class** BitbucketRepository

### branchClass

Returns **Class** BitbucketBranch

### repositoryGroupClass

Returns **Class** BitbucketProject

### analyseURL

decode URL for a given repo url
provide version 1.0 for stash hosts names and 2.0 for all other

#### Parameters

-   `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** bitbucket (repo)
-   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** api version (optional, default `{version:"2.0"}`)

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** bitbucket api urls by version

### repository

Supported name schemes are

-   <https://user:aSecret@bitbucket.org/owner/repo-name.git>
-   git+<https://user:aSecret@bitbucket.org/owner/repo-name.git>
-   git@bitbucket.org:owner/repo-name.git
-   owner/repo-name

#### Parameters

-   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
-   `options`  

Returns **Repository** 

### project

#### Parameters

-   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
-   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 

### defaultOptions

Default configuration as given for the cloud privider

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 

### optionsFromEnvironment

provide auth info from environment variables
either from
**BITBUCKET_USERNAME** and
**BITBUCKET_PASSWORD**
or
**BITBUCKET_TOKEN** or **BB_TOKEN**

#### Parameters

-   `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** as provided by process.env

Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** undefined if no bitbucket related entries where found

## BitbucketBranch

**Extends Branch**

Branch of a bitbucket repository

### entry

#### Parameters

-   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)&lt;Entry>** 

### createPullRequest

-   **See: {<https://stackoverflow.com/questions/46310751/how-to-create-a-pull-request-in-a-bitbucket-using-api-1-0/46311951#46311951}>**

#### Parameters

-   `to`  
-   `msg`  

### defaultOptions

options

## hash

api url.

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 

## BitbucketRepository

**Extends Repository**

a repository hosted in bitbucket

### Parameters

-   `owner` **Owner** 
-   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
-   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**  (optional, default `{}`)
    -   `options.api` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** 
    -   `options.project` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** 

### Properties

-   `api` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
-   `project` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 
-   `user` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 

### urls

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)&lt;[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** url

### homePageURL

Deliver the url of home page.

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** '.../overwiew'

### issuesURL

Deliver the url of issue tracking system.

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** '.../issues'

### createBranch

-   **See: <https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/refs/branches?_ga=2.65542446.1034690805.1541022941-164225451.1541022941#post>**

Create a new branch

#### Parameters

-   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the new branch to create
-   `from` **[BitbucketBranch](#bitbucketbranch)**  (optional, default `this.defaultBranch`)
-   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**  (optional, default `{}`)
    -   `options.message` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 

### deleteBranch

<https://docs.atlassian.com/bitbucket-server/rest/5.8.0/bitbucket-branch-rest.html#idm45555984542992>
<https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/refs/branches/%7Bname%7D#delete>

#### Parameters

-   `name`  

## BitbucketProject

**Extends RepositoryGroup**

Project of a bitbucket repository

### defaultOptions

options

## api

api url.

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** 

# install

With [npm](http://npmjs.org) do:

```shell
npm install bitbucket-repository-provider
```

# license

BSD-2-Clause
