public

5 entertaining things you can find with the GitHub Search API

  • Download Gist
00-about-search-api-examples.md
Markdown
02-lonely-users.md
Markdown

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.

04-rebel-clojure-projects.md
Markdown

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.

05-resig.md
Markdown

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.

06-trolls.md
Markdown

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.

The date command on Ubuntu Linux does not have the '-v' flag.

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.