Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master


Elasticsearch river for GitHub data. Fetches all of the following for a given GitHub repo:

Works for private repos as well if you provide authentication.

Easy install

Assuming you have elasticsearch's bin folder in your PATH:

plugin -i com.ubervu/elasticsearch-river-github/1.6.3

Otherwise, you have to find the directory yourself. It should be /usr/share/elasticsearch/bin on Ubuntu.

Adding the river

curl -XPUT localhost:9200/_river/gh_river/_meta -d '{
    "type": "github",
    "github": {
        "owner": "gabrielfalcao",
        "repository": "lettuce",
        "interval": 3600,
        "authentication": {
            "username": "MYUSER", # or token
            "password": "MYPASSWORD" # or x-oauth-basic when using a token

Interval is given in seconds and it changes how often the river looks for new data.

The authentication bit is optional. It helps with the API rate limit and when accessing private data. You can use your own GitHub credentials or a token. When using a token, fill in the token as the username and x-oauth-basic as the password, as the docs mention.

Deleting the river

curl -XDELETE localhost:9200/_river/gh_river

Indexes and types

The data will be stored in an index of format "%s&%s" % (owner, repo), i.e. gabrielfalcao&lettuce.

For every API event type, there will be an elasticsearch type of the same name - i.e. ForkEvent.

Issue data will be stored with the IssueData type. Pull request data will be stored with the PullRequestData type. Milestone data will be stored with the MilestoneData type.

Something went wrong with that request. Please try again.