Integrate bug tracker configuration with the hosting service support.

Review Request #3131 — Created May 31, 2012 and submitted

Information

Review Board
release-1.6.x

Reviewers

Integrate bug tracker configuration with the hosting service support.

The repository form now allows for configuration of bug trackers again.
The possible trackers are pulled from the list of hosting services.

A hosting service can now specify whether it supports repositories, bug
trackers, or both. There's a mixture now of each type. Bugzilla, Trac,
and Redmine services have been added, and are all currently for bug
trackers only.

Some of the fields in HostingService (repository_form, repository_plans)
have been changed to be more generic. Some new functionality has also
been added to make it easier to query for the information we need.

The repository form, of course, is the bulk of this work. Like a
repository's hosting service, all the field data is stored in
Repository.extra_data. This reuses the same forms that repository
configuration use, but adds a "bug_tracker-" prefix to the keys.

Unlike with repositories, though, there's no concept of linking an
account. Instead, there's just a username field, when the bug tracker
needs it. In the future, when we need deeper integration into bug
trackers, that may change, though we'll need to promote bug trackers to
being more like repositories, and change the configuration workflow a
bit.

Existing bug trackers will not be categorized under the service type.
They will all appear as Custom. It would be possible to reverse-map it,
like we used to, but it will get it wrong in many cases (such as with
GitHub, as each plan's bug tracker's pattern is interchangeable).

Right now, all the configuration continues to update the
Repository.bug_tracker field, which is still used for all display. We
will probably want to change that down the road to dynamically compute
the bug tracker URL on demand, since it's possible for those URLs to
change in a HostingService in new releases. That needs some thought,
though.

This does not yet provide new unit tests. Those are coming next.
Hand-tested with various configurations, and verified that the data was
stored properly in the database. Existing unit tests run.
david
  1. Ship It!
  2. 
      
chipx86
david
  1. Looks good.
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-1.6.x (b9ea340)