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

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

### Properties

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

### id

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

### description

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

### updateAttributes

Takes values from options.

#### Parameters

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

### update

Save object attributes in the backing store.

### toString

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

### fullName

Complete name in the hierachy.

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

### isWritable

By default cannot be written to.

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

### 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))**&#x20;

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

### type

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

### collectionName

    Tag -> tags
    Repository -> repositories

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

### attributes

Attributes definitions.

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

### writableAttributes

User modifyable attributes.

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

## BaseProvider

**Extends BaseObject**

### equals

#### Parameters

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

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

### repositoryBases

All supported base urls.
For github something like:

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

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

### supportsBase

Does the provider support the base name.

#### Parameters

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

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

### normalizeRepositoryName

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

#### Parameters

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

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

### normalizeGroupName

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

#### Parameters

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

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

### areRepositoryNamesCaseSensitive

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

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

### areGroupNamesCaseSensitive

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

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

### parseName

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

#### Parameters

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

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

### createRepository

Create a repository.

#### Parameters

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

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

### list

List provider objects of a given type.

#### Parameters

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

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

### projects

List projects.

#### Parameters

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

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

### milestones

List milestones.

#### Parameters

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

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

### repositories

List repositories.

#### Parameters

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

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

### branches

List branches.

#### Parameters

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

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

### tags

List tags.

#### Parameters

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

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

### hooks

List hooks.

#### Parameters

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

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

### pullRequests

List pull requests.

#### Parameters

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

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

### name

Deliver the provider name.

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

### provider

We are our own provider.

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

### toJSON

List all defined entries from attributes.

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

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

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

### instanceIdentifier

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

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

### initialize

Creates a new provider for a given set of options.

#### Parameters

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

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

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

## BaseProvider

**Extends BaseObject**

### Parameters

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

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

### Properties

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

### equals

#### Parameters

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

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

### repositoryBases

All supported base urls.
For github something like:

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

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

### supportsBase

Does the provider support the base name.

#### Parameters

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

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

### normalizeRepositoryName

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

#### Parameters

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

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

### normalizeGroupName

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

#### Parameters

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

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

### areRepositoryNamesCaseSensitive

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

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

### areGroupNamesCaseSensitive

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

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

### parseName

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

#### Parameters

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

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

### createRepository

Create a repository.

#### Parameters

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

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

### list

List provider objects of a given type.

#### Parameters

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

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

### projects

List projects.

#### Parameters

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

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

### milestones

List milestones.

#### Parameters

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

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

### repositories

List repositories.

#### Parameters

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

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

### branches

List branches.

#### Parameters

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

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

### tags

List tags.

#### Parameters

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

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

### hooks

List hooks.

#### Parameters

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

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

### pullRequests

List pull requests.

#### Parameters

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

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

### name

Deliver the provider name.

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

### provider

We are our own provider.

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

### toJSON

List all defined entries from attributes.

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

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

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

### instanceIdentifier

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

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

### initialize

Creates a new provider for a given set of options.

#### Parameters

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

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

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

## DecodedRepositoryName

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

### Properties

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

## MessageDestination

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

### Properties

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

## name

Name of the provider.

## messageDestination

To forward info/warn and error messages to

## parsedName

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

## Branch

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

Abstract branch.

### Parameters

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

### Properties

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

### url

Deliver repository and branch url combined.

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

### refType

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

### isWritable

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

### isDefault

Are we the default branch.

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

### delete

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

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

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

### commit

Commit entries.

#### Parameters

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

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

### commitIntoPullRequest

Add commits into a pull request.

#### Parameters

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

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

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

### removeEntries

Remove entries form the branch.

#### Parameters

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

### createPullRequest

Create a pull request.

#### Parameters

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

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

### createBranch

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

#### Parameters

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

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

## CommitResult

### Parameters

*   `ref` &#x20;

### Properties

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

## Commit

### Parameters

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

### Properties

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

## Hook

**Extends OwnedObject**

Repository hook.

## Issue

**Extends OwnedObject**

## Milestone

**Extends OwnedObject**

## MultiGroupProvider

**Extends BaseProvider**

Provider supporting serveral repository groups.

### repository

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

#### Parameters

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

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

### branch

Lookup a branch.

#### Parameters

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

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

### repositoryGroup

Lookup a repository group.

#### Parameters

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

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

### repositoryGroups

List groups.

#### Parameters

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

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

### createRepositoryGroup

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

#### Parameters

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

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

### addRepositoryGroup

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

#### Parameters

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

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

## NamedObject

**Extends BaseObject**

Object with a name.

### Parameters

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

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

### Properties

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

### displayName

Beautified name use for human displaying only.

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

### condensedName

Name with default parts removed

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

### fullCondensedName

Complete name in the hierachy.

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

### equals

Check for equality.

#### Parameters

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

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

### toJSON

Provided name and all defined attributes.

#### Parameters

*   `filter` &#x20;

## OwnedObject

**Extends NamedObject**

### Parameters

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

### delete

Removes the receiver from the owner.

### equals

Check for equality.

#### Parameters

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

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

### homePageURL

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

Url of home page.

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

### issuesURL

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

Url of issue tracking system.

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

### isLocked

Forwarded from the owner.

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

### isArchived

Forwarded from the owner.

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

### isDisabled

Forwarded from the owner.

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

### api

API as given by the owner.

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

### slug

API as given by the owner.

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

### url

URL as given by the owner.

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

### provider

The provider we live in.

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

### identifier

Short human readable identifier with provider and branch.

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

### fullName

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

### trace

Forwarded to the owner.

#### Parameters

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

### info

Forwarded to the owner.

#### Parameters

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

### warn

Forwarded to the owner.

#### Parameters

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

### error

Forwarded to the owner.

#### Parameters

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

### debug

Forwarded to the owner.

#### Parameters

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

### addMethodName

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

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

### deleteMethodName

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

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

## OwnedObject

**Extends NamedObject**

Named Object registering itself in the owner.

### Parameters

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

### delete

Removes the receiver from the owner.

### equals

Check for equality.

#### Parameters

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

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

### homePageURL

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

Url of home page.

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

### issuesURL

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

Url of issue tracking system.

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

### isLocked

Forwarded from the owner.

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

### isArchived

Forwarded from the owner.

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

### isDisabled

Forwarded from the owner.

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

### api

API as given by the owner.

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

### slug

API as given by the owner.

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

### url

URL as given by the owner.

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

### provider

The provider we live in.

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

### identifier

Short human readable identifier with provider and branch.

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

### fullName

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

### trace

Forwarded to the owner.

#### Parameters

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

### info

Forwarded to the owner.

#### Parameters

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

### warn

Forwarded to the owner.

#### Parameters

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

### error

Forwarded to the owner.

#### Parameters

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

### debug

Forwarded to the owner.

#### Parameters

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

### addMethodName

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

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

### deleteMethodName

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

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

## Project

**Extends OwnedObject**

## PullRequest

**Extends OwnedObject**

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

### Parameters

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

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

### Properties

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

### source

Type: [Branch](#branch)

### fullName

Name of the PR together with the repository.

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

### url

URL of the pull request.

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

### repository

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

### delete

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

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

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

### merge

Merge the pull request.

#### Parameters

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

### decline

Decline the pull request.

### reviews

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

### identifier

Short human readable identifier with provider and branch.

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

### defaultListStates

States to list pull request by default

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

### states

possible states

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

### validMergeMethods

All valid merge methods

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

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

### list

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

#### Parameters

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

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

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

### open

Open a pull request

#### Parameters

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

## state

state of the pull request.

*   OPEN
*   MERGED
*   CLOSED

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

## locked

Locked state of the pull request.

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

## merged

Merged state of the pull request.

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

## draft

Draft state of the pull request.

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

## Ref

**Extends OwnedObject**

### ref

Full ref path.

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

### refId

Get sha of our ref.

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

### entries

List entries of the branch.

#### Parameters

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

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

### asyncIterator

List all entries of the branch.

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

### maybeEntry

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

#### Parameters

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

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

### entry

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

#### Parameters

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

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

### repository

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

Ref owner.
By default we provide the repository owner

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

### fullName

Repository and branch name combined.

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

### fullCondensedName

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

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

### isProtected

Returns **any** false

### isDefault

Are we the default ref.

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

### attributes

Attributes

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

## Ref

**Extends OwnedObject**

Base for Branch and Tag

### ref

Full ref path.

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

### refId

Get sha of our ref.

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

### entries

List entries of the branch.

#### Parameters

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

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

### asyncIterator

List all entries of the branch.

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

### maybeEntry

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

#### Parameters

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

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

### entry

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

#### Parameters

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

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

### repository

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

Ref owner.
By default we provide the repository owner

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

### fullName

Repository and branch name combined.

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

### fullCondensedName

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

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

### isProtected

Returns **any** false

### isDefault

Are we the default ref.

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

### attributes

Attributes

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

## isProtected

Can the ref be modified.

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

## RepositoryGroup

**Extends RepositoryOwner(OwnedObject)**

Abstract repository collection.

### Parameters

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

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

### Properties

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

## type

Type of the repository group either User or Organization.

## homePageURL

The url of home page.

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

## RepositoryOwner

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

### Parameters

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

## Repository

**Extends OwnedObject**

Abstract repository

### Parameters

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

### Properties

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

### slug

Name of the repo as used in the URL.

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

### url

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

### entry

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

#### Parameters

*   `name` &#x20;

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

### entries

List entries of the default branch.

#### Parameters

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

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

### maybeEntry

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

#### Parameters

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

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

### commits

List commits of the default branch.

#### Parameters

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

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

### cloneURL

The url used for cloning the repo.

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

### issuesURL

The url of issue tracking system.

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

### homePageURL

The url of home page.

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

### isArchived

By default we are not archived.

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

### isLocked

By default we are not locked.

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

### delete

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

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

### defaultBranch

Lookup the default branch.

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

### branch

Lookup branch by name.

#### Parameters

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

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

### hasBranches

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

### branches

#### Parameters

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

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

### createBranch

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

#### Parameters

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

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

### addBranch

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

#### Parameters

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

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

### deleteBranch

Delete a [Branch](#branch).

#### Parameters

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

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

### tag

Get a Tag.

#### Parameters

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

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

### tags

#### Parameters

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

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

### addTag

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

#### Parameters

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

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

### \_addTag

#### Parameters

*   `tag` **[Tag](#tag)**&#x20;

### createPullRequest

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

#### Parameters

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

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

### addPullRequest

Add a pull request.

#### Parameters

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

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

### \_addPullRequest

#### Parameters

*   `pr` **[PullRequest](#pullrequest)**&#x20;

### pullRequests

Deliver all [PullRequest](#pullrequest)s.

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

### pullRequest

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

#### Parameters

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

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

### deletePullRequest

Delete a [PullRequest](#pullrequest).

#### Parameters

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

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

### addHook

Add a new [Hook](#hook).

#### Parameters

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

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

### \_addHook

#### Parameters

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

### createHook

Add a new Hook.

#### Parameters

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

### hooks

List hooks.

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

### hook

Get a Hook.

#### Parameters

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

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

### \_addMilestone

#### Parameters

*   `milestone` **[Milestone](#milestone)**&#x20;

### milestone

Get a Milestone.

#### Parameters

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

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

### \_addProject

#### Parameters

*   `project` **[Project](#project)**&#x20;

### project

Get a Project.

#### Parameters

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

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

### \_addApplication

#### Parameters

*   `application` **[Application](#application)**&#x20;

### application

Get an Application.

#### Parameters

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

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

### type

Get type of the repository.

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

### refId

Get sha of a ref.

#### Parameters

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

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

### attributes

options

## defaultBranchName

The name of the default branch

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

## branches

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

## tags

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

## projects

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

## applications

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

## milestones

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

## pullRequests

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

## 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))>**&#x20;

### repositoryGroup

Get a single group.

#### Parameters

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

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

### repositoryGroups

List groups.

#### Parameters

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

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

## Tag

**Extends Ref**

Tag refs

### refType

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

## asArray

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

### Parameters

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

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

## stripBaseName

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

### Parameters

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

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

## stripBaseNames

Loops over names and executes stripBaseName.

### Parameters

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

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

## generateBranchName

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

### Parameters

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

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

# install

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

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

# license

BSD-2-Clause
