[![npm](https://img.shields.io/npm/v/repository-provider.svg)](https://www.npmjs.com/package/repository-provider)
[![License](https://img.shields.io/badge/License-0BSD-blue.svg)](https://spdx.org/licenses/0BSD.html)
[![Typed with TypeScript](https://flat.badgen.net/badge/icon/Typed?icon=typescript\&label\&labelColor=blue\&color=555555)](https://typescriptlang.org)
[![bundlejs](https://deno.bundlejs.com/?q=repository-provider\&badge=detailed)](https://bundlejs.com/?q=repository-provider)
[![downloads](http://img.shields.io/npm/dm/repository-provider.svg?style=flat-square)](https://npmjs.org/package/repository-provider)
[![GitHub Issues](https://img.shields.io/github/issues/arlac77/repository-provider.svg?style=flat-square)](https://github.com/arlac77/repository-provider/issues)
[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Farlac77%2Frepository-provider%2Fbadge\&style=flat)](https://actions-badge.atrox.dev/arlac77/repository-provider/goto)
[![Styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)
[![Known Vulnerabilities](https://snyk.io/test/github/arlac77/repository-provider/badge.svg)](https://snyk.io/test/github/arlac77/repository-provider)
[![Coverage Status](https://coveralls.io/repos/arlac77/repository-provider/badge.svg)](https://coveralls.io/github/arlac77/repository-provider)

# repository-provider

abstract interface to git repository providers like github, bitbucket, gitlab, gitea, ...

see list of avaliable implementations below

# Example

<!-- skip-example -->

```es6
import { Provider } from 'repository-provider';

const provider = new Provider({ /* access options as hosts and credentials */ });

const branch = await provider.branch('myuser/myrepo#myBranch');

for await (const entry of branch.entries('**/*.md')) {
  console.log(entry.name);
}

const readme = await branch.entry('README.md');

console.log(await readme.string);
```

# Derived Providers

[list by *repository-provider* keyword](https://www.npmjs.com/browse/keyword/repository-provider)

# API

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

### Table of Contents

*   [Application](#application)
*   [definePropertiesFromOptions](#definepropertiesfromoptions)
    *   [Parameters](#parameters)
*   [defaultValues](#defaultvalues)
    *   [Parameters](#parameters-1)
*   [optionJSON](#optionjson)
    *   [Parameters](#parameters-2)
*   [mapAttributes](#mapattributes)
    *   [Parameters](#parameters-3)
*   [mapAttributesInverse](#mapattributesinverse)
    *   [Parameters](#parameters-4)
*   [default\_attribute](#default_attribute)
*   [default\_attribute](#default_attribute-1)
*   [boolean\_attribute](#boolean_attribute)
*   [boolean\_read\_only\_attribute](#boolean_read_only_attribute)
*   [uuid\_attribute](#uuid_attribute)
*   [empty\_attribute](#empty_attribute)
*   [secret\_attribute](#secret_attribute)
*   [count\_attribute](#count_attribute)
*   [size\_attribute](#size_attribute)
*   [name\_attribute](#name_attribute)
*   [url\_attribute](#url_attribute)
*   [description\_attribute](#description_attribute)
*   [id\_attribute](#id_attribute)
*   [state\_attribute](#state_attribute)
*   [body\_attribute](#body_attribute)
*   [title\_attribute](#title_attribute)
*   [priority\_attribute](#priority_attribute)
*   [active\_attribute](#active_attribute)
*   [language\_attribute](#language_attribute)
*   [type\_attribute](#type_attribute)
*   [BaseObject](#baseobject)
    *   [Parameters](#parameters-5)
    *   [Properties](#properties)
    *   [id](#id)
    *   [description](#description)
    *   [updateAttributes](#updateattributes)
        *   [Parameters](#parameters-6)
    *   [update](#update)
    *   [toString](#tostring)
    *   [fullName](#fullname)
    *   [isWritable](#iswritable)
    *   [equals](#equals)
        *   [Parameters](#parameters-7)
    *   [type](#type)
    *   [collectionName](#collectionname)
    *   [attributes](#attributes)
    *   [writableAttributes](#writableattributes)
    *   [attributeMapping](#attributemapping)
*   [BaseProvider](#baseprovider)
    *   [equals](#equals-1)
        *   [Parameters](#parameters-8)
    *   [repositoryBases](#repositorybases)
    *   [supportsBase](#supportsbase)
        *   [Parameters](#parameters-9)
    *   [normalizeRepositoryName](#normalizerepositoryname)
        *   [Parameters](#parameters-10)
    *   [normalizeGroupName](#normalizegroupname)
        *   [Parameters](#parameters-11)
    *   [areRepositoryNamesCaseSensitive](#arerepositorynamescasesensitive)
    *   [areGroupNamesCaseSensitive](#aregroupnamescasesensitive)
    *   [parseName](#parsename)
        *   [Parameters](#parameters-12)
    *   [createRepository](#createrepository)
        *   [Parameters](#parameters-13)
    *   [list](#list)
        *   [Parameters](#parameters-14)
    *   [projects](#projects)
        *   [Parameters](#parameters-15)
    *   [milestones](#milestones)
        *   [Parameters](#parameters-16)
    *   [repositories](#repositories)
        *   [Parameters](#parameters-17)
    *   [branches](#branches)
        *   [Parameters](#parameters-18)
    *   [tags](#tags)
        *   [Parameters](#parameters-19)
    *   [hooks](#hooks)
        *   [Parameters](#parameters-20)
    *   [pullRequests](#pullrequests)
        *   [Parameters](#parameters-21)
    *   [name](#name)
    *   [provider](#provider)
    *   [toJSON](#tojson)
    *   [instanceIdentifier](#instanceidentifier)
    *   [optionsFromEnvironment](#optionsfromenvironment)
        *   [Parameters](#parameters-22)
    *   [areOptionsSufficcient](#areoptionssufficcient)
        *   [Parameters](#parameters-23)
    *   [initialize](#initialize)
        *   [Parameters](#parameters-24)
*   [BaseProvider](#baseprovider-1)
    *   [Parameters](#parameters-25)
    *   [Properties](#properties-1)
    *   [equals](#equals-2)
        *   [Parameters](#parameters-26)
    *   [repositoryBases](#repositorybases-1)
    *   [supportsBase](#supportsbase-1)
        *   [Parameters](#parameters-27)
    *   [normalizeRepositoryName](#normalizerepositoryname-1)
        *   [Parameters](#parameters-28)
    *   [normalizeGroupName](#normalizegroupname-1)
        *   [Parameters](#parameters-29)
    *   [areRepositoryNamesCaseSensitive](#arerepositorynamescasesensitive-1)
    *   [areGroupNamesCaseSensitive](#aregroupnamescasesensitive-1)
    *   [parseName](#parsename-1)
        *   [Parameters](#parameters-30)
    *   [createRepository](#createrepository-1)
        *   [Parameters](#parameters-31)
    *   [list](#list-1)
        *   [Parameters](#parameters-32)
    *   [projects](#projects-1)
        *   [Parameters](#parameters-33)
    *   [milestones](#milestones-1)
        *   [Parameters](#parameters-34)
    *   [repositories](#repositories-1)
        *   [Parameters](#parameters-35)
    *   [branches](#branches-1)
        *   [Parameters](#parameters-36)
    *   [tags](#tags-1)
        *   [Parameters](#parameters-37)
    *   [hooks](#hooks-1)
        *   [Parameters](#parameters-38)
    *   [pullRequests](#pullrequests-1)
        *   [Parameters](#parameters-39)
    *   [name](#name-1)
    *   [provider](#provider-1)
    *   [toJSON](#tojson-1)
    *   [instanceIdentifier](#instanceidentifier-1)
    *   [optionsFromEnvironment](#optionsfromenvironment-1)
        *   [Parameters](#parameters-40)
    *   [areOptionsSufficcient](#areoptionssufficcient-1)
        *   [Parameters](#parameters-41)
    *   [initialize](#initialize-1)
        *   [Parameters](#parameters-42)
*   [DecodedRepositoryName](#decodedrepositoryname)
    *   [Properties](#properties-2)
*   [MessageDestination](#messagedestination)
    *   [Properties](#properties-3)
*   [name](#name-2)
*   [name](#name-3)
*   [messageDestination](#messagedestination-1)
*   [parsedName](#parsedname)
*   [Branch](#branch)
    *   [Parameters](#parameters-43)
    *   [Properties](#properties-4)
    *   [url](#url)
    *   [refType](#reftype)
    *   [isWritable](#iswritable-1)
    *   [isDefault](#isdefault)
    *   [delete](#delete)
    *   [commit](#commit)
        *   [Parameters](#parameters-44)
    *   [commitIntoPullRequest](#commitintopullrequest)
        *   [Parameters](#parameters-45)
    *   [removeEntries](#removeentries)
        *   [Parameters](#parameters-46)
    *   [createPullRequest](#createpullrequest)
        *   [Parameters](#parameters-47)
    *   [createBranch](#createbranch)
        *   [Parameters](#parameters-48)
*   [CommitResult](#commitresult)
    *   [Parameters](#parameters-49)
    *   [Properties](#properties-5)
*   [Commit](#commit-1)
    *   [Parameters](#parameters-50)
    *   [Properties](#properties-6)
*   [Hook](#hook)
*   [Issue](#issue)
*   [Milestone](#milestone)
*   [MultiGroupProvider](#multigroupprovider)
    *   [repository](#repository)
        *   [Parameters](#parameters-51)
    *   [branch](#branch-1)
        *   [Parameters](#parameters-52)
    *   [repositoryGroup](#repositorygroup)
        *   [Parameters](#parameters-53)
    *   [repositoryGroups](#repositorygroups)
        *   [Parameters](#parameters-54)
    *   [createRepositoryGroup](#createrepositorygroup)
        *   [Parameters](#parameters-55)
    *   [addRepositoryGroup](#addrepositorygroup)
        *   [Parameters](#parameters-56)
*   [NamedObject](#namedobject)
    *   [Parameters](#parameters-57)
    *   [Properties](#properties-7)
    *   [displayName](#displayname)
    *   [condensedName](#condensedname)
    *   [fullCondensedName](#fullcondensedname)
    *   [equals](#equals-3)
        *   [Parameters](#parameters-58)
    *   [toJSON](#tojson-2)
*   [OwnedObject](#ownedobject)
    *   [Parameters](#parameters-59)
    *   [delete](#delete-1)
    *   [equals](#equals-4)
        *   [Parameters](#parameters-60)
    *   [homePageURL](#homepageurl)
    *   [issuesURL](#issuesurl)
    *   [isLocked](#islocked)
    *   [isArchived](#isarchived)
    *   [isDisabled](#isdisabled)
    *   [api](#api)
    *   [slug](#slug)
    *   [url](#url-1)
    *   [provider](#provider-2)
    *   [identifier](#identifier)
    *   [fullName](#fullname-1)
    *   [trace](#trace)
        *   [Parameters](#parameters-61)
    *   [info](#info)
        *   [Parameters](#parameters-62)
    *   [warn](#warn)
        *   [Parameters](#parameters-63)
    *   [error](#error)
        *   [Parameters](#parameters-64)
    *   [debug](#debug)
        *   [Parameters](#parameters-65)
    *   [addMethodName](#addmethodname)
    *   [deleteMethodName](#deletemethodname)
*   [OwnedObject](#ownedobject-1)
    *   [Parameters](#parameters-66)
    *   [delete](#delete-2)
    *   [equals](#equals-5)
        *   [Parameters](#parameters-67)
    *   [homePageURL](#homepageurl-1)
    *   [issuesURL](#issuesurl-1)
    *   [isLocked](#islocked-1)
    *   [isArchived](#isarchived-1)
    *   [isDisabled](#isdisabled-1)
    *   [api](#api-1)
    *   [slug](#slug-1)
    *   [url](#url-2)
    *   [provider](#provider-3)
    *   [identifier](#identifier-1)
    *   [fullName](#fullname-2)
    *   [trace](#trace-1)
        *   [Parameters](#parameters-68)
    *   [info](#info-1)
        *   [Parameters](#parameters-69)
    *   [warn](#warn-1)
        *   [Parameters](#parameters-70)
    *   [error](#error-1)
        *   [Parameters](#parameters-71)
    *   [debug](#debug-1)
        *   [Parameters](#parameters-72)
    *   [addMethodName](#addmethodname-1)
    *   [deleteMethodName](#deletemethodname-1)
*   [Project](#project)
*   [PullRequest](#pullrequest)
    *   [Parameters](#parameters-73)
    *   [Properties](#properties-8)
    *   [source](#source)
    *   [fullName](#fullname-3)
    *   [url](#url-3)
    *   [repository](#repository-1)
    *   [delete](#delete-3)
    *   [merge](#merge)
        *   [Parameters](#parameters-74)
    *   [decline](#decline)
    *   [reviews](#reviews)
    *   [identifier](#identifier-2)
    *   [defaultListStates](#defaultliststates)
    *   [states](#states)
    *   [validMergeMethods](#validmergemethods)
    *   [list](#list-2)
        *   [Parameters](#parameters-75)
    *   [open](#open)
        *   [Parameters](#parameters-76)
*   [state](#state)
*   [locked](#locked)
*   [merged](#merged)
*   [draft](#draft)
*   [Ref](#ref)
    *   [ref](#ref-1)
    *   [refId](#refid)
    *   [entries](#entries)
        *   [Parameters](#parameters-77)
    *   [asyncIterator](#asynciterator)
    *   [maybeEntry](#maybeentry)
        *   [Parameters](#parameters-78)
    *   [entry](#entry)
        *   [Parameters](#parameters-79)
    *   [repository](#repository-2)
    *   [fullName](#fullname-4)
    *   [fullCondensedName](#fullcondensedname-1)
    *   [isProtected](#isprotected)
    *   [isDefault](#isdefault-1)
    *   [attributes](#attributes-1)
*   [Ref](#ref-2)
    *   [ref](#ref-3)
    *   [refId](#refid-1)
    *   [entries](#entries-1)
        *   [Parameters](#parameters-80)
    *   [asyncIterator](#asynciterator-1)
    *   [maybeEntry](#maybeentry-1)
        *   [Parameters](#parameters-81)
    *   [entry](#entry-1)
        *   [Parameters](#parameters-82)
    *   [repository](#repository-3)
    *   [fullName](#fullname-5)
    *   [fullCondensedName](#fullcondensedname-2)
    *   [isProtected](#isprotected-1)
    *   [isDefault](#isdefault-2)
    *   [attributes](#attributes-2)
*   [isProtected](#isprotected-2)
*   [RepositoryGroup](#repositorygroup-1)
    *   [Parameters](#parameters-83)
    *   [Properties](#properties-9)
    *   [attributeMapping](#attributemapping-1)
*   [type](#type-1)
*   [homePageURL](#homepageurl-2)
*   [RepositoryOwner](#repositoryowner)
    *   [Parameters](#parameters-84)
*   [Repository](#repository-4)
    *   [Parameters](#parameters-85)
    *   [Properties](#properties-10)
    *   [slug](#slug-2)
    *   [url](#url-4)
    *   [entry](#entry-2)
        *   [Parameters](#parameters-86)
    *   [entries](#entries-2)
        *   [Parameters](#parameters-87)
    *   [maybeEntry](#maybeentry-2)
        *   [Parameters](#parameters-88)
    *   [commits](#commits)
        *   [Parameters](#parameters-89)
    *   [cloneURL](#cloneurl)
    *   [issuesURL](#issuesurl-2)
    *   [homePageURL](#homepageurl-3)
    *   [isArchived](#isarchived-2)
    *   [isLocked](#islocked-2)
    *   [isDisabled](#isdisabled-2)
    *   [isTemplate](#istemplate)
    *   [delete](#delete-4)
    *   [defaultBranch](#defaultbranch)
    *   [branch](#branch-2)
        *   [Parameters](#parameters-90)
    *   [hasBranches](#hasbranches)
    *   [branches](#branches-2)
        *   [Parameters](#parameters-91)
    *   [createBranch](#createbranch-1)
        *   [Parameters](#parameters-92)
    *   [addBranch](#addbranch)
        *   [Parameters](#parameters-93)
    *   [deleteBranch](#deletebranch)
        *   [Parameters](#parameters-94)
    *   [tag](#tag)
        *   [Parameters](#parameters-95)
    *   [tags](#tags-2)
        *   [Parameters](#parameters-96)
    *   [addTag](#addtag)
        *   [Parameters](#parameters-97)
    *   [createPullRequest](#createpullrequest-1)
        *   [Parameters](#parameters-98)
    *   [addPullRequest](#addpullrequest)
        *   [Parameters](#parameters-99)
    *   [pullRequests](#pullrequests-2)
    *   [pullRequest](#pullrequest-1)
        *   [Parameters](#parameters-100)
    *   [deletePullRequest](#deletepullrequest)
        *   [Parameters](#parameters-101)
    *   [addHook](#addhook)
        *   [Parameters](#parameters-102)
    *   [createHook](#createhook)
        *   [Parameters](#parameters-103)
    *   [hooks](#hooks-2)
    *   [hook](#hook-1)
        *   [Parameters](#parameters-104)
    *   [milestone](#milestone-1)
        *   [Parameters](#parameters-105)
    *   [project](#project-1)
        *   [Parameters](#parameters-106)
    *   [application](#application-1)
        *   [Parameters](#parameters-107)
    *   [type](#type-2)
    *   [refId](#refid-2)
        *   [Parameters](#parameters-108)
    *   [attributes](#attributes-3)
*   [defaultBranchName](#defaultbranchname)
*   [branches](#branches-3)
*   [tags](#tags-3)
*   [projects](#projects-2)
*   [applications](#applications)
*   [milestones](#milestones-2)
*   [pullRequests](#pullrequests-3)
*   [Review](#review)
*   [SingleGroupProvider](#singlegroupprovider)
    *   [repository](#repository-5)
        *   [Parameters](#parameters-109)
    *   [repositoryGroup](#repositorygroup-2)
        *   [Parameters](#parameters-110)
    *   [repositoryGroups](#repositorygroups-1)
        *   [Parameters](#parameters-111)
*   [Tag](#tag-1)
    *   [refType](#reftype-1)
*   [asArray](#asarray)
    *   [Parameters](#parameters-112)
*   [stripBaseName](#stripbasename)
    *   [Parameters](#parameters-113)
*   [stripBaseNames](#stripbasenames)
    *   [Parameters](#parameters-114)
*   [generateBranchName](#generatebranchname)
    *   [Parameters](#parameters-115)

## Application

**Extends OwnedObject**

## definePropertiesFromOptions

*   **See**: Object.definedProperties()
*   **See**: Object.getOwnPropertyDescriptor()

Create properties from options and default options.
Already present properties (direct) are skipped.
The attribute list from the class will be applied to the
options and merged with the given set of properties.

```js
class aClass {
  static get attributes() {
    return { with_default: { default: 77 }};
  }
}

definePropertiesFromOptions(new aClass());
// equivalent to
Object.definedProperties(new aClass(),{ with_default: { value: 77 }})
```

### Parameters

*   `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** target object
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** as passed to object constructor. Used as values for the attributes. (optional, default `{}`)
*   `properties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** object properties (optional, default `{}`)
*   `attributes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** attribute meta info (optional, default `object.constructor.attributes`)

## defaultValues

Get default values.

### Parameters

*   `attributes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;
*   `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

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

## optionJSON

Create json based on present options.
In other words only produce key value pairs if value is defined.

### Parameters

*   `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;
*   `initial` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**  (optional, default `{}`)
*   `attributes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** to operator on (optional, default `object.constructor.attributes`)

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

## mapAttributes

Rename attributes.
Filters out null, undefined and empty strings.

```js
mapAttributes({a:1},{a:"a'"}) // {"a'": 1}
```

### Parameters

*   `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;
*   `mapping` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

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

## mapAttributesInverse

Same as mapAttributes but with the inverse mapping.
Filters out null, undefined and empty strings

### Parameters

*   `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;
*   `mapping` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

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

## default\_attribute

## default\_attribute

Common attribute properties.

Type: AttributeDefinition

## boolean\_attribute

Type: AttributeDefinition

## boolean\_read\_only\_attribute

Type: AttributeDefinition

## uuid\_attribute

Type: AttributeDefinition

## empty\_attribute

Type: AttributeDefinition

## secret\_attribute

Type: AttributeDefinition

## count\_attribute

Type: AttributeDefinition

## size\_attribute

Type: AttributeDefinition

## name\_attribute

Type: AttributeDefinition

## url\_attribute

Type: AttributeDefinition

## description\_attribute

The description of the object content.

Type: AttributeDefinition

## id\_attribute

Unique id within the provider.

Type: AttributeDefinition

## state\_attribute

Type: AttributeDefinition

## body\_attribute

The body text of the pull request.

Type: AttributeDefinition

## title\_attribute

The one line description of the pull request.

Type: AttributeDefinition

## priority\_attribute

In case there are several providers able to support a given source which one sould be used ?
this defines the order.

Type: AttributeDefinition

## active\_attribute

Type: AttributeDefinition

## language\_attribute

Type: AttributeDefinition

## type\_attribute

Type: AttributeDefinition

## BaseObject

Creates an instance of BaseObject.

### Parameters

*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;
*   `additionalProperties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

### Properties

*   `id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;

### id

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

### description

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

### updateAttributes

Takes values from options.

#### Parameters

*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;
*   `additionalProperties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

### update

Save object attributes in the backing store.

### toString

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

### fullName

Complete name in the hierachy.

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

### isWritable

By default cannot be written to.

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

### equals

Check for equality

#### Parameters

*   `other` **([BaseObject](#baseobject) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if other is present

### type

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

### collectionName

    Tag -> tags
    Repository -> repositories

Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** name of the collection holding us in the owner

### attributes

Attributes definitions.

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

### writableAttributes

User modifyable attributes.

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

### attributeMapping

Map attributes between external and internal representation.

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

## BaseProvider

**Extends BaseObject**

### equals

#### Parameters

*   `other` **any**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if other provider is the same as the receiver

### repositoryBases

All supported base urls.
For github something like:

*   <git@github.com>
*   git://github.com
*   git+ssh://github.com
*   <https://github.com>
*   git+<https://github.com>
    By default we provide provider name with ':'.

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** common base urls of all repositories

### supportsBase

Does the provider support the base name.

#### Parameters

*   `base` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** to be checked

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if base is supported or base is undefined

### normalizeRepositoryName

Bring a repository name into its normal form by removing any clutter.
Like .git suffix or #branch names.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

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

### normalizeGroupName

Bring a group name into its normal form by removing any clutter.
Like .git suffix or #branch names.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

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

### areRepositoryNamesCaseSensitive

Are repository names case sensitive.
Overwrite and return false if you want to have case insensitive repository lookup.

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

### areGroupNamesCaseSensitive

Are repositroy group names case sensitive.
Overwrite and return false if you want to have case insensitive group lookup.

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

### parseName

Parses repository name and tries to split it into
base, group, repository and branch.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `focus` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** where lies the focus if only one path component is given (optional, default `"repository"`)

Returns **[DecodedRepositoryName](#decodedrepositoryname)** result

### createRepository

Create a repository.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of group and repository
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Repository](#repository)>**&#x20;

### list

List provider objects of a given type.

#### Parameters

*   `type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** name of the method to deliver typed iterator projects,milestones,hooks,repositories,branches,tags
*   `patterns` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** group / repository filter

Returns **AsyncIterable<([Repository](#repository) | [PullRequest](#pullrequest) | [Branch](#branch) | [Tag](#tag) | [Project](#project) | [Milestone](#milestone) | [Hook](#hook))>** all matching repositories of the providers

### projects

List projects.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Project](#project)>** all matching projects of the provider

### milestones

List milestones.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Milestone](#milestone)>** all matching milestones of the provider

### repositories

List repositories.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Repository](#repository)>** all matching repos of the provider

### branches

List branches.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Branch](#branch)>** all matching branches of the provider

### tags

List tags.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Tag](#tag)>** all matching tags of the provider

### hooks

List hooks.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Hook](#hook)>** all matching hooks of the provider

### pullRequests

List pull requests.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[PullRequest](#pullrequest)>** all matching pullRequests of the provider

### name

Deliver the provider name.

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

### provider

We are our own provider.

Returns **[BaseProvider](#baseprovider)** this

### toJSON

List all defined entries from attributes.

Returns **{name: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}**&#x20;

### instanceIdentifier

Prefix used to form environment variables.
'GITHUB\_' -> 'GITHUB\_TOKEN'

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

### optionsFromEnvironment

Extract options suitable for the constructor.
Form the given set of environment variables.
Object with the detected key value pairs is delivered.

#### Parameters

*   `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** as from process.env
*   `instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** part of variable name. (optional, default `this.instanceIdentifier`)

Returns **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** undefined if no suitable environment variables have been found

### areOptionsSufficcient

Check if given options are sufficient to create a provider.

#### Parameters

*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if options ar sufficient to construct a provider

### initialize

Creates a new provider for a given set of options.

#### Parameters

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

    *   `options.instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** name of the provider instance
    *   `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** taken from process.env

Returns **([BaseProvider](#baseprovider) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** newly created provider or undefined if options are not sufficient to construct a provider

## BaseProvider

**Extends BaseObject**

### Parameters

*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

    *   `options.url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
    *   `options.messageDestination` **[MessageDestination](#messagedestination)?**&#x20;

### Properties

*   `messageDestination` **[MessageDestination](#messagedestination)**&#x20;
*   `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `api` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

### equals

#### Parameters

*   `other` **any**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if other provider is the same as the receiver

### repositoryBases

All supported base urls.
For github something like:

*   <git@github.com>
*   git://github.com
*   git+ssh://github.com
*   <https://github.com>
*   git+<https://github.com>
    By default we provide provider name with ':'.

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** common base urls of all repositories

### supportsBase

Does the provider support the base name.

#### Parameters

*   `base` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** to be checked

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if base is supported or base is undefined

### normalizeRepositoryName

Bring a repository name into its normal form by removing any clutter.
Like .git suffix or #branch names.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

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

### normalizeGroupName

Bring a group name into its normal form by removing any clutter.
Like .git suffix or #branch names.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

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

### areRepositoryNamesCaseSensitive

Are repository names case sensitive.
Overwrite and return false if you want to have case insensitive repository lookup.

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

### areGroupNamesCaseSensitive

Are repositroy group names case sensitive.
Overwrite and return false if you want to have case insensitive group lookup.

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

### parseName

Parses repository name and tries to split it into
base, group, repository and branch.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `focus` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** where lies the focus if only one path component is given (optional, default `"repository"`)

Returns **[DecodedRepositoryName](#decodedrepositoryname)** result

### createRepository

Create a repository.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of group and repository
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Repository](#repository)>**&#x20;

### list

List provider objects of a given type.

#### Parameters

*   `type` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** name of the method to deliver typed iterator projects,milestones,hooks,repositories,branches,tags
*   `patterns` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** group / repository filter

Returns **AsyncIterable<([Repository](#repository) | [PullRequest](#pullrequest) | [Branch](#branch) | [Tag](#tag) | [Project](#project) | [Milestone](#milestone) | [Hook](#hook))>** all matching repositories of the providers

### projects

List projects.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Project](#project)>** all matching projects of the provider

### milestones

List milestones.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Milestone](#milestone)>** all matching milestones of the provider

### repositories

List repositories.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Repository](#repository)>** all matching repos of the provider

### branches

List branches.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Branch](#branch)>** all matching branches of the provider

### tags

List tags.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Tag](#tag)>** all matching tags of the provider

### hooks

List hooks.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[Hook](#hook)>** all matching hooks of the provider

### pullRequests

List pull requests.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[PullRequest](#pullrequest)>** all matching pullRequests of the provider

### name

Deliver the provider name.

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

### provider

We are our own provider.

Returns **[BaseProvider](#baseprovider)** this

### toJSON

List all defined entries from attributes.

Returns **{name: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)}**&#x20;

### instanceIdentifier

Prefix used to form environment variables.
'GITHUB\_' -> 'GITHUB\_TOKEN'

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

### optionsFromEnvironment

Extract options suitable for the constructor.
Form the given set of environment variables.
Object with the detected key value pairs is delivered.

#### Parameters

*   `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** as from process.env
*   `instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** part of variable name. (optional, default `this.instanceIdentifier`)

Returns **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** undefined if no suitable environment variables have been found

### areOptionsSufficcient

Check if given options are sufficient to create a provider.

#### Parameters

*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if options ar sufficient to construct a provider

### initialize

Creates a new provider for a given set of options.

#### Parameters

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

    *   `options.instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** name of the provider instance
    *   `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** taken from process.env

Returns **([BaseProvider](#baseprovider) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** newly created provider or undefined if options are not sufficient to construct a provider

## DecodedRepositoryName

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

### Properties

*   `base` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `group` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `repository` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `branch` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;

## MessageDestination

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

### Properties

*   `info` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**&#x20;
*   `debug` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**&#x20;
*   `warn` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**&#x20;
*   `error` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**&#x20;
*   `trace` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**&#x20;

## name

Name of the provider.

## name

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

## messageDestination

To forward info/warn and error messages to

## parsedName

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

## Branch

*   **See**: [Repository#\_addBranch](Repository#_addBranch)

Abstract branch.

### Parameters

*   `owner` **[RepositoryOwner](#repositoryowner)**&#x20;
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

### Properties

*   `repository` **[Repository](#repository)**&#x20;
*   `provider` **Provider**&#x20;
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

### url

Deliver repository and branch url combined.

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

### refType

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

### isWritable

Returns **any** true if not [isArchived](isArchived) and [isDisabled](isDisabled) and [isLocked](isLocked) and [isProtected](#isprotected)

### isDefault

Are we the default branch.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if name matches the repository default branch

### delete

*   **See**: [Repository#deleteBranch](#repositorydeletebranch)

Delete the branch from the [Repository](#repository).

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<any>**&#x20;

### commit

Commit entries.

#### Parameters

*   `message` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** commit message
*   `updates` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\<ContentEntry>** content to be commited
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([CommitResult](#commitresult) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### commitIntoPullRequest

Add commits into a pull request.

#### Parameters

*   `commits` **([Commit](#commit) | AsyncGenerator<[Commit](#commit)>)** to be commited
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

    *   `options.pullRequestBranch` **([Branch](#branch) | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))** to commit into
    *   `options.dry` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** do not create a branch and do not commit only create dummy PR (optional, default `false`)
    *   `options.skipWithoutCommits` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** do not create a PR if no commits are given
    *   `options.bodyFromCommitMessages` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** generate body from commit messages
    *   `options.body` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** body of the PR

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[PullRequest](#pullrequest)>**&#x20;

### removeEntries

Remove entries form the branch.

#### Parameters

*   `entries` **AsyncIterable\<ContentEntry>**&#x20;

### createPullRequest

Create a pull request.

#### Parameters

*   `toBranch` **[Branch](#branch)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[PullRequest](#pullrequest)>**&#x20;

### createBranch

Create a new [Branch](#branch) by cloning a given source branch.
Simply calls Repository.createBranch() with the receiver as source branch

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** the new branch
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** passed through

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Branch](#branch)>** newly created branch (or already present old one with the same name)

## CommitResult

### Parameters

*   `ref` &#x20;

### Properties

*   `ref` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

## Commit

### Parameters

*   `repository` **[Repository](#repository)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**&#x20;

### Properties

*   `repository` **[Repository](#repository)**&#x20;
*   `message` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `sha` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `author` **User**&#x20;
*   `committer` **User**&#x20;

## Hook

**Extends OwnedObject**

Repository hook.

## Issue

**Extends OwnedObject**

## Milestone

**Extends OwnedObject**

## MultiGroupProvider

**Extends BaseProvider**

Provider supporting serveral repository groups.

### repository

Lookup a repository in the provider and all of its repository groups.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Repository](#repository) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### branch

Lookup a branch.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Branch](#branch) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### repositoryGroup

Lookup a repository group.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([RepositoryGroup](#repositorygroup) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### repositoryGroups

List groups.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable<[RepositoryGroup](#repositorygroup)>** all matching repositories groups of the provider

### createRepositoryGroup

Create a new repository group.
If there is already a group for the given name it will be returend instead

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the group
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[RepositoryGroup](#repositorygroup)>**&#x20;

### addRepositoryGroup

Add a new repository group (not provider specific actions are executed).

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the group
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[RepositoryGroup](#repositorygroup)**&#x20;

## NamedObject

**Extends BaseObject**

Object with a name.

### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

    *   `options.id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
    *   `options.name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
    *   `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `additionalProperties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

### Properties

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

### displayName

Beautified name use for human displaying only.

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

### condensedName

Name with default parts removed

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

### fullCondensedName

Complete name in the hierachy.

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

### equals

Check for equality.

#### Parameters

*   `other` **[NamedObject](#namedobject)**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if names are equal and have the same provider

### toJSON

Provided name and all defined attributes.

## OwnedObject

**Extends NamedObject**

### Parameters

*   `owner` &#x20;
*   `name` &#x20;
*   `options` &#x20;
*   `additionalProperties` &#x20;

### delete

Removes the receiver from the owner.

### equals

Check for equality.

#### Parameters

*   `other` **[OwnedObject](#ownedobject)**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if receiver and owner are equal

### homePageURL

*   **See**: [Repository#homePageURL](#repositoryhomepageurl)

Url of home page.

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** as provided from the owner

### issuesURL

*   **See**: [Repository#issuesURL](#repositoryissuesurl)

Url of issue tracking system.

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** as provided from the repository

### isLocked

Forwarded from the owner.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

### isArchived

Forwarded from the owner.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

### isDisabled

Forwarded from the owner.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

### api

API as given by the owner.

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

### slug

API as given by the owner.

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

### url

URL as given by the owner.

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

### provider

The provider we live in.

Returns **[BaseProvider](#baseprovider)**&#x20;

### identifier

Short human readable identifier with provider and branch.

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

### fullName

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

### trace

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### info

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### warn

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### error

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### debug

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### addMethodName

Method name to be called to register one instance in the owner.
sample: Application => \_addApplication

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

### deleteMethodName

Method name to be called to unregister one instance in the owner.
sample: Application => \_deleteApplication

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

## OwnedObject

**Extends NamedObject**

Named Object registering itself in the owner.

### Parameters

*   `owner` &#x20;
*   `name` &#x20;
*   `options` &#x20;
*   `additionalProperties` &#x20;

### delete

Removes the receiver from the owner.

### equals

Check for equality.

#### Parameters

*   `other` **[OwnedObject](#ownedobject)**&#x20;

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if receiver and owner are equal

### homePageURL

*   **See**: [Repository#homePageURL](#repositoryhomepageurl)

Url of home page.

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** as provided from the owner

### issuesURL

*   **See**: [Repository#issuesURL](#repositoryissuesurl)

Url of issue tracking system.

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** as provided from the repository

### isLocked

Forwarded from the owner.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

### isArchived

Forwarded from the owner.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

### isDisabled

Forwarded from the owner.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

### api

API as given by the owner.

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

### slug

API as given by the owner.

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

### url

URL as given by the owner.

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

### provider

The provider we live in.

Returns **[BaseProvider](#baseprovider)**&#x20;

### identifier

Short human readable identifier with provider and branch.

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

### fullName

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

### trace

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### info

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### warn

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### error

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### debug

Forwarded to the owner.

#### Parameters

*   `args` **...any**&#x20;

### addMethodName

Method name to be called to register one instance in the owner.
sample: Application => \_addApplication

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

### deleteMethodName

Method name to be called to unregister one instance in the owner.
sample: Application => \_deleteApplication

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

## Project

**Extends OwnedObject**

## PullRequest

**Extends OwnedObject**

Abstract pull request.
[Repository#addPullRequest](#repositoryaddpullrequest)

### Parameters

*   `source` **[Branch](#branch)** merge source
*   `owner` **[Branch](#branch)** merge target
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

    *   `options.title` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
    *   `options.state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
    *   `options.merged` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**&#x20;
    *   `options.locked` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**&#x20;

### Properties

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `source` **[Branch](#branch)**&#x20;
*   `destination` **[Branch](#branch)**&#x20;
*   `title` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `state` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**&#x20;
*   `merged` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**&#x20;
*   `locked` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?**&#x20;
*   `url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

### source

Type: [Branch](#branch)

### fullName

Name of the PR together with the repository.

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

### url

URL of the pull request.

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

### repository

Returns **[Repository](#repository)** destination repository

### delete

*   **See**: [Repository#deletePullRequest](#repositorydeletepullrequest)

Delete the pull request from the [Repository](#repository).

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

### merge

Merge the pull request.

#### Parameters

*   `method` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**  (optional, default `"MERGE"`)

### decline

Decline the pull request.

### reviews

Returns **AsyncIterable<[Review](#review)>**&#x20;

### identifier

Short human readable identifier with provider and branch.

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

### defaultListStates

States to list pull request by default

Returns **[Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** states to list by default

### states

possible states

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

### validMergeMethods

All valid merge methods

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

Returns **[Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** valid merge methods.

### list

List all pull request for a given repo.
Result will be filtered by source branch, destination branch and states

#### Parameters

*   `repository` **[Repository](#repository)**&#x20;
*   `filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

    *   `filter.source` **[Branch](#branch)??**&#x20;
    *   `filter.destination` **[Branch](#branch)??**&#x20;
    *   `filter.states` **[Set](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Set)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>?**&#x20;

Returns **AsyncIterable<[PullRequest](#pullrequest)>**&#x20;

### open

Open a pull request

#### Parameters

*   `source` **[Branch](#branch)**&#x20;
*   `destination` **[Branch](#branch)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

## state

state of the pull request.

*   OPEN
*   MERGED
*   CLOSED

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

## locked

Locked state of the pull request.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

## merged

Merged state of the pull request.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

## draft

Draft state of the pull request.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

## Ref

**Extends OwnedObject**

### ref

Full ref path.

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

### refId

Get sha of our ref.

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** sha of the ref

### entries

List entries of the branch.

#### Parameters

*   `matchingPatterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncGenerator\<ContentEntry>** all matching entries in the branch

### asyncIterator

List all entries of the branch.

Returns **AsyncGenerator\<ContentEntry>** all entries in the branch

### maybeEntry

Get exactly one matching entry by name or undefine if no such entry is found.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<(ContentEntry | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### entry

Get exactly one matching entry by name (throws if entry is not found).

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<ContentEntry>**&#x20;

### repository

*   **See**: [Repository#owner](Repository#owner)

Ref owner.
By default we provide the repository owner

Returns **[Repository](#repository)**&#x20;

### fullName

Repository and branch name combined.

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

### fullCondensedName

Repository fullName and branch name combined.
But skipping the branch name if it is the default branch.

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

### isProtected

Returns **any** false

### isDefault

Are we the default ref.

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

### attributes

Attributes

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

## Ref

**Extends OwnedObject**

Base for Branch and Tag

### ref

Full ref path.

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

### refId

Get sha of our ref.

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** sha of the ref

### entries

List entries of the branch.

#### Parameters

*   `matchingPatterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncGenerator\<ContentEntry>** all matching entries in the branch

### asyncIterator

List all entries of the branch.

Returns **AsyncGenerator\<ContentEntry>** all entries in the branch

### maybeEntry

Get exactly one matching entry by name or undefine if no such entry is found.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<(ContentEntry | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### entry

Get exactly one matching entry by name (throws if entry is not found).

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<ContentEntry>**&#x20;

### repository

*   **See**: [Repository#owner](Repository#owner)

Ref owner.
By default we provide the repository owner

Returns **[Repository](#repository)**&#x20;

### fullName

Repository and branch name combined.

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

### fullCondensedName

Repository fullName and branch name combined.
But skipping the branch name if it is the default branch.

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

### isProtected

Returns **any** false

### isDefault

Are we the default ref.

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

### attributes

Attributes

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

## isProtected

Can the ref be modified.

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**&#x20;

## RepositoryGroup

**Extends RepositoryOwner(OwnedObject)**

Abstract repository collection.

### Parameters

*   `provider` **[BaseProvider](#baseprovider)**&#x20;
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the group
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

    *   `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** human readable description
    *   `options.id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** internal id
    *   `options.url` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** home

### Properties

*   `provider` **[BaseProvider](#baseprovider)**&#x20;
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

### attributeMapping

Map attributes between external and internal representation.

## type

Type of the repository group either User or Organization.

## homePageURL

The url of home page.

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

## RepositoryOwner

Mixin to define a class able to handle a collection of repositories.

### Parameters

*   `base` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** to be extendet

## Repository

**Extends OwnedObject**

Abstract repository

### Parameters

*   `owner` **[RepositoryOwner](#repositoryowner)**&#x20;
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** (#branch) will be removed
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;
*   `additionalProperties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

### Properties

*   `owner` **[RepositoryOwner](#repositoryowner)**&#x20;
*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** without (#branch)
*   `description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** from options.description
*   `id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** from options.id
*   `branches` **[Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Branch](#branch)>**&#x20;
*   `tags` **[Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Tag](#tag)>**&#x20;
*   `pullRequests` **[Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [PullRequest](#pullrequest)>**&#x20;
*   `milestones` **[Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Milestone](#milestone)>**&#x20;

### slug

Name of the repo as used in the URL.

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

### url

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

### entry

Lookup entries form the head of the default branch.
[Branch#entry](Branch#entry)

#### Parameters

*   `name` &#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<ContentEntry>**&#x20;

### entries

List entries of the default branch.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncIterable\<ContentEntry>** all matching entries in the branch

### maybeEntry

Get exactly one matching entry by name or undefined if no such entry is found.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<(ContentEntry | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### commits

List commits of the default branch.

#### Parameters

*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **AsyncIterable<[Commit](#commit)>** all matching commits in the repository

### cloneURL

The url used for cloning the repo.

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

### issuesURL

The url of issue tracking system.

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

### homePageURL

The url of home page.

Returns **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

### isArchived

By default we are not archived.

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

### isLocked

By default we are not locked.

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

### isDisabled

By default we are not disabled.

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

### isTemplate

By default we are not a template.

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

### delete

Delete the repository from the [Provider](Provider).
[Provider#deleteRepository](Provider#deleteRepository)

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<any>**&#x20;

### defaultBranch

Lookup the default branch.

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Branch](#branch) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** branch named after defaultBranchName

### branch

Lookup branch by name.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Branch](#branch) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### hasBranches

Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if there is at least one branch

### branches

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncGenerator<[Branch](#branch)>** of all branches

### createBranch

Create a new [Branch](#branch) by cloning a given source branch.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the new branch
*   `source` **[Branch](#branch)** branch defaults to the defaultBranch
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Branch](#branch)>** newly created branch (or already present old one with the same name)

### addBranch

Add a new [Branch](#branch).
Internal branch creation does not call repository.initialize()

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the new branch
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** to be passed to the branch

Returns **[Branch](#branch)** newly created branch or already present one for the given name

### deleteBranch

Delete a [Branch](#branch).

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<any>**&#x20;

### tag

Get a Tag.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[Tag](#tag)>**&#x20;

### tags

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String))?**&#x20;

Returns **AsyncGenerator<[Tag](#tag)>** of all tags

### addTag

Add a new [Tag](#tag).
Internal tag creation does not call repository.initialize()

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the new tag
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Tag](#tag)** newly created tag

### createPullRequest

Create a pull request (or deliver an already present for the given name).

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the pr
*   `source` **[Branch](#branch)** branch
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[PullRequest](#pullrequest)>**&#x20;

### addPullRequest

Add a pull request.

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;
*   `source` **[Branch](#branch)**&#x20;
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[PullRequest](#pullrequest)**&#x20;

### pullRequests

Deliver all [PullRequest](#pullrequest)s.

Returns **AsyncGenerator<[PullRequest](#pullrequest)>** of all pull requests

### pullRequest

The @see [PullRequest](#pullrequest) for a given name.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([PullRequest](#pullrequest) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### deletePullRequest

Delete a [PullRequest](#pullrequest).

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\<any>**&#x20;

### addHook

Add a new [Hook](#hook).

#### Parameters

*   `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** of the new hoook name
*   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**&#x20;

Returns **[Hook](#hook)** newly created hook

### createHook

Add a new Hook.

#### Parameters

*   `hook` **[Hook](#hook)**&#x20;

### hooks

List hooks.

Returns **AsyncGenerator<[Hook](#hook)>** all hooks of the repository

### hook

Get a Hook.

#### Parameters

*   `id` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number))**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Hook](#hook) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** for the given id

### milestone

Get a Milestone.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Milestone](#milestone) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** for the given name

### project

Get a Project.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Project](#project) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** for the given name

### application

Get an Application.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Application](#application) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** for the given name

### type

Get type of the repository.

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

### refId

Get sha of a ref.

#### Parameters

*   `ref` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** sha of the ref

### attributes

options

## defaultBranchName

The name of the default branch

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

## branches

Type: [Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Branch](#branch)>

## tags

Type: [Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Tag](#tag)>

## projects

Type: [Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Project](#project)>

## applications

Type: [Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Application](#application)>

## milestones

Type: [Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [Milestone](#milestone)>

## pullRequests

Type: [Map](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Map)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String), [PullRequest](#pullrequest)>

## Review

**Extends OwnedObject**

## SingleGroupProvider

**Extends RepositoryOwner(BaseProvider)**

Provider holding a single set of repositories (no repository groups).

### repository

Lookup a repository in the provider and all of its repository groups.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([Repository](#repository) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>**&#x20;

### repositoryGroup

Get a single group.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([RepositoryGroup](#repositorygroup) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))>** deliver the one and only present group

### repositoryGroups

List groups.

#### Parameters

*   `patterns` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;

Returns **AsyncIterable<[RepositoryGroup](#repositorygroup)>** always deliver the one and only present group

## Tag

**Extends Ref**

Tag refs

### refType

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

## asArray

Convert scalar into an array.
The value undefined will be represented as an empty array.

### Parameters

*   `value` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array) | any)**&#x20;

Returns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)** value encapsulated in an array

## stripBaseName

Strip repository base name away.
A URL auth component will be removed to.

### Parameters

*   `name` **([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;
*   `repositoryBases` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** all possible bases
*   `whenFound` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void?** to be called with the found base name

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

## stripBaseNames

Loops over names and executes stripBaseName.

### Parameters

*   `names` **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**&#x20;
*   `repositoryBases` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>** all possible bases
*   `whenFound` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void?** to be called with the found base name

Returns **([Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)> | [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** names without base

## generateBranchName

Find a new branch name for a given pattern.
'*' will be replaced by a number.
'something/*' will get to something/1 something/2 ...

### Parameters

*   `repository` **[Repository](#repository)**&#x20;
*   `pattern` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**&#x20;

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)>**&#x20;

# install

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

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

# license

BSD-2-Clause
