Bugzilla reports is a set of reports based on information found in the Bugzilla database. The reports that are possible to configure in Bugzilla are "bug-count" centricts, and sometime there is a need for reports on other aspects, like time-tracking.
The reports are accessible threw the bugzilla-report servlet. Entering the URL to this servlet in a web browser without any parameter will display a web page allowing to choose and configure your report.
http://integration.example.com/jujunie-integration/bugzilla-report
Herafter, you'll find one section describing parameters common to all report, and one section per available reports:
| Parameters name | Mandatory | Possible values | Default value | Description |
|---|---|---|---|---|
| report_code | yes | See each available reports | - | Selects the report to produce |
| full | no | true, false | true | For the reports that generates HTML, configure if full HTML page have to be generated, or just the part containing the report itself |
| task | yes | generate | - | This is a mandatory parameter indicating that you do ant to generate the report. As other values are reserved to handle the Web interface, it is not necessary to list them here |
| preset_queries | no | Any preset query code defined in the configuration | - | Selects the preset queries to apply to the selected report |
<?xml version="1.0" encoding="UTF-8" ?>
<reports>
<hours-worked>
<report id="identifier1" name="My preset Queries Report One">
<selector name="This is a category"
add-from="list, of, tables, not, in, original, query"
add-where="clause = to AND add = to AND the IN (where, query)"/>
</report>
</hours-worked>
</reports>
Using only the configuration described above, the selectors to build for a detailed reporting can be quite huge. The idea is to define a base name and preset query containing variables, and then define wich values can takes those variables. In order to define the values that can take the variable, you can add a combinaison or sets.
A set simply define the values for each variable: the base selector will genrate as many selectors as there is sets defined
A combinaison defines one to n values for each variable: a preset query will be generated for each combinaison of the values of each parameter
Exemple: The selector below is equivalent to the definition of 38 selector nodes as defined in the previous section!!!
<selector name="Category example with {1}, {2} and {3}"
add-from="keywords, keyworddefs"
add-where="and keyworddefs.name='{1}'
and bugs.component_id={2}
and bugs.bug_severity={3}
and keyworddefs.id = keywords.keywordid
and keywords.bug_id = bugs.bug_id"/>
<combinaison>
<param number="1" value="delivery"/>
<param number="1" value="another"/>
<param number="1" value="coucou"/>
<param number="2" value="5"/>
<param number="2" value="2"/>
<param number="3" value="blocker"/>
<param number="3" value="critical"/>
<param number="3" value="major"/>
</combinaison>
<set>
<param number="1" value="client"/>
<param number="2" value="10"/>
<param number="3" value="enhancement"/>
</set>
<set>
<param number="1" value="other"/>
<param number="2" value="5"/>
<param number="3" value="enhancement"/>
</set>
</selector>
As I worked for a long time on this evolution, everything appears clear to me, bu t I have the feeling it's not that clear... Please send me e-mails if it's not.
Generates a HTML consolidated report of hours worked. It consolidates hours worked in Bugzilla using the following analytic axes:
| Parameters name | Mandatory | Possible values | Default value | Description |
|---|---|---|---|---|
| from | no | Any valid date | - | Define the lower date bound, included, when searching for hours worked. See formatting rules. |
| to | no | Any valid date | - | Define the upper date bound, excluded, when searching for hours worked. See formatting rules. |
| date-range (Period split) | yes | NONE,DAILY,WEEKLY,MONTHLY | NONE | Define the date range to split consolidation |
| x-show-level (X Show Level) | none | Any integer | - | Define the X axis level depth to show. 0 value will show only the first level. |
| y-show-level (Y Show Level) | none | Any integer | - | Define the Y axis level depth to show. 0 value will show only the first level. |
| logins | no | Any valid Bugzilla logins | - | Comma separated list of Bugzilla logind to include in the report. Please do not include any spaces. |
| individual-report | no | true or false | false | if set to "true", an e-mail will be sent to each login given in logins parameter with all its hours worked record for the given period. |
select
bugs_activity.bug_when,
profiles.login_name,
bugs_activity.added,
bugs_activity.bug_id,
bugs.short_desc,
products.name,
bugs.bug_severity,
bugs.priority
from
bugs_activity,
profiles,
bugs,
products,
fielddefs
where
fielddefs.name = 'work_time' and
bugs_activity.fieldid = fielddefs.fieldid and
bugs_activity.bug_id = bugs.bug_id and
bugs.product_id = products.id and
bugs_activity.who = profiles.userid and
profiles.login_name in ('here', 'is', 'the', 'list', 'of', 'given', 'logins') and
bugs_activity.bug_when >= 'YYYY-MM-DD' and
bugs_activity.bug_when < 'YYYY-MM-DD'
| Parameters name | Mandatory | Possible values | Default value | Description |
|---|---|---|---|---|
| from | no | Any valid date | - | Define the lower date, included, bound for deadline. See formatting rules. |
| to | no | Any valid date | - | Define the upper date, excluded, bound for deadline. See formatting rules. |
| logins | no | Any valid Bugzilla logins | - | Comma separated list of Bugzilla logind to include in the report. |
| individual-report | no | true or false | false | if set to "true", an e-mail will be sent to each login given in logins parameter with all its hours worked record for the given period. |
select
bugs.bug_id,
bugs.deadline,
bugs.short_desc,
bugs.status_whiteboard,
profiles.login_name
from
bugs, profiles
where
bugs.assigned_to = profiles.userid
profiles.login_name in ('here', 'is', 'the', 'list', 'of', 'given', 'logins') and
bugs.deadline >= 'YYYY-MM-DD' and
bugs.deadline < 'YYYY-MM-DD'