Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save mohitmun/ae46adbeba9fcaf8c24266a0b9ad86a1 to your computer and use it in GitHub Desktop.
Save mohitmun/ae46adbeba9fcaf8c24266a0b9ad86a1 to your computer and use it in GitHub Desktop.
5 entertaining things you can find with the GitHub Search API

Find the oldest user accounts with zero followers

Go follow these poor souls.

$ curl -G https://api.github.com/search/users   \
    --data-urlencode 'q=followers:0'            \
    --data-urlencode 'sort=joined'              \
    --data-urlencode 'order=asc'                \
    -H 'Accept: application/vnd.github.preview' \
    | jq '.items[0,1,2] | {html_url, login, id}'
{
  "id": 30,
  "login": "fanvsfan",
  "html_url": "https://github.com/fanvsfan"
}
{
  "id": 32,
  "login": "railsjitsu",
  "html_url": "https://github.com/railsjitsu"
}
{
  "id": 44,
  "login": "errfree",
  "html_url": "https://github.com/errfree"
}

Check out the User Search API docs for more details.

Find recently-indexed Clojure projects using an MIT license

Rebels! I bet these dudes don't like hammocks either.

$ curl -G https://api.github.com/search/code          \
    --data-urlencode 'q=MIT License path:project.clj' \
    --data-urlencode 'sort=indexed'                   \
    --data-urlencode 'order=desc'                     \
    -H 'Accept: application/vnd.github.preview'       \
    | jq '.items[0,1,2] | {description: (.repository.description), name: (.repository.full_name), html_url}'
{
  "html_url": "https://github.com/royvandewater/optparse/blob/e4bb8558405ffd7ba6a14718b89e7cd418b5565e/project.clj",
  "name": "royvandewater/optparse",
  "description": "Option parser for clojure"
}
{
  "html_url": "https://github.com/SnootyMonkey/coming-soon/blob/108decfd74338ba5428580c8cd156f684484d3b2/project.clj",
  "name": "SnootyMonkey/coming-soon",
  "description": "coming-soon is a simple Clojure/ClojureScript/Redis 'landing page' application that takes just a few minute to setup"
}
{
  "html_url": "https://github.com/rreas/ring-test/blob/5fd78404eec4f81033ae073c5a42ea8a55ccc75a/project.clj",
  "name": "rreas/ring-test",
  "description": "An integration test framework for ring web applications."
}

Check out the Code Search API docs for more details.

What does John Resig work on other than JavaScript?

$ curl -G https://api.github.com/search/repositories   \
    --data-urlencode 'q=@jeresig -language:javascript' \
    -H 'Accept: application/vnd.github.preview'        \
    | jq '.items[] | {html_url, watchers_count, language, name}'
{
  "name": "processing-js",
  "language": "Java",
  "watchers_count": 1455,
  "html_url": "https://github.com/jeresig/processing-js"
}
{
  "name": "selectortest",
  "language": null,
  "watchers_count": 12,
  "html_url": "https://github.com/jeresig/selectortest"
}
{
  "name": "wtpa-bot",
  "language": "Perl",
  "watchers_count": 9,
  "html_url": "https://github.com/jeresig/wtpa-bot"
}
{
  "name": "jeresig.github.com",
  "language": null,
  "watchers_count": 6,
  "html_url": "https://github.com/jeresig/jeresig.github.com"
}
{
  "name": "apples2artworks",
  "language": "Python",
  "watchers_count": 1,
  "html_url": "https://github.com/jeresig/apples2artworks"
}
{
  "name": "datacook",
  "language": "Perl",
  "watchers_count": 0,
  "html_url": "https://github.com/jeresig/datacook"
}

@jeresig has a repo with zero people watching it? This changes my whole worldview.


Check out the Repository Search API docs for more details.

Find the most commented issues in the past month

OK. OK. You were only expecting 5 examples. But since you read this far, here's a bonus one.

# We'll use the `date` command to get the date for "1 month ago"
$ date -v-1m '+%Y-%m-%d'
# => 2013-06-23

$ curl -G https://api.github.com/search/issues             \
    --data-urlencode "q=created:>`date -v-7d '+%Y-%m-%d'`" \
    --data-urlencode 'sort=comments'                       \
    --data-urlencode 'order=desc'                          \
    -H 'Accept: application/vnd.github.preview'            \
    | jq '.items[0,1,2] | {html_url, title, comments}'

I ran this a couple months ago, when we were first sketching out the search API. What did I find? A Pull Request to remove all press representatives from bitcoin.org. Followed by another Pull Request to counteract the first one.

Interesting times.

{
  "comments": 158,
  "title": "Remove press representatives",
  "html_url": "https://github.com/bitcoin/bitcoin.org/issues/152"
}
{
  "comments": 151,
  "title": "Add several independent voices to the Press Center page",
  "html_url": "https://github.com/bitcoin/bitcoin.org/issues/162"
}
{
  "comments": 150,
  "title": "Select and implement a template engine (or The issue to discuss everything Framework refactoring)",
  "html_url": "https://github.com/joomla/jissues/issues/86"
}

Check out the Issue Search API docs for more details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment