UNPKG

repository-provider

Version:

abstract interface to git repository providers like github, bitbucket and gitlab

1,284 lines (879 loc) 90.2 kB
[![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