title: “GitHub” description: > GitHub Plugin

Summary

This plugin gathers data from GitHub to display information to the user in Grafana. We can help tech leaders answer such questions as:

  • Is this month more productive than last?
  • How fast do we respond to customer requirements?
  • Was our quality improved or not?

Metrics

Here are some examples metrics using GitHub data:

  • Avg Requirement Lead Time By Assignee
  • Bug Count per 1k Lines of Code
  • Commit Count over Time

Screenshot

image

Configuration

Provider (Datasource) Connection

The connection section of the configuration screen requires the following key fields to connect to the GitHub API.

connection-in-config-ui

  • Connection Name [READONLY]
    • ⚠️ Defaults to “Github” and may not be changed. As GitHub is a single-source data provider at the moment, the connection name is read-only as there is only one instance to manage. As we advance on our development roadmap we may enable multi-source connections for GitHub in the future.
  • Endpoint URL (REST URL, starts with https:// or http://)
    • This should be a valid REST API Endpoint eg. https://api.github.com/
    • ⚠️ URL should end with/
  • Auth Token(s) (Personal Access Token)
    • For help on Creating a personal access token, please see official GitHub Docs on Personal Tokens
    • Provide at least one token for Authentication.
    • This field accepts a comma-separated list of values for multiple tokens. The data collection will take longer for GitHub since they have a rate limit of 5,000 requests per hour (15,000 requests/hour if you pay for GitHub enterprise). You can accelerate the process by configuring multiple personal access tokens.

Click Save Connection to update connection settings.

Provider (Datasource) Settings

Manage additional settings and options for the GitHub Datasource Provider. Currently there is only one optional setting, Proxy URL. If you are behind a corporate firewall or VPN you may need to utilize a proxy server.

  • GitHub Proxy URL [Optional] Enter a valid proxy server address on your Network, e.g. http://your-proxy-server.com:1080

Click Save Settings to update additional settings.

Regular Expression Configuration

Define regex pattern in .env

  • GITHUB_PR_BODY_CLOSE_PATTERN: Define key word to associate issue in PR body, please check the example in .env.example

Sample Request

To collect data, select Advanced Mode on the Create Pipeline Run page and paste a JSON config like the following:

[
  [
    {
      "plugin": "github",
      "options": {
        "repo": "lake",
        "owner": "merico-dev"
      }
    }
  ]
]

You can also trigger data collection by making a POST request to /pipelines.

curl --location --request POST 'localhost:8080/pipelines' \
--header 'Content-Type: application/json' \
--data-raw '
{
    "name": "github 20211126",
    "tasks": [[{
        "plugin": "github",
        "options": {
            "repo": "lake",
            "owner": "merico-dev"
        }
    }]]
}
'