An open API service indexing awesome lists of open source software.

https://github.com/arlac77/repository-provider

abstract interface to git repository providers like github bitbucket
https://github.com/arlac77/repository-provider

git

Last synced: 4 months ago
JSON representation

abstract interface to git repository providers like github bitbucket

Awesome Lists containing this project

README

          

[![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)
[![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)

# repository-provider

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

see list of avaliable implementations below

# 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

### Table of Contents

* [Application](#application)
* [BaseObject](#baseobject)
* [Parameters](#parameters)
* [Properties](#properties)
* [id](#id)
* [description](#description)
* [updateAttributes](#updateattributes)
* [Parameters](#parameters-1)
* [update](#update)
* [toString](#tostring)
* [fullName](#fullname)
* [isWritable](#iswritable)
* [isDisabled](#isdisabled)
* [isTemplate](#istemplate)
* [equals](#equals)
* [Parameters](#parameters-2)
* [type](#type)
* [collectionName](#collectionname)
* [attributes](#attributes)
* [writableAttributes](#writableattributes)
* [BaseProvider](#baseprovider)
* [equals](#equals-1)
* [Parameters](#parameters-3)
* [repositoryBases](#repositorybases)
* [supportsBase](#supportsbase)
* [Parameters](#parameters-4)
* [normalizeRepositoryName](#normalizerepositoryname)
* [Parameters](#parameters-5)
* [normalizeGroupName](#normalizegroupname)
* [Parameters](#parameters-6)
* [areRepositoryNamesCaseSensitive](#arerepositorynamescasesensitive)
* [areGroupNamesCaseSensitive](#aregroupnamescasesensitive)
* [parseName](#parsename)
* [Parameters](#parameters-7)
* [createRepository](#createrepository)
* [Parameters](#parameters-8)
* [list](#list)
* [Parameters](#parameters-9)
* [projects](#projects)
* [Parameters](#parameters-10)
* [milestones](#milestones)
* [Parameters](#parameters-11)
* [repositories](#repositories)
* [Parameters](#parameters-12)
* [branches](#branches)
* [Parameters](#parameters-13)
* [tags](#tags)
* [Parameters](#parameters-14)
* [hooks](#hooks)
* [Parameters](#parameters-15)
* [pullRequests](#pullrequests)
* [Parameters](#parameters-16)
* [name](#name)
* [provider](#provider)
* [toJSON](#tojson)
* [repositoryGroupClassFor](#repositorygroupclassfor)
* [Parameters](#parameters-17)
* [instanceIdentifier](#instanceidentifier)
* [initialize](#initialize)
* [Parameters](#parameters-18)
* [BaseProvider](#baseprovider-1)
* [Parameters](#parameters-19)
* [Properties](#properties-1)
* [equals](#equals-2)
* [Parameters](#parameters-20)
* [repositoryBases](#repositorybases-1)
* [supportsBase](#supportsbase-1)
* [Parameters](#parameters-21)
* [normalizeRepositoryName](#normalizerepositoryname-1)
* [Parameters](#parameters-22)
* [normalizeGroupName](#normalizegroupname-1)
* [Parameters](#parameters-23)
* [areRepositoryNamesCaseSensitive](#arerepositorynamescasesensitive-1)
* [areGroupNamesCaseSensitive](#aregroupnamescasesensitive-1)
* [parseName](#parsename-1)
* [Parameters](#parameters-24)
* [createRepository](#createrepository-1)
* [Parameters](#parameters-25)
* [list](#list-1)
* [Parameters](#parameters-26)
* [projects](#projects-1)
* [Parameters](#parameters-27)
* [milestones](#milestones-1)
* [Parameters](#parameters-28)
* [repositories](#repositories-1)
* [Parameters](#parameters-29)
* [branches](#branches-1)
* [Parameters](#parameters-30)
* [tags](#tags-1)
* [Parameters](#parameters-31)
* [hooks](#hooks-1)
* [Parameters](#parameters-32)
* [pullRequests](#pullrequests-1)
* [Parameters](#parameters-33)
* [name](#name-1)
* [provider](#provider-1)
* [toJSON](#tojson-1)
* [repositoryGroupClassFor](#repositorygroupclassfor-1)
* [Parameters](#parameters-34)
* [instanceIdentifier](#instanceidentifier-1)
* [initialize](#initialize-1)
* [Parameters](#parameters-35)
* [DecodedRepositoryName](#decodedrepositoryname)
* [Properties](#properties-2)
* [MessageDestination](#messagedestination)
* [Properties](#properties-3)
* [name](#name-2)
* [messageDestination](#messagedestination-1)
* [parsedName](#parsedname)
* [Branch](#branch)
* [Parameters](#parameters-36)
* [Properties](#properties-4)
* [url](#url)
* [refType](#reftype)
* [isWritable](#iswritable-1)
* [isDefault](#isdefault)
* [delete](#delete)
* [commit](#commit)
* [Parameters](#parameters-37)
* [commitIntoPullRequest](#commitintopullrequest)
* [Parameters](#parameters-38)
* [removeEntries](#removeentries)
* [Parameters](#parameters-39)
* [createPullRequest](#createpullrequest)
* [Parameters](#parameters-40)
* [createBranch](#createbranch)
* [Parameters](#parameters-41)
* [CommitResult](#commitresult)
* [Parameters](#parameters-42)
* [Properties](#properties-5)
* [Commit](#commit-1)
* [Parameters](#parameters-43)
* [Properties](#properties-6)
* [Hook](#hook)
* [Issue](#issue)
* [Milestone](#milestone)
* [MultiGroupProvider](#multigroupprovider)
* [repository](#repository)
* [Parameters](#parameters-44)
* [branch](#branch-1)
* [Parameters](#parameters-45)
* [repositoryGroup](#repositorygroup)
* [Parameters](#parameters-46)
* [repositoryGroups](#repositorygroups)
* [Parameters](#parameters-47)
* [createRepositoryGroup](#createrepositorygroup)
* [Parameters](#parameters-48)
* [addRepositoryGroup](#addrepositorygroup)
* [Parameters](#parameters-49)
* [NamedObject](#namedobject)
* [Parameters](#parameters-50)
* [Properties](#properties-7)
* [displayName](#displayname)
* [condensedName](#condensedname)
* [fullCondensedName](#fullcondensedname)
* [equals](#equals-3)
* [Parameters](#parameters-51)
* [toJSON](#tojson-2)
* [Parameters](#parameters-52)
* [OwnedObject](#ownedobject)
* [Parameters](#parameters-53)
* [delete](#delete-1)
* [equals](#equals-4)
* [Parameters](#parameters-54)
* [homePageURL](#homepageurl)
* [issuesURL](#issuesurl)
* [isLocked](#islocked)
* [isArchived](#isarchived)
* [isDisabled](#isdisabled-1)
* [api](#api)
* [slug](#slug)
* [url](#url-1)
* [provider](#provider-2)
* [identifier](#identifier)
* [fullName](#fullname-1)
* [trace](#trace)
* [Parameters](#parameters-55)
* [info](#info)
* [Parameters](#parameters-56)
* [warn](#warn)
* [Parameters](#parameters-57)
* [error](#error)
* [Parameters](#parameters-58)
* [debug](#debug)
* [Parameters](#parameters-59)
* [addMethodName](#addmethodname)
* [deleteMethodName](#deletemethodname)
* [OwnedObject](#ownedobject-1)
* [Parameters](#parameters-60)
* [delete](#delete-2)
* [equals](#equals-5)
* [Parameters](#parameters-61)
* [homePageURL](#homepageurl-1)
* [issuesURL](#issuesurl-1)
* [isLocked](#islocked-1)
* [isArchived](#isarchived-1)
* [isDisabled](#isdisabled-2)
* [api](#api-1)
* [slug](#slug-1)
* [url](#url-2)
* [provider](#provider-3)
* [identifier](#identifier-1)
* [fullName](#fullname-2)
* [trace](#trace-1)
* [Parameters](#parameters-62)
* [info](#info-1)
* [Parameters](#parameters-63)
* [warn](#warn-1)
* [Parameters](#parameters-64)
* [error](#error-1)
* [Parameters](#parameters-65)
* [debug](#debug-1)
* [Parameters](#parameters-66)
* [addMethodName](#addmethodname-1)
* [deleteMethodName](#deletemethodname-1)
* [Project](#project)
* [PullRequest](#pullrequest)
* [Parameters](#parameters-67)
* [Properties](#properties-8)
* [source](#source)
* [fullName](#fullname-3)
* [url](#url-3)
* [repository](#repository-1)
* [delete](#delete-3)
* [merge](#merge)
* [Parameters](#parameters-68)
* [decline](#decline)
* [reviews](#reviews)
* [identifier](#identifier-2)
* [defaultListStates](#defaultliststates)
* [states](#states)
* [validMergeMethods](#validmergemethods)
* [list](#list-2)
* [Parameters](#parameters-69)
* [open](#open)
* [Parameters](#parameters-70)
* [state](#state)
* [locked](#locked)
* [merged](#merged)
* [draft](#draft)
* [Ref](#ref)
* [ref](#ref-1)
* [refId](#refid)
* [entries](#entries)
* [Parameters](#parameters-71)
* [asyncIterator](#asynciterator)
* [maybeEntry](#maybeentry)
* [Parameters](#parameters-72)
* [entry](#entry)
* [Parameters](#parameters-73)
* [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-74)
* [asyncIterator](#asynciterator-1)
* [maybeEntry](#maybeentry-1)
* [Parameters](#parameters-75)
* [entry](#entry-1)
* [Parameters](#parameters-76)
* [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-77)
* [Properties](#properties-9)
* [type](#type-1)
* [homePageURL](#homepageurl-2)
* [RepositoryOwner](#repositoryowner)
* [Parameters](#parameters-78)
* [Repository](#repository-4)
* [Parameters](#parameters-79)
* [Properties](#properties-10)
* [slug](#slug-2)
* [url](#url-4)
* [entry](#entry-2)
* [Parameters](#parameters-80)
* [entries](#entries-2)
* [Parameters](#parameters-81)
* [maybeEntry](#maybeentry-2)
* [Parameters](#parameters-82)
* [commits](#commits)
* [Parameters](#parameters-83)
* [cloneURL](#cloneurl)
* [issuesURL](#issuesurl-2)
* [homePageURL](#homepageurl-3)
* [isArchived](#isarchived-2)
* [isLocked](#islocked-2)
* [delete](#delete-4)
* [defaultBranch](#defaultbranch)
* [branch](#branch-2)
* [Parameters](#parameters-84)
* [hasBranches](#hasbranches)
* [branches](#branches-2)
* [Parameters](#parameters-85)
* [createBranch](#createbranch-1)
* [Parameters](#parameters-86)
* [addBranch](#addbranch)
* [Parameters](#parameters-87)
* [deleteBranch](#deletebranch)
* [Parameters](#parameters-88)
* [tag](#tag)
* [Parameters](#parameters-89)
* [tags](#tags-2)
* [Parameters](#parameters-90)
* [addTag](#addtag)
* [Parameters](#parameters-91)
* [\_addTag](#_addtag)
* [Parameters](#parameters-92)
* [createPullRequest](#createpullrequest-1)
* [Parameters](#parameters-93)
* [addPullRequest](#addpullrequest)
* [Parameters](#parameters-94)
* [\_addPullRequest](#_addpullrequest)
* [Parameters](#parameters-95)
* [pullRequests](#pullrequests-2)
* [pullRequest](#pullrequest-1)
* [Parameters](#parameters-96)
* [deletePullRequest](#deletepullrequest)
* [Parameters](#parameters-97)
* [addHook](#addhook)
* [Parameters](#parameters-98)
* [\_addHook](#_addhook)
* [Parameters](#parameters-99)
* [createHook](#createhook)
* [Parameters](#parameters-100)
* [hooks](#hooks-2)
* [hook](#hook-1)
* [Parameters](#parameters-101)
* [\_addMilestone](#_addmilestone)
* [Parameters](#parameters-102)
* [milestone](#milestone-1)
* [Parameters](#parameters-103)
* [\_addProject](#_addproject)
* [Parameters](#parameters-104)
* [project](#project-1)
* [Parameters](#parameters-105)
* [\_addApplication](#_addapplication)
* [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)
* [hooks](#hooks-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**

## BaseObject

Creates an instance of BaseObject.

### Parameters

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

### Properties

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

### 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)?**

### 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)**

### isWritable

By default cannot be written to.

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

### equals

Check for equality

#### Parameters

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

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)**

### writableAttributes

User modifyable attributes.

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

## BaseProvider

**Extends BaseObject**

### equals

#### Parameters

* `other` **any**

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+ssh://github.com
*
* git+
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)**
* `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

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)**
* `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

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)?**
* `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)?**

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

### 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))?**

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))?**

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))?**

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))?**

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))?**

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))?**

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))?**

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)}**

### repositoryGroupClassFor

Retrieve class suitable to hold repository group for name and options

#### Parameters

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

Returns **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)**

### 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

### 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)?**
* `options.messageDestination` **[MessageDestination](#messagedestination)?**
* `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)?**

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

### Properties

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

### equals

#### Parameters

* `other` **any**

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+ssh://github.com
*
* git+
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)**
* `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

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)**
* `forLookup` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**

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)?**
* `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)?**

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

### 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))?**

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))?**

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))?**

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))?**

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))?**

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))?**

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))?**

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)}**

### repositoryGroupClassFor

Retrieve class suitable to hold repository group for name and options

#### Parameters

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

Returns **[Function](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function)**

### 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

### 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)?**
* `options.messageDestination` **[MessageDestination](#messagedestination)?**
* `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)?**
* `group` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**
* `repository` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**
* `branch` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?**

## 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**
* `debug` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**
* `warn` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**
* `error` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**
* `trace` **function ([string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)): void**

## name

Name of the provider.

## 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)**
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

### Properties

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

### 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)\**

### 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)\** content to be commited
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**

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))>**

### 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)**

* `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)>**

### removeEntries

Remove entries form the branch.

#### Parameters

* `entries` **AsyncIterable\**

### createPullRequest

Create a pull request.

#### Parameters

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

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

### 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`

### Properties

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

## Commit

### Parameters

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

### Properties

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

## 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))>**

### 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))>**

### 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))>**

### 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))?**

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)?**

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

### 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)?**

Returns **[RepositoryGroup](#repositorygroup)**

## NamedObject

**Extends BaseObject**

Object with a name.

### Parameters

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

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

### Properties

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

### 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)**

### fullCondensedName

Complete name in the hierachy.

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

### equals

Check for equality.

#### Parameters

* `other` **[NamedObject](#namedobject)**

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.

#### Parameters

* `filter`

## OwnedObject

**Extends NamedObject**

### Parameters

* `owner`
* `name`
* `options`

### delete

Removes the receiver from the owner.

### equals

Check for equality.

#### Parameters

* `other` **[OwnedObject](#ownedobject)**

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)**

### isArchived

Forwarded from the owner.

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

### isDisabled

Forwarded from the owner.

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

### 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)**

### identifier

Short human readable identifier with provider and branch.

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

### 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**

### info

Forwarded to the owner.

#### Parameters

* `args` **...any**

### warn

Forwarded to the owner.

#### Parameters

* `args` **...any**

### error

Forwarded to the owner.

#### Parameters

* `args` **...any**

### debug

Forwarded to the owner.

#### Parameters

* `args` **...any**

### 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)**

### 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)**

## OwnedObject

**Extends NamedObject**

Named Object registering itself in the owner.

### Parameters

* `owner` **[BaseObject](#baseobject)**
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
* `options` **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))**

### delete

Removes the receiver from the owner.

### equals

Check for equality.

#### Parameters

* `other` **[OwnedObject](#ownedobject)**

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)**

### isArchived

Forwarded from the owner.

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

### isDisabled

Forwarded from the owner.

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

### 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)**

### identifier

Short human readable identifier with provider and branch.

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

### 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**

### info

Forwarded to the owner.

#### Parameters

* `args` **...any**

### warn

Forwarded to the owner.

#### Parameters

* `args` **...any**

### error

Forwarded to the owner.

#### Parameters

* `args` **...any**

### debug

Forwarded to the owner.

#### Parameters

* `args` **...any**

### 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)**

### 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)**

## 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)**
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**

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

### Properties

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

### 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)**

### 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)>**

### identifier

Short human readable identifier with provider and branch.

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

### 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)**
* `filter` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?**

* `filter.source` **[Branch](#branch)??**
* `filter.destination` **[Branch](#branch)??**
* `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)>?**

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

### open

Open a pull request

#### Parameters

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

## state

state of the pull request.

* OPEN
* MERGED
* CLOSED

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

## locked

Locked state of the pull request.

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

## merged

Merged state of the pull request.

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

## draft

Draft state of the pull request.

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

## 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))?**

Returns **AsyncGenerator\** all matching entries in the branch

### asyncIterator

List all entries of the branch.

Returns **AsyncGenerator\** 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)**

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))>**

### 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)**

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

### repository

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

Ref owner.
By default we provide the repository owner

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

### 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))?**

Returns **AsyncGenerator\** all matching entries in the branch

### asyncIterator

List all entries of the branch.

Returns **AsyncGenerator\** 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)**

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))>**

### 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)**

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

### repository

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

Ref owner.
By default we provide the repository owner

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

### 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)**

## RepositoryGroup

**Extends RepositoryOwner(OwnedObject)**

Abstract repository collection.

### Parameters

* `provider` **[BaseProvider](#baseprovider)**
* `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)?**

* `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)**
* `name` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

## 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)**

## 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)**
* `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)?**

### Properties

* `owner` **[RepositoryOwner](#repositoryowner)**
* `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)>**
* `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)>**
* `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)>**
* `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)>**

### slug

Name of the repo as used in the URL.

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

### url

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

### entry

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

#### Parameters

* `name`

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

### 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))?**

Returns **AsyncIterable\** 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)**

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))>**

### commits

List commits of the default branch.

#### Parameters

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

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)**

### 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))**

### 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))**

### 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

### 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)\**

### 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)**

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))>**

### 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))?**

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)?**

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)\**

### tag

Get a Tag.

#### Parameters

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

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

### 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))?**

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)?**

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

### \_addTag

#### Parameters

* `tag` **[Tag](#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)?**

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

### addPullRequest

Add a pull request.

#### Parameters

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

Returns **[PullRequest](#pullrequest)**

### \_addPullRequest

#### Parameters

* `pr` **[PullRequest](#pullrequest)**

### 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)**

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))>**

### deletePullRequest

Delete a [PullRequest](#pullrequest).

#### Parameters

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

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

### 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)?**

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

### \_addHook

#### Parameters

* `hook` **[Hook](#hook)**

### createHook

Add a new Hook.

#### Parameters

* `hook` **[Hook](#hook)**

### 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))**

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

### \_addMilestone

#### Parameters

* `milestone` **[Milestone](#milestone)**

### milestone

Get a Milestone.

#### Parameters

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

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

### \_addProject

#### Parameters

* `project` **[Project](#project)**

### project

Get a Project.

#### Parameters

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

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

### \_addApplication

#### Parameters

* `application` **[Application](#application)**

### application

Get an Application.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([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)**

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)**

## 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)>

## hooks

Type: [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)<[Hook](#hook)>

## 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))>**

### repositoryGroup

Get a single group.

#### Parameters

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

Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<([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))**

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)**

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))**
* `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))**
* `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)**
* `pattern` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**

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

# install

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

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

# license

BSD-2-Clause