Q: How can we enable Bugzilla import?
Your README file says that it is possible to make Yoxel connect to a Bugzilla
(or another external bug-tracker) and do import and synchronization.
How can we do this for Bugzilla?
Answer:
Synchronization with external web-based bug-tracker (XBTS)
-----------------------------------------------------------------------------------
Here is how the synchronization works:
1. Yoxel connects to an external web-based bug-tracker over HTTP.
This way Yoxel can actually connect to your remote Bugzilla, GNATS,
Mantis, Retrospectiva, Trac.
2. For each bug/report Yoxel first downloads an HTML
bug-summary page. (Here is an example of a bug-summary page:
https://bugzilla.mozilla.org/show_bug.cgi?id=341380)
3. Then Yoxel parses the HTML page of that bug/report and translates
it into internal format (.hf file), then adds it to its database as an external
request (a special request type).
Installation and Testing
--------------------------------
1. Install the latest version of Yoxel
2. Check that your installation includes utils/test_import.php script.
3. Check that your installation includes the following sub-directories:
pear/ - a number of pear modules that you could actually install on your own.
(The main one is pear/HTTP/Request.php)
parsers/ - HTML parsers (parse_bugzilla_pr_html.pl)
4. Test the Bugzilla html-bug-page parser. For that, open a Bugzilla bug page ID=N
(http://bugzilla_server/show_bug.cgi?id=N) and save it as a file bugN.html.
Then cd to <yoxel_root> and try running:
parsers/parse_bugzilla_pr_html.pl bugN.html
- Do you see a new file created, bugN.html.hf?
- Open it, do you see proper information in it (Product/Component/Synopsys/...)?
- Contact us at support@yoxel.com if the script does not seem to work correctly.
5. Configure the XBTS synchronization module by setting the following parameters
in the includes/yoxel-config.inc file:
define('YXL_XBTS_TYPE','Bugzilla');
define('YXL_XBTS_BUG_URL','http://bugzilla_server/show_bug.cgi?id=%s');
define('YXL_XBTS_LOGIN_ID','my@bugzilla.id');
define('YXL_XBTS_LOGIN_PASSWORD','mybugzillapasswd');
If your Bugzilla uses more sophisticated authentication method, you may also
have to set this one:
define('YXL_XBTS_LOGIN_URL',TRUE);
6. Try running
utils/test_import.php <bugzilla_bug_id>.
7. If the script completes successfully without any errors the set-up is complete.
If not, please contact us at support@yoxel.com so we could help you with your
specific case.
On-demand Importing and Synchronization
-----------------------------------------------------------
1. Now, log into your Yoxel account and select 'requests' menu. You should
see one more field there, 'Import one or more requests from your external BTS'.
2. Add the 'Recently Imported External Requests' dashlet to the current
dashboard page. You should see requests that you imported earlier
using test_import.php script.
3. Try entering one Bugzilla ID into 'Import one or more requests from
your external BTS' field. You should see a new request listed in the
'Recently Imported External Requests' dashlet now.
4. Click on that request to open its detailed view. You should see
XRID (Bugzilla ID) info and the action list should have the 'Sync' action.
Try the 'Sync' action.
Periodic Mass Synchronization
------------------------------------------
Besides importing and synchronizing individual records one by one,
you will probably want to keep all your external requests up-to-date
with the original copy from your external bug-tracker. To do that you
can set up a cron job with the following script utils/cron_pr_import.php
Something like this:
0 9-18 * * * (cd <yoxel_root> && utils/cron_pr_import.php 1000)
(to update 1000 records every working hour)
Customization
-------------------
Please review the two scripts that we provide. Most probably you want
to change a few things in them:
parsers/parse_bugzilla_pr_html.pl - examine the end of the script,
you may want to change the way your Bugzilla product/component names,
sevirity/priority, and other fields are mapped to similar Yoxel fields.
utils/cron_pr_import.php - examine the main SQL SELECT, you may want to
change it for better control over which records and how often the script should visit.
Enjoy!
To see all user comments and participate in the disscussion log into >>Yoxel Support Portal / Knowledge Base<<
For anonymous login click this link