Today we’re rolling out a new feature for Lighthouse that’s been needed for a long time: bi-directional ticket references. Since we deployed this internally, we’ve all been using this new feature like crazy, and it’s really helped get things done here. We’ve tried hard to make it as workflow agnostic as possible, as you’ll see.

While it’s easy to link to other tickets in the same project with a comment like “blocked by #145”, it’s not easy to see what links to a given ticket. This one-way relationship limits the applications of ticket links, so we decided to make it a two-way relationship.
When a ticket links to another ticket, we now create a back-reference that you can see from the linked ticket sidebar. An excerpt of the paragraph surrounding the link is also included, to provide context. This allows you to easily specify ad-hoc relationships between tickets the same way you do now, without having to take any additional steps.

In fact, there’s a good chance you’ll find a use for this feature right away. While back-filling the references for existing tickets, we found that of 12 million tickets, over 300,000 included references to other tickets, with a total of 1.5 million references across all of Lighthouse. This means you are likely to see new sidebar content for commonly referenced tickets in your Lighthouse.
We’ve also hooked up an API endpoint for this first version of the feature, for listing references to a given ticket (references can still only be created by comments, already possible via the API). By accessing the “references” resource on a ticket using the API, you can get a list of references for that ticket. Use it to build your own ticket dependency graph, or who knows what! Of course it’s up to you to parse out the words to infer the type of relationship, and enforce that across your team.
A few details: if a reference is out of place or irrelevant, they’re easy to remove, but they’ll reappear if the referencing comment is updated without removing the reference. References are added in an asynchronous job and may not appear right away. We actually pull these references out using an HTML parser, so even ticket links that are not specifically auto-links should still work as intended.
We hope you find this new feature useful, and we welcome your feedback on how it could be even more useful!


5 Comments
I'm extremely f*cking excited about this one!
Thanks for this :) I noticed it the other night and already love it. The excerpt feature is a nice way to implement this as well.
Great. Can't wait to see this used in the project I participate in. Much needed and looks nice!
Very nice feature.
It would be slightly better if a ticket didn't reference itself. Our git commits are cluttering up the list.
Thanks, Nathan.
Wow. I noticed it the other day, and thought I was just retarded for never noticing/using this feature. When I was using mingle on another project, we depended on this functionality, and have been sorely missing it until now.
Me likes.
Make your voice heard
We value freedom of speech, but please don't be an asshat. You can use Textile in your comments. Surround code in a
<macro:jscode lang="LANG">block.