Query the GitHub data source
Open source Enterprise Grafana Cloud

Query the GitHub data source

The GitHub data source plugin for Grafana enables you to query and visualize data directly from your GitHub repositories and organizations. With this plugin, you can monitor repository activity, track issues and pull requests, analyze workflow runs, and more from within Grafana.

Query types

The data source supports the following query types, which you can select from the Query Type dropdown in the query editor:

  • Commits: Retrieve a list of commits for a branch or ref within a repository, including commit message, author, and timestamp.
  • Issues: List issues in a repository, using the GitHub query syntax to filter the response.
  • Contributors: Get a list of contributors to a repository.
  • Tags: List created tags for a repository.
  • Releases: List created releases for a repository.
  • Pull requests: List pull requests for a repository, using the GitHub query syntax to filter the response.
  • Labels: List labels defined in a repository.
  • Repositories: List repositories for a user or organization.
  • Milestones: Retrieve milestones for a repository, which can be used to group issues and pull requests.
  • Packages: List packages published from a repository in an organization.
  • Vulnerabilities: Query security vulnerabilities detected in a repository.
  • Projects: List projects associated with a user or organization.
  • Stargazers: Get a list of users who have starred a repository, including the ability to plot a total count over time.
  • Workflows: List GitHub Actions workflows defined in a repository.
  • Workflow usage: Retrieve usage statistics for a workflow, such as run counts and durations.
  • Workflow runs: List runs for a specific workflow, including status, conclusion, and timing information.

Commits

Retrieve a list of commits for a branch or ref within a repository, including commit message, author, and timestamp. Useful for tracking code changes, deployment activity, or contributor history.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
Ref (Branch/Tag)The branch or tag to list commits againstYes
Sample queries

Show all commits to the main branch of the grafana/grafana repository:

  • Owner: grafana
  • Repository: grafana
  • Ref: main

Show all commits against a tag:

  • Owner: grafana
  • Repository: grafana
  • Ref: v12.0.0

Response

NameDescription
idCommit ID
authorName of the commit author
author_loginGitHub handle of the commit author
author_companyCompany name of the commit author
committed_atWhen the change was committed: YYYY-MM-DD HH:MM:SS
pushed_atWhen the commit was pushed: YYYY-MM-DD HH:MM:SS
messageThe commit message

Issues

List issues in a repository using the GitHub query syntax to filter the response. Useful for tracking open bugs, feature requests, or project tasks.

Note

This query returns a maximum of 1000 results.

Query options

NameDescriptionRequired
OwnerA GitHub user or organizationYes
RepositoryThe name of a repositoryNo
QueryUse GitHub’s query syntax to filter resultsNo
Time fieldThe time field to filter the responses on, can be: CreatedAt, ClosedAt, or UpdatedAtYes
Sample queries

Show all closed issues labeled type/bug in the Grafana repository:

  • Owner: grafana
  • Repository: grafana
  • Query: is:closed label:type/bug

Show all issues with ‘sql expressions’ in the title:

  • Owner: grafana
  • Repository: grafana
  • Query: sql expressions in:title

Response

NameDescription
titleIssue title
authorGitHub handle of the author
author_companyCompany name of the commit author
repoIssue repository
numberIssue number
closedtrue or false
created_atWhen the issue was created: YYYY-MM-DD HH:MM:SS
closed_atWhen the issue was closed: YYYY-MM-DD HH:MM:SS
updated_atWhen the issue was last updated: YYYY-MM-DD HH:MM:SS
labelsArray of labels, for example: ["type/bug", "needs more info"]
assigneesArray of assignees, for example: ["user1", "user2"]

Contributors

Get a list of contributors to an organization or repository.

Note

This query returns a maximum of 200 results.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
QueryFilter for contributors by name or GitHub handleNo
Sample queries

Show all contributors to the grafana repository:

  • Owner: grafana
  • Repository: grafana

Search for contributors with bob in their name or handle:

  • Owner: grafana
  • Repository: grafana
  • Query: bob

Response

NameDescription
nameName of the contributor
authorName of the commit author
author_loginGitHub handle of the commit author
author_companyCompany name of the commit author
committed_atWhen the commit was made: YYYY-MM-DD HH:MM:SS
pushed_atWhen the commit was pushed: YYYY-MM-DD HH:MM:SS
messageCommit message

Tags

List created tags for a repository.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
Sample queries

Show all tags created for the grafana repository within the currently selected time range:

  • Owner: grafana
  • Repository: grafana

Response

NameDescription
nameName of the tag
idSHA for the tag
authorName of the user who created the tag
author_loginGitHub handle of the user who created the tag
author_companyCompany name of the user who created the tag
dateWhen the tag was created: YYYY-MM-DD HH:MM:SS

Releases

List created releases for a repository.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
Sample queries

Show all releases for the grafana/grafana repository:

  • Owner: grafana
  • Repository: grafana

Response

NameDescription
nameName of release
created_byName of the GitHub user who created the release
is_draftWhether the release is a draft release: true or false
is_prereleaseWhether the release is a pre-release: true or false
tagTag name associated with the release
urlURL for the tag associated with the release
created_atWhen the release was created: YYYY-MM-DD HH:MM:SS
published_atWhen the release was published: YYYY-MM-DD HH:MM:SS

Pull requests

List pull requests for a repository, using the GitHub query syntax to filter the response.

Query options

NameDescriptionRequired
OwnerA GitHub user or organizationYes
RepositoryThe name of a repositoryNo
QueryUse GitHub’s query syntax to filter resultsNo
Time FieldThe time field to filter the responses on, can be: CreatedAt, ClosedAt, UpdatedAt, or noneYes
Sample queries

Show all open pull requests authored by Renovate in the grafana/plugin-tools repository:

  • Owner: grafana
  • Repository: grafana
  • Query: is:open author:app/renovate
  • Time field: none

Response

NameDescription
numberPull request number
titlePull request title
urlURL to the pull request
additionsTotal number of lines of code that have been added or altered in the pull request
deletionsTotal number of lines of code that have been removed or altered in the pull request
repositoryRepository for the pull request
stateCan be open, closed, or merged
author_nameName of the GitHub user who created the pull request
author_loginGitHub handle of the GitHub user who created the pull request
author_emailEmail address of the GitHub user who created the pull request
author_companyCompany name of the GitHub user who created the pull request
closedWhether the pull request is closed: true or false
is_draftWhether the pull request is in draft: true or false
lockedWhether the pull request has been locked: true or false
mergedWhether the pull request has been merged
mergeableWhether the pull request can be automatically merged: MERGEABLE, CONFLICTING, or UNKNOWN
closed_atWhen the pull request was closed: YYYY-MM-DD HH:MM:SS
merged_atWhen the pull request was merged: YYYY-MM-DD HH:MM:SS
merged_by_nameName of the GitHub user who merged the pull request
merged_by_loginGitHub handle of the GitHub user who merged the pull request

Labels

Get all labels defined in a repository, useful for categorizing issues and pull requests.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
QueryFilter on text in name and description for labelsNo
Sample queries

Show all labels for the grafana/grafana repository:

  • Owner: grafana
  • Repository: grafana

Response

NameDescription
nameLabel name
colorHexadecimal number
descriptionLabel description

Repositories

List repositories for a user or organization.

Note

This query returns a maximum of 1000 results.

Query options

NameDescriptionRequired
OwnerA GitHub user or organizationYes
RepositoryFilter on the name of the repositoryNo
Sample queries

Show all repositories for the grafana organization:

  • Organization: grafana

Response

NameDescription
nameName of the repository
ownerOrganization or user who owns the repository
name_with_ownerReturns the owner and repository name in the format <owner>/<repository>, for example: grafana/loki
urlURL for the repository
forksThe number of forks for a repository
is_mirrorWhether the repository is a mirror of another repository: true or false
is_privateWhether the repository is private: true or false
created_atWhen the repository was created: YYYY-MM-DD HH:MM:SS

Milestones

Retrieve milestones for a repository, which can be used to group issues and pull requests.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
QueryFilter on text in the milestone titleNo
Sample queries

Show all milestones for the grafana/grafana repository for v11 of Grafana:

  • Owner: grafana
  • Repository: grafana
  • Query: 11.

Response

NameDescription
titleMilestone title
authorGitHub handle of the user who created the milestone
closedWhether the milestone is closed: true or false
stateOne of OPEN or CLOSED
created_atWhen the milestone was created: YYYY-MM-DD HH:MM:SS
closed_atWhen the milestone was closed: YYYY-MM-DD HH:MM:SS
due_atWhen the milestone is due by: YYYY-MM-DD HH:MM:SS

Note

Milestone titles can be anything and are therefore parsed as a string. This means sorting by title may appear incorrect if you have numeric milestones, for example: 12.0.0. Transformations can be used to change the data type in this scenario.

Packages

List packages published from a repository in an organization.

Note

This query does not support querying npm, RubyGems, or NuGet packages.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
Package typeOne of: MAVEN, DOCKER, DEBIAN, or PYPIYes
NamesFilter for packages using a comma-separated list of namesNo
Sample queries

Show all packages uploaded to the grafana organization:

  • Organization: grafana

Response

NameDescription
namePackage name
platformPlatform or registry where the package is published
versionPackage version
typePackage type (e.g., MAVEN, DOCKER, DEBIAN, PYPI)
prereleaseWhether the package version is a prerelease: true or false
downloadsNumber of downloads for the package version

Vulnerabilities

Query security vulnerabilities detected in a repository.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
Sample queries

Show all security advisories for the grafana/grafana repository:

  • Owner: grafana
  • Repository: grafana

Response

NameDescription
valueCustom field which allows for counting or aggregation, always returns 1
created_atWhen the vulnerability alert was created (when the vulnerability was published on GitHub): YYYY-MM-DD HH:MM:SS
dismissed_atWhen the vulnerability alert was dismissed, if applicable: YYYY-MM-DD HH:MM:SS
dismissed_reasonReason the vulnerability alert was dismissed (e.g., false positive, won’t fix), if applicable
withdrawn_atWhen the advisory was withdrawn, if applicable: YYYY-MM-DD HH:MM:SS
packageNameName of the affected package
advisoryDescriptionDescription of the vulnerability or advisory
firstPatchedVersionThe first version of the package where the vulnerability is fixed
vulnerableVersionRangeThe range of package versions affected by the vulnerability
cvssScoreCVSS (Common Vulnerability Scoring System) score for the vulnerability
cvssVectorCVSS vector string describing the scoring metrics
permalinkURL to the GitHub Security Advisory or alert
severitySeverity level of the vulnerability (e.g., LOW, MODERATE, HIGH, CRITICAL)
stateState of the vulnerability alert (e.g., OPEN, FIXED, DISMISSED)

Projects

List projects associated with a user or organization.

Note

This query returns a maximum of 200 results.

Query options

NameDescriptionRequired
Project OwnerOne of Organization or UserYes
OrganizationOrganization for the Project (shown when Organization was previously selected)Yes
UserUser for the Project (shown when User was previously selected)Yes
Project NumberEnter a specific Project Number to query for associated itemsNo
FilterAdd key value filters based on the fields for project items (shown if Project Number specified)No
Sample queries

Show all projects for the grafana/grafana repository:

  • Project Owner: organization
  • Organization: grafana

Show all pull requests for the “Dashboards” project in the Grafana organization:

  • Project Owner: organization
  • Organization: grafana
  • Project Number: 202
  • Filter: type equal PULL_REQUEST

Response

When no Project Number is specified
NameDescription
numberThe project number
titleTitle of the project
urlURL for the project
closedWhether the project has been closed: true or false
publicWhether the project is public: true or false
closed_atWhen the project was closed: YYYY-MM-DD HH:MM:SS
updated_atWhen the project was last updated
created_atWhen the project was created
short_descriptionThe description of the project
When a Project Number is specified

Note

GitHub Projects allow for customization of default fields and custom fields to be added. Therefore, the response can vary significantly between projects.

NameDescription
nameName of the project item (issue or pull request)
idUnique identifier for the project item
typeType of the item (such as ISSUE, PULL_REQUEST)
statusStatus of the item (such as “In development”, “Shipped”) - this can be configured on the project
labelsComma-separated list of labels assigned to the item
assigneesComma-separated list of users assigned to the item
reviewersComma-separated list of reviewers (for pull requests)
repositoryName of the repository the item belongs to
milestoneMilestone associated with the item
priorityPriority value or label
archivedWhether the item is archived: true or false
created_atWhen the item was created: YYYY-MM-DD HH:MM:SS
updated_atWhen the item was last updated: YYYY-MM-DD HH:MM:SS
closed_atWhen the item was closed, if applicable: YYYY-MM-DD HH:MM:SS
(custom fields)Any custom defined fields will also be returned alongside their values

Stargazers

Get a list of users who have starred a repository, including the ability to plot a total count over time.

Query options

NameDescriptionRequired
OwnerThe GitHub user or organization that owns the repositoryYes
RepositoryThe name of the repositoryYes
Sample queries

Show all stargazers for the grafana/grafana repository within the current time range:

  • Owner: grafana
  • Repository: grafana

Response

NameDescription
starred_atWhen the user starred the repository: YYYY-MM-DD HH:MM:SS
start_countCurrent total of stars for the repository at the time of the event
idnode_id - a unique identifier for the GitHub user which can be used in GitHub’s GraphQL API
loginGitHub handle of the user who starred the repository
git_nameName of the GitHub user who starred the repository
companyCompany name of the GitHub user who starred the repository
emailEmail address of the GitHub user who starred the repository
urlURL to the GitHub profile for the user who starred the repository

Workflows

List GitHub Actions workflows defined in a repository.

Query options

NameDescriptionRequired
ownerGitHub user or organization that owns the repositoryYes
repositoryName of the repositoryYes
Time FieldThe time field to filter the responses on, can be: CreatedAt or UpdatedAtYes
Sample queries

Show all workflows created within the grafana/grafana repository within the current time range:

  • Owner: grafana
  • Repository: grafana
  • Time Field: CreatedAt

Response

NameDescription
idUnique identifier for the workflow
nameName of the workflow
pathPath to the workflow YAML file in the repository
stateState of the workflow, can be: active, deleted, disabled_fork, disabled_inactivity, or disabled_manually
created_atWhen the workflow was created: YYYY-MM-DD HH:MM:SS
updated_atWhen the workflow was last updated: YYYY-MM-DD HH:MM:SS
urlAPI URL for the workflow
html_urlURL to the workflow file in the repository
badge_urlURL to the workflow status badge

Workflow usage

Retrieve usage statistics for a workflow, such as run counts and durations.

Query options

NameDescriptionRequired
ownerGitHub user or organization that owns the repositoryYes
repositoryName of the repositoryYes
WorkflowThe workflow ID or file name. Use id or the filename from path from workflows queriesYes
Sample queries

Show usage statistics for the Levitate detect breaking changes workflow in the grafana/grafana repository:

  • Owner: grafana
  • Repository: grafana
  • Workflow: detect-breaking-changes-levitate.yml

Response

NameDescription
nameName of the workflow (or workflow job)
unique triggering actorsNumber of unique users or actors who triggered runs of this workflow
runsTotal number of workflow runs in the selected period
current billing cycle cost (approx.)Approximate cost for the current billing cycle (if applicable)
skippedNumber (and percentage) of runs that were skipped
successesNumber (and percentage) of successful runs
failuresNumber (and percentage) of failed runs
cancelledNumber (and percentage) of cancelled runs
total run duration (approx.)Total duration of all runs (formatted as hours, minutes, seconds)
longest run duration (approx.)Duration of the longest single run
average run duration (approx.)Average duration of all runs
p95 run duration (approx.)95th percentile run duration
runs on SundayNumber of runs started on Sunday
runs on MondayNumber of runs started on Monday
runs on TuesdayNumber of runs started on Tuesday
runs on WednesdayNumber of runs started on Wednesday
runs on ThursdayNumber of runs started on Thursday
runs on FridayNumber of runs started on Friday
runs on SaturdayNumber of runs started on Saturday

Workflow runs

List runs for a specific workflow, including status, conclusion, and timing information.

Query options

NameDescriptionRequired
ownerGitHub user or organization that owns the repositoryYes
repositoryName of the repositoryYes
WorkflowThe workflow ID or file name. Use id or the filename from path from workflows queriesYes
BranchThe head branch to filter onNo
Sample queries

Show all completed runs for the Levitate workflow in the grafana/grafana repository:

  • Owner: grafana
  • Repository: grafana
  • Workflow: detect-breaking-changes-levitate.yml

Response

NameDescription
idUnique identifier for the workflow run
nameName of the workflow or workflow job
head_branchName of the branch the workflow run was triggered on
head_shaCommit SHA that triggered the workflow run
created_atWhen the workflow run was created: YYYY-MM-DD HH:MM:SS
updated_atWhen the workflow run was last updated: YYYY-MM-DD HH:MM:SS
html_urlURL to the workflow run in the GitHub web UI
urlAPI URL for the workflow run
statusCurrent status of the workflow run, can be: queued, in_progress, completed, waiting, requested, or pending
conclusionFinal conclusion of the workflow run, can be: success, failure, neutral, cancelled, skipped, timed_out, or action_required
eventEvent that triggered the workflow run (e.g., push, pull_request) - see Events that trigger workflows
workflow_idUnique identifier for the workflow definition
run_numberThe run number for this workflow run in the repository