The Easily Amused's Guide to Searching GitHub Issues

July 28, 2014 holman

The GitHub UI is great if you want to see which issues are assigned to you, or for planning out your next milestone iteration, or if you’re optimizing :zzz:zzzzzzzzzz god i’m already bored talking about all this work stuff. Let’s find out how many open source projects have a label named ¯\_(ツ)_/¯:

Search results

Okay, there’s only one. But there are two with a label of ಠ_ಠ. This opens up a world of opportunity for issue triage here, people.

Some ground rules

I’m going to run through a bunch of advanced search terms that GitHub lets you filter on. Two places to use these: the global github.com/search search page, and the repository search page (here’s Bootstrap’s search page, for example).

Take special note of any filter syntax here that might help you in your day-to-day job, and then forget all about them and go eat a donut or something.

Titles

Make no mistake: programmers make mistakes. For example, use in:title to specifically search the title field and see all of the reverts of reverted reverts:

is:pr "revert revert revert" in:title

Still cedes the victor chair to those who have reverted reverts of reverted reverts, though:

is:pr "revert revert revert revert" in:title

Merged Pull Requests

Specifying is:pr and is:merged will filter by pull requests that have been merged.

Here’s a few thousand pulls that blaze a trail:

is:merged is:pr "don't merge this"

Luckily there is one among us that realize programmers don’t read anything and need a little more explicit encouragement.

is:pr "for the love of god don't merge this"

That pull was merged, too, btw.

Date spans

According to Google Trends, brogrammers really hit their stride in July 2011:

We should dig deeper, though, and figure out who were the bro trailblazers before brogrammers were a thing.

created:, updated:, merged:, and closed: all accept datestamps, either before or after scopes, with <YYYY-MM-DD and >YYYY-MM-DD, or ranges, like YYYY-MM-DD..YYYY-MM-DD. So, assuming the birth of the brogrammer term hit around July 2011, we can scientifically verify who bro’d it up before it was (un)cool. Basically bro hipsters. Or brosters.

created:<2011-07-01 bro

Languages

Drop a language: filter in your query and you can get instant ammunition for language flamewars.

For example, there’s a half-dozen issues in Go repositories talking about metaprogramming:

language:go metaprogramming

Ruby developers, on the other hand, CAN”T GET ENOUGH METAPROGRAMMING in their 400 issues, which are all probably dynamically referencing each other, although it’d take a few hours to figure out exactly how they’re doing that before we give up and just rewrite the goddamn thing in six small methods instead god why do I have to do this every single time oh right here’s the syntax:

language:ruby metaprogramming

Also here are a bunch of eager beavers:

language:objective-c swift rewrite

Comments

Here’s a list of folk who probably commented on a heavily-trafficked thread, likely posted in a funny meme photo, and then got real mad that they got millions of notifications from people doing the same thing afterwards:

comments:>50 unsubscribe thread

You can also narrow searches just to the comments with in:comments. Here’s a bunch of open pulls that got the shipit squirrel — :shipit: — dropped in them:

in:comments is:open is:pr shipit

Mentions

The mentions: filter lets you search through all issues and pull requests that mention a specific user.

Here, we can see the number of people complimenting Linus on his inclusive demeanor:

mentions:torvalds sweet demeanor

More reading

Would you like to know more? The full list of search filters are listed on the help site.