Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/strider-cd/strider-github

Github provider for strider
https://github.com/strider-cd/strider-github

git github github-enterprise strider strider-github

Last synced: 3 months ago
JSON representation

Github provider for strider

Awesome Lists containing this project

README

        

# strider-github

A provider for strider that integrates with GitHub to provide easy setup of
your projects. It registers webhooks and sets up ssh keys (if you so choose).

[![NPM][npm-badge-img]][npm-badge-link]
[![Build Status](https://travis-ci.org/Strider-CD/strider-github.svg)](https://travis-ci.org/Strider-CD/strider-github)

Note: Supports using '[skip ci]' in your commit message to skip commits triggering a job.

## Required Configuration

If you are running on `localhost:3000` the default settings should work just fine.

### Environment Variables

**`SERVER_NAME`** The url of your strider server. Defaults to `http://localhost:3000`.

The following variables only need to be overridden if you are using github enterprise. See 'Enterprise Setup' below.

**`PLUGIN_GITHUB_APP_ID`** Defaults to client ID of Strider-CD Github App

**`PLUGIN_GITHUB_APP_SECRET`** Defaults to client secret of Strider-CD Github App

**`PLUGIN_GITHUB_API_DOMAIN`** Defaults to `https://github.com`

**`PLUGIN_GITHUB_API_ENDPOINT`** Defaults to `https://api.github.com`

### Enterprise Setup

1. You'll need to create an Application on your GitHub Enterprise Server. Log in to GitHub Enterprise and navigate to
`https://your-github-url.com/settings/applications/new` and set authentication URL to
`https://your-strider-server:port/auth/github/callback`.
2. Define the environment variables. Here is an example:

```shell
export SERVER_NAME="http://111.11.11.111:3000"
export PLUGIN_GITHUB_APP_ID="a342d32c23c23"
export PLUGIN_GITHUB_APP_SECRET="5af64a67af586847afbc6796769769d97a961"
export PLUGIN_GITHUB_API_DOMAIN="https://github.my-organization.com"
export PLUGIN_GITHUB_API_ENDPOINT="https://github.my-organization.com/api/v3"
```

**NOTE** `SERVER_NAME` must be the same exact host that you used for the 'Authentication URL' in step 1. For example,
if you used `http://111.11.11.111:3000/auth/guthub/callback` in step 1, your `SERVER_NAME` **must** be
`http://111.11.11.111:3000`. Also note that the protocol must be the same between the two (if you used `http://`
in step 1, you must use `http://` in `SERVER_NAME` and not `https://`).

3. Reboot strider and navigate link a github account as normal, you should see your enterprise repos!

#### Known Issues with Enterprise

- If you get 'Error: Could not fetch user profile': Somehow, passport will fail to retrieve the user profile unless all
of the following are set. On GitHub Enterprise, log in to the profile you are trying to link to, and navigate to
`/settings/profile`. Make sure the following are defined and set properly.
- Public Email
- Homepage URL

#### Known Issues with GitHub.com

- Make sure your github profile has a public email set
- Go to https://github.com/settings/profile and select an email under "Public email".
- Make sure you have admin rights on the projects before adding them,
since strider will need to create webhooks for the integration to work.

## Local Development

Due to the fact that Github posts to the Strider app when there is an event (commit, PR, etc)
it is very difficult to test all of the functionality when developing/fixing bugs locally.
An alternative is to use something like [localtunnel].

```sh
$ npm install -g localtunnel
$ lt --port
```

[npm-badge-img]: https://badge.fury.io/js/strider-github.svg
[npm-badge-link]: http://badge.fury.io/js/strider-github
[localtunnel]: https://localtunnel.github.io/www/