UNPKG

repository-provider

Version:

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

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