All Projects → huchenme → Github Trending Api

huchenme / Github Trending Api

Licence: mit
The missing APIs for GitHub trending projects and developers 📈

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Github Trending Api

Builderbook
Open source web application to learn JS stack: React, Material-UI, Next.js, Node.js, Express.js, Mongoose, MongoDB database.
Stars: ✭ 3,015 (+388.65%)
Mutual labels:  github-api, expressjs
Gitwar
🚀 Gitwar - Compete with Github
Stars: ✭ 44 (-92.87%)
Mutual labels:  github-api, expressjs
Now Builders
Official Now Builders created by the ZEIT team
Stars: ✭ 483 (-21.72%)
Mutual labels:  zeit
Starcharts
Plot your repository stars over time.
Stars: ✭ 560 (-9.24%)
Mutual labels:  github-api
Gitstalk
Discover who's upto what on Github
Stars: ✭ 538 (-12.8%)
Mutual labels:  github-api
Picx
基于 GitHub API 开发的图床神器,图片外链使用 jsDelivr 进行 CDN 加速。免下载、免安装,打开网站即可直接使用。免费、稳定、高效。
Stars: ✭ 482 (-21.88%)
Mutual labels:  github-api
Express Validator
An express.js middleware for validator.js.
Stars: ✭ 5,236 (+748.62%)
Mutual labels:  expressjs
Github Mirror
Scripts to mirror Github in a cloudy fashion
Stars: ✭ 478 (-22.53%)
Mutual labels:  github-api
Serve Favicon
favicon serving middleware
Stars: ✭ 586 (-5.02%)
Mutual labels:  expressjs
Generator Express No Stress
🚂 A Yeoman generator for Express.js based 12-factor apps and apis
Stars: ✭ 534 (-13.45%)
Mutual labels:  expressjs
Cors
Node.js CORS middleware
Stars: ✭ 5,252 (+751.22%)
Mutual labels:  expressjs
Git Labelmaker
🎏 Manage your GitHub labels from the command line!
Stars: ✭ 534 (-13.45%)
Mutual labels:  github-api
Githubchart Api
📅 Embed github contributions chart as image
Stars: ✭ 489 (-20.75%)
Mutual labels:  github-api
Kraken Js
An express-based Node.js web application bootstrapping module.
Stars: ✭ 4,938 (+700.32%)
Mutual labels:  expressjs
Git Peek
git repo to local editor instantly
Stars: ✭ 485 (-21.39%)
Mutual labels:  github-api
Angular2 Express Starter
Angular 8 and Express 👪 ( Heroku ready )
Stars: ✭ 565 (-8.43%)
Mutual labels:  expressjs
Madclones
A collection of frameworks that I love with a strong focus on clean code, testing, software architecture/design and devops.
Stars: ✭ 480 (-22.2%)
Mutual labels:  expressjs
Body Parser
Node.js body parsing middleware
Stars: ✭ 4,962 (+704.21%)
Mutual labels:  expressjs
Swagger Express Middleware
Swagger 2.0 middlware and mocks for Express.js
Stars: ✭ 543 (-11.99%)
Mutual labels:  expressjs
Session
Simple session middleware for Express
Stars: ✭ 5,571 (+802.92%)
Mutual labels:  expressjs

Github Unofficial Trending API

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

hero image

Credits: Illustration by unDraw


Financial Contributors on Open Collective GitHub closed issues Travis semantic-release coverage GitHub license Code of Conduct

npm (scoped) module formats: cjs, es


Table of Contents

Expand Table of Contents

Projects using github-trending-api

  • Hacker Tab (Chrome Store): Chrome extension to view GitHub trending projects on new tab.
  • github-trending-plus (Live): ✨ Experimental Github trending UI.
  • HitUp (Chrome Store) (Website): Help you find top things, including GitHub Trending Repositories.
  • Gitter: Gitter for GitHub - 可能是目前颜值最高的 GitHub 小程序客户端.
  • flutter_wanandroid: Flutter 完整项目,WanAndroid 客户端,BLoC、RxDart 、国际化、主题色、启动页、引导页,拥有较好的项目结构&比较规范的代码!
  • vsc-github-trending: (VS Code Marketplace): Explore Github Trending repositories directly from Visual Studio Code
  • GiTiny(AppStore): iOS app for GitHub with exploring trending.
  • SwiftHub: GitHub iOS client written in RxSwift and MVVM clean architecture.
  • GitNews: Trending repositories from GitHub, HackerNews & Reddit (Mobile & Desktop).
  • mini-github: GitHub WeChat Mini Program (可能是全网功能最全的 GitHub 微信小程序).
  • StarGit (Website): Find trending repositories from GitHub. Built with Angular.
  • GitTouch (App Store, Google Play): Open source GitHub App built with Flutter.
  • lazyhub: lazyhub - Terminal UI Client for GitHub using gocui.
  • Gitrepos (Website): A simple PWA app that returns Trending Repositories & Developers from GitHub, Gitlab & HackerNews.
  • Trendzz (Website): Github trending PWA focusing on usability.
  • Ceelog Github trending in WeChat Official Account Platform.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Buy Me A Coffee

API Status

API status is available at uptimerobot.

REST API

See the full API documentation in Apiary.

Tutorial

How to scrape any website and build an API using cheerio.js

Trending Repositories

Receive an array of trending repositories.

URL Endpoint:

https://ghapi.huchen.dev/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.
  • spoken_language_code: optional, list trending repositories of certain spoken languages (e.g English, Chinese), possible values are listed here.

Response:

[
  ...
  {
    "author": "google",
    "name": "gvisor",
    "avatar": "https://github.com/google.png",
    "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"
      }
    ]
  }
  ...
]

Note that GitHub trending page sometimes is empty, in that case this API returns [] in response, your application should be able to handle it or read from previous cache.

Trending Developers

Receive an array of trending developers.

URL Endpoint:

https://ghapi.huchen.dev/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",
    "type": "organization",
    "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"
    }
  }
]

type could be organization or user.

List Languages

URL Endpoint:

https://ghapi.huchen.dev/languages

Response:

[
  {
    "urlParam": "1c-enterprise",
    "name": "1C Enterprise"
  },
  {
    "urlParam": "abap",
    "name": "ABAP"
  },
  {
    "urlParam": "abnf",
    "name": "ABNF"
  },
  {
    "urlParam": "actionscript",
    "name": "ActionScript"
  }
]

List Spoken Languages

URL Endpoint:

https://ghapi.huchen.dev/spoken_languages

Response:

[
  {
    "urlParam": "ab",
    "name": "Abkhazian"
  },
  {
    "urlParam": "aa",
    "name": "Afar"
  },
  {
    "urlParam": "af",
    "name": "Afrikaans"
  },
  {
    "urlParam": "ak",
    "name": "Akan"
  }
]

NPM Package

You could also use the API as a NPM package.

Install

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

Usage

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

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

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

console.log(languages);
console.log(spokenLanguages);

API

languages

List all languages

[
  {
    urlParam: '1c-enterprise',
    name: '1C Enterprise',
  },
  {
    urlParam: 'abap',
    name: 'ABAP',
  },
  {
    urlParam: 'abnf',
    name: 'ABNF',
  },
  {
    urlParam: 'actionscript',
    name: 'ActionScript',
  },
];

spokenLanguages

List all spoken languages

[
  {
    urlParam: 'ab',
    name: 'Abkhazian',
  },
  {
    urlParam: 'aa',
    name: 'Afar',
  },
  {
    urlParam: 'af',
    name: 'Afrikaans',
  },
  {
    urlParam: 'ak',
    name: 'Akan',
  },
];

fetchRepositories(params)

Receive an array of trending repositories.

params:

  • language: possible values are the the ones from languages or just find here.
  • since: daily, weekly or monthly, default to daily.
  • spokenLanguageCode: possible values are the the ones from spokenLanguages or just find here.
[
  ...
  {
    author: 'google',
    name: 'gvisor',
    avatar: 'https://github.com/google.png',
    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 languages or just find here.
  • since: daily, weekly or monthly, default to daily.
[
  ...
  {
    username: 'google',
    name: 'Google',
    type: 'organization',
    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'
    }
  }
  ...
]

docker

You can develop by using docker.

$ docker build -t github-trending-api .
$ docker run -d --rm -p 8000:8888 github-trending-api:latest

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].