Add the BugTracker framework and Bugzilla/JIRA bug infoboxes.

Review Request #6047 — Created July 2, 2014 and submitted — Latest diff uploaded

Information

Review Board
master
193
138ff8c...

Reviewers

This change adds a new interface to the hosting service app for deeper
integration with bug trackers. At the moment, this interface defines three
methods to fetch information about a given bug, which are used to provide a
hover infobox that shows the summary, description, and status.

This interface is currently implemented by the existing Bugzilla backend, and
by a new JIRA backend.

The next steps for this is to implement the interface for more bug-tracker
backends, and to start adding capabilities such that Review Board can do things
like add a comment to a bug when a review request linking to it is published.

This change is based on these changes by Tomi Äijö: * https://reviews.reviewboard.org/r/5531/ * https://reviews.reviewboard.org/r/5769/ * https://reviews.reviewboard.org/r/5745/

I've made several changes to Tomi's original implementation. The bug infobox
formatting has been cleaned up a bit, especially with regards to the formatting
of the description text. The caching steps are now done in a helper inside the
BugTracker class so we don't have to re-implement it everywhere. I've also made
it so that failures to fetch the bug result in no infobox, rather than an
infobox which just has the ID and nothing else.

  • Tested the bug infobox with a bug tracker configured to point to
    https://bugzilla.mozilla.org, and https://jira.atlassian.com. Saw that bug
    information was fetched correctly and that the infobox looked good.
  • Tested invalid bug numbers and saw that the infobox request returned 404 and
    no infobox was displayed.
  • Tested that links to existing bug trackers (Google Code, etc) worked well.
  • Tested that newly-added bugs linked correctly.
  • Ran unit tests.