repository-provider
Version:
abstract interface to git repository providers like github, bitbucket and gitlab
1,317 lines (913 loc) • 97.1 kB
Markdown
[](https://www.npmjs.com/package/repository-provider)
[](https://spdx.org/licenses/0BSD.html)
[](https://typescriptlang.org)
[](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)
[](https://coveralls.io/github/arlac77/repository-provider)
# repository-provider
abstract interface to git repository providers like github, bitbucket, gitlab, gitea, ...
see list of avaliable implementations below
# Example
<!-- skip-example -->
```es6
import { Provider } from 'repository-provider';
const provider = new Provider({ /* access options as hosts and credentials */ });
const branch = await provider.branch('myuser/myrepo#myBranch');
for await (const entry of branch.entries('**/*.md')) {
console.log(entry.name);
}
const readme = await branch.entry('README.md');
console.log(await readme.string);
```
# Derived Providers
[list by *repository-provider* keyword](https://www.npmjs.com/browse/keyword/repository-provider)
# API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### Table of Contents
* [Application](#application)
* [definePropertiesFromOptions](#definepropertiesfromoptions)
* [Parameters](#parameters)
* [defaultValues](#defaultvalues)
* [Parameters](#parameters-1)
* [optionJSON](#optionjson)
* [Parameters](#parameters-2)
* [mapAttributes](#mapattributes)
* [Parameters](#parameters-3)
* [mapAttributesInverse](#mapattributesinverse)
* [Parameters](#parameters-4)
* [default\_attribute](#default_attribute)
* [default\_attribute](#default_attribute-1)
* [boolean\_attribute](#boolean_attribute)
* [boolean\_read\_only\_attribute](#boolean_read_only_attribute)
* [uuid\_attribute](#uuid_attribute)
* [empty\_attribute](#empty_attribute)
* [secret\_attribute](#secret_attribute)
* [count\_attribute](#count_attribute)
* [size\_attribute](#size_attribute)
* [name\_attribute](#name_attribute)
* [url\_attribute](#url_attribute)
* [description\_attribute](#description_attribute)
* [id\_attribute](#id_attribute)
* [state\_attribute](#state_attribute)
* [body\_attribute](#body_attribute)
* [title\_attribute](#title_attribute)
* [priority\_attribute](#priority_attribute)
* [active\_attribute](#active_attribute)
* [language\_attribute](#language_attribute)
* [type\_attribute](#type_attribute)
* [BaseObject](#baseobject)
* [Parameters](#parameters-5)
* [Properties](#properties)
* [id](#id)
* [description](#description)
* [updateAttributes](#updateattributes)
* [Parameters](#parameters-6)
* [update](#update)
* [toString](#tostring)
* [fullName](#fullname)
* [isWritable](#iswritable)
* [equals](#equals)
* [Parameters](#parameters-7)
* [type](#type)
* [collectionName](#collectionname)
* [attributes](#attributes)
* [writableAttributes](#writableattributes)
* [attributeMapping](#attributemapping)
* [BaseProvider](#baseprovider)
* [equals](#equals-1)
* [Parameters](#parameters-8)
* [repositoryBases](#repositorybases)
* [supportsBase](#supportsbase)
* [Parameters](#parameters-9)
* [normalizeRepositoryName](#normalizerepositoryname)
* [Parameters](#parameters-10)
* [normalizeGroupName](#normalizegroupname)
* [Parameters](#parameters-11)
* [areRepositoryNamesCaseSensitive](#arerepositorynamescasesensitive)
* [areGroupNamesCaseSensitive](#aregroupnamescasesensitive)
* [parseName](#parsename)
* [Parameters](#parameters-12)
* [createRepository](#createrepository)
* [Parameters](#parameters-13)
* [list](#list)
* [Parameters](#parameters-14)
* [projects](#projects)
* [Parameters](#parameters-15)
* [milestones](#milestones)
* [Parameters](#parameters-16)
* [repositories](#repositories)
* [Parameters](#parameters-17)
* [branches](#branches)
* [Parameters](#parameters-18)
* [tags](#tags)
* [Parameters](#parameters-19)
* [hooks](#hooks)
* [Parameters](#parameters-20)
* [pullRequests](#pullrequests)
* [Parameters](#parameters-21)
* [name](#name)
* [provider](#provider)
* [toJSON](#tojson)
* [instanceIdentifier](#instanceidentifier)
* [optionsFromEnvironment](#optionsfromenvironment)
* [Parameters](#parameters-22)
* [areOptionsSufficcient](#areoptionssufficcient)
* [Parameters](#parameters-23)
* [initialize](#initialize)
* [Parameters](#parameters-24)
* [BaseProvider](#baseprovider-1)
* [Parameters](#parameters-25)
* [Properties](#properties-1)
* [equals](#equals-2)
* [Parameters](#parameters-26)
* [repositoryBases](#repositorybases-1)
* [supportsBase](#supportsbase-1)
* [Parameters](#parameters-27)
* [normalizeRepositoryName](#normalizerepositoryname-1)
* [Parameters](#parameters-28)
* [normalizeGroupName](#normalizegroupname-1)
* [Parameters](#parameters-29)
* [areRepositoryNamesCaseSensitive](#arerepositorynamescasesensitive-1)
* [areGroupNamesCaseSensitive](#aregroupnamescasesensitive-1)
* [parseName](#parsename-1)
* [Parameters](#parameters-30)
* [createRepository](#createrepository-1)
* [Parameters](#parameters-31)
* [list](#list-1)
* [Parameters](#parameters-32)
* [projects](#projects-1)
* [Parameters](#parameters-33)
* [milestones](#milestones-1)
* [Parameters](#parameters-34)
* [repositories](#repositories-1)
* [Parameters](#parameters-35)
* [branches](#branches-1)
* [Parameters](#parameters-36)
* [tags](#tags-1)
* [Parameters](#parameters-37)
* [hooks](#hooks-1)
* [Parameters](#parameters-38)
* [pullRequests](#pullrequests-1)
* [Parameters](#parameters-39)
* [name](#name-1)
* [provider](#provider-1)
* [toJSON](#tojson-1)
* [instanceIdentifier](#instanceidentifier-1)
* [optionsFromEnvironment](#optionsfromenvironment-1)
* [Parameters](#parameters-40)
* [areOptionsSufficcient](#areoptionssufficcient-1)
* [Parameters](#parameters-41)
* [initialize](#initialize-1)
* [Parameters](#parameters-42)
* [DecodedRepositoryName](#decodedrepositoryname)
* [Properties](#properties-2)
* [MessageDestination](#messagedestination)
* [Properties](#properties-3)
* [name](#name-2)
* [name](#name-3)
* [messageDestination](#messagedestination-1)
* [parsedName](#parsedname)
* [Branch](#branch)
* [Parameters](#parameters-43)
* [Properties](#properties-4)
* [url](#url)
* [refType](#reftype)
* [isWritable](#iswritable-1)
* [isDefault](#isdefault)
* [delete](#delete)
* [commit](#commit)
* [Parameters](#parameters-44)
* [commitIntoPullRequest](#commitintopullrequest)
* [Parameters](#parameters-45)
* [removeEntries](#removeentries)
* [Parameters](#parameters-46)
* [createPullRequest](#createpullrequest)
* [Parameters](#parameters-47)
* [createBranch](#createbranch)
* [Parameters](#parameters-48)
* [CommitResult](#commitresult)
* [Parameters](#parameters-49)
* [Properties](#properties-5)
* [Commit](#commit-1)
* [Parameters](#parameters-50)
* [Properties](#properties-6)
* [Hook](#hook)
* [Issue](#issue)
* [Milestone](#milestone)
* [MultiGroupProvider](#multigroupprovider)
* [repository](#repository)
* [Parameters](#parameters-51)
* [branch](#branch-1)
* [Parameters](#parameters-52)
* [repositoryGroup](#repositorygroup)
* [Parameters](#parameters-53)
* [repositoryGroups](#repositorygroups)
* [Parameters](#parameters-54)
* [createRepositoryGroup](#createrepositorygroup)
* [Parameters](#parameters-55)
* [addRepositoryGroup](#addrepositorygroup)
* [Parameters](#parameters-56)
* [NamedObject](#namedobject)
* [Parameters](#parameters-57)
* [Properties](#properties-7)
* [displayName](#displayname)
* [condensedName](#condensedname)
* [fullCondensedName](#fullcondensedname)
* [equals](#equals-3)
* [Parameters](#parameters-58)
* [toJSON](#tojson-2)
* [OwnedObject](#ownedobject)
* [Parameters](#parameters-59)
* [delete](#delete-1)
* [equals](#equals-4)
* [Parameters](#parameters-60)
* [homePageURL](#homepageurl)
* [issuesURL](#issuesurl)
* [isLocked](#islocked)
* [isArchived](#isarchived)
* [isDisabled](#isdisabled)
* [api](#api)
* [slug](#slug)
* [url](#url-1)
* [provider](#provider-2)
* [identifier](#identifier)
* [fullName](#fullname-1)
* [trace](#trace)
* [Parameters](#parameters-61)
* [info](#info)
* [Parameters](#parameters-62)
* [warn](#warn)
* [Parameters](#parameters-63)
* [error](#error)
* [Parameters](#parameters-64)
* [debug](#debug)
* [Parameters](#parameters-65)
* [addMethodName](#addmethodname)
* [deleteMethodName](#deletemethodname)
* [OwnedObject](#ownedobject-1)
* [Parameters](#parameters-66)
* [delete](#delete-2)
* [equals](#equals-5)
* [Parameters](#parameters-67)
* [homePageURL](#homepageurl-1)
* [issuesURL](#issuesurl-1)
* [isLocked](#islocked-1)
* [isArchived](#isarchived-1)
* [isDisabled](#isdisabled-1)
* [api](#api-1)
* [slug](#slug-1)
* [url](#url-2)
* [provider](#provider-3)
* [identifier](#identifier-1)
* [fullName](#fullname-2)
* [trace](#trace-1)
* [Parameters](#parameters-68)
* [info](#info-1)
* [Parameters](#parameters-69)
* [warn](#warn-1)
* [Parameters](#parameters-70)
* [error](#error-1)
* [Parameters](#parameters-71)
* [debug](#debug-1)
* [Parameters](#parameters-72)
* [addMethodName](#addmethodname-1)
* [deleteMethodName](#deletemethodname-1)
* [Project](#project)
* [PullRequest](#pullrequest)
* [Parameters](#parameters-73)
* [Properties](#properties-8)
* [source](#source)
* [fullName](#fullname-3)
* [url](#url-3)
* [repository](#repository-1)
* [delete](#delete-3)
* [merge](#merge)
* [Parameters](#parameters-74)
* [decline](#decline)
* [reviews](#reviews)
* [identifier](#identifier-2)
* [defaultListStates](#defaultliststates)
* [states](#states)
* [validMergeMethods](#validmergemethods)
* [list](#list-2)
* [Parameters](#parameters-75)
* [open](#open)
* [Parameters](#parameters-76)
* [state](#state)
* [locked](#locked)
* [merged](#merged)
* [draft](#draft)
* [Ref](#ref)
* [ref](#ref-1)
* [refId](#refid)
* [entries](#entries)
* [Parameters](#parameters-77)
* [asyncIterator](#asynciterator)
* [maybeEntry](#maybeentry)
* [Parameters](#parameters-78)
* [entry](#entry)
* [Parameters](#parameters-79)
* [repository](#repository-2)
* [fullName](#fullname-4)
* [fullCondensedName](#fullcondensedname-1)
* [isProtected](#isprotected)
* [isDefault](#isdefault-1)
* [attributes](#attributes-1)
* [Ref](#ref-2)
* [ref](#ref-3)
* [refId](#refid-1)
* [entries](#entries-1)
* [Parameters](#parameters-80)
* [asyncIterator](#asynciterator-1)
* [maybeEntry](#maybeentry-1)
* [Parameters](#parameters-81)
* [entry](#entry-1)
* [Parameters](#parameters-82)
* [repository](#repository-3)
* [fullName](#fullname-5)
* [fullCondensedName](#fullcondensedname-2)
* [isProtected](#isprotected-1)
* [isDefault](#isdefault-2)
* [attributes](#attributes-2)
* [isProtected](#isprotected-2)
* [RepositoryGroup](#repositorygroup-1)
* [Parameters](#parameters-83)
* [Properties](#properties-9)
* [attributeMapping](#attributemapping-1)
* [type](#type-1)
* [homePageURL](#homepageurl-2)
* [RepositoryOwner](#repositoryowner)
* [Parameters](#parameters-84)
* [Repository](#repository-4)
* [Parameters](#parameters-85)
* [Properties](#properties-10)
* [slug](#slug-2)
* [url](#url-4)
* [entry](#entry-2)
* [Parameters](#parameters-86)
* [entries](#entries-2)
* [Parameters](#parameters-87)
* [maybeEntry](#maybeentry-2)
* [Parameters](#parameters-88)
* [commits](#commits)
* [Parameters](#parameters-89)
* [cloneURL](#cloneurl)
* [issuesURL](#issuesurl-2)
* [homePageURL](#homepageurl-3)
* [isArchived](#isarchived-2)
* [isLocked](#islocked-2)
* [isDisabled](#isdisabled-2)
* [isTemplate](#istemplate)
* [delete](#delete-4)
* [defaultBranch](#defaultbranch)
* [branch](#branch-2)
* [Parameters](#parameters-90)
* [hasBranches](#hasbranches)
* [branches](#branches-2)
* [Parameters](#parameters-91)
* [createBranch](#createbranch-1)
* [Parameters](#parameters-92)
* [addBranch](#addbranch)
* [Parameters](#parameters-93)
* [deleteBranch](#deletebranch)
* [Parameters](#parameters-94)
* [tag](#tag)
* [Parameters](#parameters-95)
* [tags](#tags-2)
* [Parameters](#parameters-96)
* [addTag](#addtag)
* [Parameters](#parameters-97)
* [createPullRequest](#createpullrequest-1)
* [Parameters](#parameters-98)
* [addPullRequest](#addpullrequest)
* [Parameters](#parameters-99)
* [pullRequests](#pullrequests-2)
* [pullRequest](#pullrequest-1)
* [Parameters](#parameters-100)
* [deletePullRequest](#deletepullrequest)
* [Parameters](#parameters-101)
* [addHook](#addhook)
* [Parameters](#parameters-102)
* [createHook](#createhook)
* [Parameters](#parameters-103)
* [hooks](#hooks-2)
* [hook](#hook-1)
* [Parameters](#parameters-104)
* [milestone](#milestone-1)
* [Parameters](#parameters-105)
* [project](#project-1)
* [Parameters](#parameters-106)
* [application](#application-1)
* [Parameters](#parameters-107)
* [type](#type-2)
* [refId](#refid-2)
* [Parameters](#parameters-108)
* [attributes](#attributes-3)
* [defaultBranchName](#defaultbranchname)
* [branches](#branches-3)
* [tags](#tags-3)
* [projects](#projects-2)
* [applications](#applications)
* [milestones](#milestones-2)
* [pullRequests](#pullrequests-3)
* [Review](#review)
* [SingleGroupProvider](#singlegroupprovider)
* [repository](#repository-5)
* [Parameters](#parameters-109)
* [repositoryGroup](#repositorygroup-2)
* [Parameters](#parameters-110)
* [repositoryGroups](#repositorygroups-1)
* [Parameters](#parameters-111)
* [Tag](#tag-1)
* [refType](#reftype-1)
* [asArray](#asarray)
* [Parameters](#parameters-112)
* [stripBaseName](#stripbasename)
* [Parameters](#parameters-113)
* [stripBaseNames](#stripbasenames)
* [Parameters](#parameters-114)
* [generateBranchName](#generatebranchname)
* [Parameters](#parameters-115)
## Application
**Extends OwnedObject**
## definePropertiesFromOptions
* **See**: Object.definedProperties()
* **See**: Object.getOwnPropertyDescriptor()
Create properties from options and default options.
Already present properties (direct) are skipped.
The attribute list from the class will be applied to the
options and merged with the given set of properties.
```js
class aClass {
static get attributes() {
return { with_default: { default: 77 }};
}
}
definePropertiesFromOptions(new aClass());
// equivalent to
Object.definedProperties(new aClass(),{ with_default: { value: 77 }})
```
### Parameters
* `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** target object
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** as passed to object constructor. Used as values for the attributes. (optional, default `{}`)
* `properties` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** object properties (optional, default `{}`)
* `attributes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** attribute meta info (optional, default `object.constructor.attributes`)
## defaultValues
Get default values.
### Parameters
* `attributes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** filled with default values
## optionJSON
Create json based on present options.
In other words only produce key value pairs if value is defined.
### Parameters
* `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `initial` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** (optional, default `{}`)
* `attributes` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** to operator on (optional, default `object.constructor.attributes`)
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** initial + defined values
## mapAttributes
Rename attributes.
Filters out null, undefined and empty strings.
```js
mapAttributes({a:1},{a:"a'"}) // {"a'": 1}
```
### Parameters
* `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `mapping` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** keys renamed after mapping
## mapAttributesInverse
Same as mapAttributes but with the inverse mapping.
Filters out null, undefined and empty strings
### Parameters
* `object` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
* `mapping` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** 
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** keys renamed after mapping
## default\_attribute
## default\_attribute
Common attribute properties.
Type: AttributeDefinition
## boolean\_attribute
Type: AttributeDefinition
## boolean\_read\_only\_attribute
Type: AttributeDefinition
## uuid\_attribute
Type: AttributeDefinition
## empty\_attribute
Type: AttributeDefinition
## secret\_attribute
Type: AttributeDefinition
## count\_attribute
Type: AttributeDefinition
## size\_attribute
Type: AttributeDefinition
## name\_attribute
Type: AttributeDefinition
## url\_attribute
Type: AttributeDefinition
## description\_attribute
The description of the object content.
Type: AttributeDefinition
## id\_attribute
Unique id within the provider.
Type: AttributeDefinition
## state\_attribute
Type: AttributeDefinition
## body\_attribute
The body text of the pull request.
Type: AttributeDefinition
## title\_attribute
The one line description of the pull request.
Type: AttributeDefinition
## priority\_attribute
In case there are several providers able to support a given source which one sould be used ?
this defines the order.
Type: AttributeDefinition
## active\_attribute
Type: AttributeDefinition
## language\_attribute
Type: AttributeDefinition
## type\_attribute
Type: AttributeDefinition
## BaseObject
Creates an instance of BaseObject.
### Parameters
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** 
* `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)?** 
* `additionalProperties` **[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
### 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
### attributeMapping
Map attributes between external and internal representation.
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
## 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)}** 
### instanceIdentifier
Prefix used to form environment variables.
'GITHUB\_' -> 'GITHUB\_TOKEN'
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** identifier for environment options
### optionsFromEnvironment
Extract options suitable for the constructor.
Form the given set of environment variables.
Object with the detected key value pairs is delivered.
#### Parameters
* `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** as from process.env
* `instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** part of variable name. (optional, default `this.instanceIdentifier`)
Returns **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** undefined if no suitable environment variables have been found
### areOptionsSufficcient
Check if given options are sufficient to create a provider.
#### Parameters
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if options ar sufficient to construct a provider
### initialize
Creates a new provider for a given set of options.
#### Parameters
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** additional options
* `options.instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** name of the provider instance
* `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** 
* `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)}** 
### instanceIdentifier
Prefix used to form environment variables.
'GITHUB\_' -> 'GITHUB\_TOKEN'
Returns **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** identifier for environment options
### optionsFromEnvironment
Extract options suitable for the constructor.
Form the given set of environment variables.
Object with the detected key value pairs is delivered.
#### Parameters
* `env` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** as from process.env
* `instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** part of variable name. (optional, default `this.instanceIdentifier`)
Returns **([Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object) | [undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined))** undefined if no suitable environment variables have been found
### areOptionsSufficcient
Check if given options are sufficient to create a provider.
#### Parameters
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** 
Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** true if options ar sufficient to construct a provider
### initialize
Creates a new provider for a given set of options.
#### Parameters
* `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** additional options
* `options.instanceIdentifier` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** name of the provider instance
* `options.description` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** 
* `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.
## name
Type: [string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)
## messageDestination
To forward info/warn and error messages to
## parsedName
Type: [Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)
## Branch
* **See**: [Repository#\_addBranch](Repository#_addBranch)
Abstract branch.
### Parameters
* `owner` **[RepositoryOwner](#repositoryowner)** 
* `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.or