Issue management: the final frontier. Almost two years ago to the day, GitHub launched an issue tracker. Some people love it, some people hate it — but let’s not focus on the past (we’re living in the future so the present is our past). Let’s talk about the version of Issues that launches today.

Anatomy of an issue

Let’s start with what an Issue is. Here’s a screenshot of a GitHub Issue.

Starting off you’ll get an overview of the Issue’s state, who’s been working on it and what it’s all about.

Assign, add to a milestone and attach labels

One of the hardest challenges in issue management is organizing and finding the issues you want to work on. You’ve always been able to add labels to an issue, but now you can assign someone to the issue and add it to a milestone.

The triforce of labels, assignees and milestones allows you organize issues no matter if you’re a workflow-heavy shop or just looking for a quick sortable task list on your personal projects.

Issue Events

Whenever someone closes or reopens an issue, we’ll show it inline.

Navigating issues

Issues 2.0 launches with an issue browsing interface that’s simple, responsive, and flexible.

The list view allows you to quickly filter and find the issues you’re looking for. Find issues in milestones, by multiple labels — and further sort things down to issues that are assigned to you or that someone @mentions you in. All these filters are sticky — you can leave the page and come back later to return to your previous filters.

You can mass-edit from this page: close, reopen, add labels, assign to users or add to milestones.

Search

We started by adding quicksearch to the search field that finds milestones and issues as you type your query.

If the quicksearch doesn’t find the issue you were looking for, you can continue to the full search page.

Our new search engine indexes everything about issues — including comments, so you get the results you’re looking for.

Commits + Issues

Issues has deep integration with commit messages. Any time you reference an issue number from a commit message, we’ll bring in the commits to the discussion view for you.

And of course you can close issues with commit messages.

We support a number of synonyms:

fixes #xxx

fixed #xxx

fix #xxx

closes #xxx

close #xxx

closed #xxx

Email + Issues

We launched email reply support a little while ago — and it’s a perfect fit for Issues. Any time you get an issue notification in your email, just hit reply and type in your response.

Keyboard + Issues

Love to use the keyboard to navigate web pages? Issues has great keyboard support.

PJAX: Next generation partial page loads

Every link in Issues 2.0 works as you’d expect any link on the internet to work (open in a new tab, copy & pastable URL) — but you’ll still get an insanely responsive interface (reminiscent of old-school AJAX interfaces). This is thanks to PJAX — something we’ve been using more and more throughout the site.

You’ll only get the benefits of PJAX if you’re using Firefox 4 or Chrome — I highly recommend upgrading.

Live and direct

Enough talk — go ahead and check out Issues 2.0 yourself. Try it out on your own repositories, or check out some examples from around the ‘hub:

Issues 1.0 is played out like the jheri curl — I’m ready for Issues 2.0.