Executive summary
This epic aims to provide a bi-directional synchronization between a bugzilla database and a Tuleap tracker.
The objective is to be able to leverage as much as possible on Tuleap extended tracking capabilities while keeping the Bugzilla base as a reference. A typical use case would be a team that want to use Tuleap for developements (ie Agile features) while end users still interact with Bugzilla to report issues and feature requests.
Open questions
- What is the expected behaviour when a ticket is updated on both sides
- Step 1: a bug from bugzilla is imported into Tuleap
- Step 2: the bug is updated Tuleap side
- Step 3: the bug is updated Bugzilla side
- Step 4: What do we do synchronization is triggered ?
- What do we do with user informations when data are pushed to Bugzilla ?
- In Tuleap we are able to replicate Bugzilla user database
- But when we push data from Tuleap to Bugzilla (status updates, new comments, etc) what shall we do about the Tuleap author and Tuleap date ?
Work to be done
- Import from Bugzilla to Tuleap is already managed, this allow to create a Tuleap tracker out of a Bugzilla query (XML)
- Update of Tuleap tracker (after initial import) to create new bugs and update the existing one. The import of new artifacts is already managed but there is a work to be done to deal with artifact update (likely need to keep a "last sync date" field in tracker, see gerrit #6106.
- Push data from Tuleap to gerrit
- There is a need to define a mapping (probably just based on the field names) and a list of fields that should be mapped
- The comments can be replicated as well. They will be created on bugzilla by a system user for instance "Tuleap Bot" but will contain a text version of comment + user name + date
- The push from Tuleap to Bugzilla can be done with XMLRPC API (see attachment)
Relevant informations:
- http://php.net/manual/fr/function.xmlrpc-encode-request.php
- https://www.bugzilla.org/docs/4.4/en/html/api/Bugzilla/WebService.html