• 
      

    Add the BugTracker framework and Bugzilla/JIRA bug infoboxes.

    Review Request #6047 — Created July 3, 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.