Skip to content
GitHub Analytics with Keen IO
Branch: master
Clone or download
tbarn Merge pull request #3 from keen/fix-env-file
Change env variable name
Latest commit 3053c1c Oct 16, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
.env-sample change env variable name Oct 16, 2017
.gitignore Commit new files Oct 11, 2017
LICENSE Initial commit Oct 10, 2017 add emphasis for those new to keen Oct 13, 2017
access_page.png add access page image Oct 13, 2017
index.js Commit new files Oct 11, 2017
package.json Commit new files Oct 11, 2017

GitHub Analytics with Keen IO

Stream event data from your GitHub repos to a Keen project via GitHub's event stream webhooks.

Read more about this project here.


Clone and install this project. NodeJS v6.11 or higher is required.

# Clone this repo
git clone
cd github-analytics

# Copy optional env file
cp .env-sample .env

# Install dependencies
npm install

Project ID & API Key

Login to Keen IO to create a project and grab the Project ID and Write Key from your project's Access page.

image of Access page

If you are new to Keen IO and have not sent your first event yet, you can find your Project ID and Write Key in the at the bottom of the cURL section of the onboarding docs:

image of cURL section

Copy these into the KEEN_PROJECT_ID and KEEN_WRITE_KEY fields of the .env file created previously, or set these environmental variables manually:


GitHub Access Token

Create a new GitHub access token with the admin:org_hook option selected. Copy this into the GITHUB_ACCESS_TOKEN field of the .env file created previously, or set this environmental variable manually:


Next, add the name of the organization you want to configure to the GITHUB_ORG field:

export GITHUB_ORG=your-org-name

Important: you must be an admin for all of the GitHub organizations listed for your access token to work properly.

If you wish to instrument more than one org, this field can contain a comma-separated list of names without spaces:

export GITHUB_ORG=your-org-name,second-org

The script will create all of the necessary webhooks for each organization listed. All event data will be recorded to the same Keen project from the previous step, but can be segmented or filtered by an organization.login property, which exists for all event types.

Run the Script

Finally, run the following command to execute the script:

npm start

The script will log the creation status for each webhook.

Once the script completes, visit for each organization to confirm all 33 webhooks were created successfully. Your Keen project should now contain a few initial events for each webhook as well.

If you are new to Keen IO and have not sent your first event yet, you can click the "Check for Data" button in the cURL section to confirm your GitHub webhooks have streamed to Keen. Reminder: Some event will need to happen within your GitHub organization to trigger a webhook.

Example Charts

Data will begin streaming into your Keen project as new git activity is recorded. Now you can use Keen IO’s visualization tools like the Explorer, Dashboards, and Compute API to dig into granular workflow metrics.




Show and Tell!

We’d love to hear from you! What metrics and charts would you like to see in a dashboard? What are challenges you have had with working with GitHub data? We’ve talked to a lot of open source maintainers, but we want to hear more from you.

Feel free to open an issue or send an email to Also, if you build anything with your GitHub data, we’d love to see it! ❤️

You can’t perform that action at this time.