/scm-github

Github implementation of the scm-base class

Primary LanguageJavaScriptOtherNOASSERTION

scm-github

Version Downloads Build Status Open Issues License

This scm plugin extends the scm-base, and provides methods to fetch and update data in github.

Usage

npm install screwdriver-scm-github

Initialization

The class has a variety of knobs to tweak when interacting with GitHub.

Parameter Type Default Description
config Object Configuration Object
config.gheHost String null If using GitHub Enterprise, the host/port of the deployed instance
config.gheProtocol String https If using GitHub Enterprise, the protocol to use
config.username String sd-buildbot GitHub username for checkout
config.email String dev-null@screwdriver.cd GitHub user email for checkout
config.https Boolean false Is the Screwdriver API running over HTTPS
config.oauthClientId String OAuth Client ID provided by GitHub application
config.oauthClientSecret String OAuth Client Secret provided by GitHub application
config.readOnly Object {} Config with readOnly info: enabled, username, accessToken, cloneType
config.fusebox Object {} [Circuit Breaker configuration][circuitbreaker]
config.secret String Secret to validate the signature of webhook events
config.privateRepo Boolean false Request 'repo' scope, which allows read/write access for public & private repos
config.gheCloud Boolean false Flag set to true if using Github Enterprise Cloud
[config.gheCloudSlug] String null The Github Enterprise Cloud Slug
[config.gheCloudCookie] String null The Github Enterprise Cloud Cookie name
[config.gheCloudContext] String null The Github Enterprise Cloud scm context
config.githubGraphQLUrl String https://api.github.com/graphql GraphQL endpoint for GitHub
const scm = new GithubScm({
    oauthClientId: 'abcdef',
    oauthClientSecret: 'hijklm',
    secret: 'somesecret'
});

Methods

getScmContexts

No parameters are required.

Expected Outcome

A single element array of ScmContext(ex: ['github:github.com'](default), ['github:github.screwdriver.cd']), which will be a unique identifier for the scm.

For more information on the exposed methods please see the scm-base.

Testing

npm test

License

Code licensed under the BSD 3-Clause license. See LICENSE file for terms.