Github provider for Koop.
JavaScript HTML
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Github provider for Koop

npm travis

Take GeoJSON from a Github repository and serve it as an ArcGIS Feature Service, CSV, KML, or Shapefile.


Koop providers require that you first install Koop. For information on using Koop, see

You can add koop-github to your Koop server's dependencies by installing it with npm and adding it to your package.json like so:

npm install koop-github --save


Make sure your koop configuration includes a github access token (ghtoken in the config object passed to koop or KOOP_GITHUB_TOKEN as an environmental variable). Your Github API requests will be rate limited and you will not have access private gists if you don't include a token.

var koop = require('koop')({
  'ghtoken': 'XXXXXX' // defaults to `process.env.KOOP_GITHUB_TOKEN`
var koopGithub = require('koop-github')


var express = require('express')
var app = express()


app.listen(process.env.PORT || 1337, function () {
  console.log('Listening at http://%s:%d/', this.address().address, this.address().port)

There is an example server in the example directory.

Once koop-github is registered as provider and you've started your Koop server, you can preview GeoJSON files in Github repositories using this pattern. Note that the path within the repo uses :: as a directory separator:

/github/{organization name}/{repository name}/{folder::path::to::geojson}/preview

so for example:



koop-github uses tape for testing. It is recommended to create your own Github access token for use during testing to ensure you will not hit Github API rate limits.



Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.


Apache 2.0