Skip to content
:octocat: The missing APIs for GitHub trending projects and developers 🏆
Branch: master
Clone or download
Latest commit e6014e1 Mar 20, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images Add lint-staged and update README May 6, 2018
scripts Revert "remove yarn" May 8, 2018
src chore: enable http protocol cache (#23) Mar 2, 2019
.all-contributorsrc
.babelrc feat: Add `builtBy` field in API Oct 14, 2018
.editorconfig Initial Commit May 4, 2018
.eslintrc.js Add Jest May 8, 2018
.gitattributes Ignore Apiary in GitHub language May 5, 2018
.gitignore Add Jest May 8, 2018
.prettierrc Add lint-staged and update README May 6, 2018
.travis.yml
CODE_OF_CONDUCT.md Add CONTRIBUTING and CODE_OF_CONDUCT May 6, 2018
CONTRIBUTING.md Add CONTRIBUTING and CODE_OF_CONDUCT May 6, 2018
LISENSE chore: Update README Feb 13, 2019
Procfile chore: settings for deployment with heroku (#21) Feb 25, 2019
README.md
apiary.apib feat: Remove default size for avatar Dec 21, 2018
languages.json Add lint-staged and update README May 6, 2018
now.json chore: Update now build script (#24) Mar 2, 2019
package.json
rollup.config.js
yarn.lock

README.md

Github Unofficial Trending API

:octocat: A simple API that returns number of Github trending repositories and developers.

Travis semantic-release coverage GitHub license Code of Conduct

npm (scoped) npm module formats: cjs, es

hero image


Table of Contents

REST API

See the full API documentation in Apiary.

Trending Repositories

Receive an array of trending repositories.

URL Endpoint:

https://github-trending-api.now.sh/repositories?language=javascript&since=weekly

Parameters:

  • language: optional, list trending repositories of certain programming languages, possible values are listed here.
  • since: optional, default to daily, possible values: daily, weekly and monthly.

Response:

[
  ...
  {
    "author": "google",
    "name": "gvisor",
    "url": "https://github.com/google/gvisor",
    "description": "Container Runtime Sandbox",
    "language": "Go",
    "languageColor": "#3572A5",
    "stars": 3320,
    "forks": 118,
    "currentPeriodStars": 1624,
    "builtBy": [
      {
        "href": "https://github.com/viatsko",
        "avatar": "https://avatars0.githubusercontent.com/u/376065",
        "username": "viatsko"
      }
    ]
  }
  ...
]

Trending Developers

Receive an array of trending developers.

URL Endpoint:

https://github-trending-api.now.sh/developers?language=javascript&since=weekly

Parameters:

  • language: optional, list trending repositories of certain programming languages, possible values are listed here.
  • since: optional, default to daily, possible values: daily, weekly and monthly.

Response:

[
  ...
  {
    "username": "google",
    "name": "Google",
    "url": "https://github.com/google",
    "avatar": "https://avatars0.githubusercontent.com/u/1342004",
    "repo": {
      "name": "traceur-compiler",
      "description":
        "Traceur is a JavaScript.next-to-JavaScript-of-today compiler",
      "url": "https://github.com/google/traceur-compiler"
    }
  }
  ...
]

List Languages

Receive popular languages and all languages.

URL Endpoint:

https://github-trending-api.now.sh/languages

Response:

{
  "popular": [
    ...
    {
      "urlParam": "html",
      "name": "HTML"
    }
    ...
  ],
  "all": [
    ...
    {
      "urlParam": "javascript",
      "name": "JavaScript"
    }
    ...
  ]
}

NPM Package

You could also use the API as a NPM package.

Install

$ npm install --save @huchenme/github-trending

Usage

import {
  fetchAllLanguages,
  fetchRepositories,
  fetchDevelopers,
} from '@huchenme/github-trending';

fetchAllLanguages().then(languages => {
  console.log(languages);
});

fetchRepositories({ language: 'ruby', since: 'monthly' }).then(repositories => {
  console.log(repositories);
});

fetchDevelopers({ language: 'javascript' }).then(developers => {
  console.log(developers);
});

API

fetchAllLanguages()

Return popular languages and all languages.

{
  popular: [
    ...
    {
      urlParam: 'html',
      name: 'HTML'
    }
    ...
  ],
  all: [
    ...
    {
      urlParam: 'javascript',
      name: 'JavaScript'
    }
    ...
  ]
}

fetchRepositories(params)

Receive an array of trending repositories.

params:

  • language: possible values are the the ones from fetchAllLanguages() or just find here.
  • since: daily, weekly or monthly, default to daily.
[
  ...
  {
    author: 'google',
    name: 'gvisor',
    url: 'https://github.com/google/gvisor',
    description: 'Container Runtime Sandbox',
    language: 'Go',
    languageColor: '#3572A5',
    stars: 3320,
    forks: 118,
    currentPeriodStars: 1624,
    "builtBy": [
      {
        "href": "https://github.com/viatsko",
        "avatar": "https://avatars0.githubusercontent.com/u/376065",
        "username": "viatsko"
      }
    ]
  }
  ...
]

fetchDevelopers(params)

Receive an array of trending developers.

params:

  • language: possible values are the the ones from fetchAllLanguages() or just find here.
  • since: daily, weekly or monthly, default to daily.
[
  ...
  {
    username: 'google',
    name: 'Google',
    url: 'https://github.com/google',
    avatar: 'https://avatars0.githubusercontent.com/u/1342004',
    repo: {
      name: 'traceur-compiler',
      description:
        'Traceur is a JavaScript.next-to-JavaScript-of-today compiler',
      url: 'https://github.com/google/traceur-compiler'
    }
  }
  ...
]

Projects using github-trending-api

License

MIT

You can’t perform that action at this time.