github-api

How to get list of trending github repositories by github api?


I want get list of github trending repos like this -https://github.com/trending?l=java but i didnt find any similar request methods at https://developer.github.com/v3/ , how can i get json responce with trending repos?


Solution

  • GitHub seems to use their API to write the trending page and don't present it back as a particular API. You need to use the Repository Search API. I've followed the examples on this page, which could solve your needs by:

    # We'll use the `date` command to get the date for "7 days ago"
    $ date -v-7d '+%Y-%m-%d'
    # => 2013-07-15
    
    curl -G https://api.github.com/search/repositories --data-urlencode "sort=stars" --data-urlencode "order=desc" --data-urlencode "q=language:java"  --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`"
    

    And then go from there. You can also make your life a lot easier by installing jq on OS X or other platforms to get prettier output:

    curl -G https://api.github.com/search/repositories --data-urlencode "sort=stars" --data-urlencode "order=desc" --data-urlencode "q=language:java"  --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`" | jq ".items[0,1,2] | {name, description, language, watchers_count, html_url}"
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- -- 77  161k   77  125k    0     0   131k      0  0:00:01 --:--:--  0100  161k  100  161k    0     0   163k      0 --:--:-- --:--:-- --:--:--  163k
    {
      "name": "vibrant.js",
      "description": "Extract prominent colors from an image. JS port of Android's Palette.",
      "language": "JavaScript",
      "watchers_count": 1466,
      "html_url": "https://github.com/jariz/vibrant.js"
    }
    {
      "name": "JSPatch",
      "description": "JSPatch bridge Objective-C and JavaScript using the Objective-C runtime. You can call any Objective-C class and method in JavaScript by just including a small engine.",
      "language": "Objective-C",
      "watchers_count": 830,
      "html_url": "https://github.com/bang590/JSPatch"
    }
    {
      "name": "KRVideoPlayer",
      "description": "类似Weico的播放器,支持竖屏模式下全屏播放",
      "language": "Objective-C",
      "watchers_count": 524,
      "html_url": "https://github.com/36Kr-Mobile/KRVideoPlayer"
    }