repository-provider
Version:
abstract interface to git repository providers like github, bitbucket and gitlab
1,284 lines (879 loc) • 90.2 kB
Markdown
[](https://www.npmjs.com/package/repository-provider)
[](https://spdx.org/licenses/0BSD.html)
[](https://bundlejs.com/?q=repository-provider)
[](https://npmjs.org/package/repository-provider)
[](https://github.com/arlac77/repository-provider/issues)
[](https://actions-badge.atrox.dev/arlac77/repository-provider/goto)
[](https://github.com/prettier/prettier)
[](http://commitizen.github.io/cz-cli/)
[](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
<!-- 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)
* [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://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)** 
* `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://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)** 
* `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)\<any>** 
### 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)** 
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\<ContentEntry>** 
### 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