Back to Github Trends

GitHub Trends API

docs/API.md

latest6.4 KB
Original Source

GitHub Trends API

GitHub Trends provides two methods to access GitHub Trends data: the Website Workflow at githubtrends.io and the API Workflow described below.

Available Cards

After authenticating with either the public or private workflow (see below), users can create the following cards to display their GitHub Trends data:

  • Languages Card: See your top languages over a given time interval, based on all commits to personal and open-source repositories.

  • Repositories Card: See your top repositories based on lines of code contributed over a given time period. This includes both personal and open-source repositories.

Authentication

You will need to create an account with GitHub Trends to create cards. The account is used to assosciate queries to the GitHub API made on your behalf with your GitHub account's API quota. We use less than 5% of your quota in almost all scenarios. There are two levels of authentication possible:

  • Public Workflow: The Public Workflow asks for read-only permission to public information. This will allow us to analyze your public contributions and repositories only.
  • Private Workflow: The Private Workflow asks for read and write permission to public and private information. This will allow us to analyze your entire contribution history. See the FAQ for further information.

You will only need to authenticate once with GitHub Trends. Subsequent requests will use your stored access token.

For the public workflow, visit

md
https://api.githubtrends.io/auth/signup/public

For the private workflow, visit

md
https://api.githubtrends.io/auth/signup/private

You will be prompted to allow access, and (hopefully) redirected to a success screen.

If you have previously authenticated with the public workflow, you can upgrade to the private workflow by using the private link. If you would like to delete your account, go to your GitHub settings and revoke the access token.

Languages Card

See your top languages over a given time interval, based on all commits to personal and open-source repositories. Your top five languages will be displayed. Due to the approximations used internally, LOC metrics will be rounded to the nearest 100 lines.

After authentication, visit

md
https://api.githubtrends.io/user/svg/{user_id}/langs

Customization

The following customization options are available:

OptionDescriptionDefault
time_rangeSpecifies the time range to query statistics for. Valid options are one_month, three_months, six_months, one_year, and all_time.one_month
include_privateDetermines if private contributions are included (requires private workflow).false
compactDetermines if compact layout is used (forces percentages over LOC)false
use_percentValid if compact=false, determines if line of code (default) or percentages are displayed.false
loc_metricOptions are LOC added (added) and LOC changed (changed).added
themeTheme to use for the card. See docs/THEME.md for options.classic

Customizations can be appended to the endpoint, separated first with ? and subsequently with &.

Example

Endpoint: https://api.githubtrends.io/user/svg/avgupta456/langs?time_range=three_months&include_private=true&compact=true

Repositories Card

After authentication, visit

md
https://api.githubtrends.io/user/svg/{user_id}/repos

Customization

The following customization options are available:

OptionDescriptionDefault
time_rangeSpecifies the time range to query statistics for. Valid options are one_month, three_months, six_months, one_year, and all_time.one_month
include_privateDetermines if private contributions are included (requires private workflow).false
groupOptions are none (default), other (group all other repos together), and private (force private repos to be grouped)none
use_percentValid if compact=false, determines if line of code (default) or percentages are displayed.false
loc_metricOptions are LOC added (added) and LOC changed (changed).added
themeTheme to use for the card. See docs/THEME.md for options.classic

Customizations can be appended to the endpoint, separated first with ? and subsequently with &.

Example

Endpoint: https://api.githubtrends.io/user/svg/avgupta456/repos?time_range=one_year&include_private=true&group=private&loc_metric=changed&theme=dark