Bugzilla::WebService::Server::XMLRPC - The XML-RPC Interface to Bugzilla


This documentation describes things about the Bugzilla WebService that are specific to XML-RPC. For a general overview of the Bugzilla WebServices, see Bugzilla::WebService.


The XML-RPC standard is described here: http://www.xmlrpc.com/spec


The endpoint for the XML-RPC interface is the xmlrpc.cgi script in your Bugzilla installation. For example, if your Bugzilla is at bugzilla.yourdomain.com, then your XML-RPC client would access the API via: http://bugzilla.yourdomain.com/xmlrpc.cgi


dateTime fields are the standard dateTime.iso8601 XML-RPC field. They should be in YYYY-MM-DDTHH:MM:SS format (where T is a literal T). As of Bugzilla 3.6, Bugzilla always expects dateTime fields to be in the UTC timezone, and all returned dateTime values are in the UTC timezone.

All other fields are standard XML-RPC types.

How XML-RPC WebService Methods Take Parameters

All functions take a single argument, a <struct> that contains all parameters. The names of the parameters listed in the API docs for each function are the <name> element for the struct <member>s.


Undefined Values

Normally, XML-RPC does not allow empty values for int, double, or dateTime.iso8601 fields. Bugzilla does--it treats empty values as undef (called NULL or None in some programming languages).

Bugzilla accepts a timezone specifier at the end of dateTime.iso8601 fields that are specified as method arguments. The format of the timezone specifier is specified in the ISO-8601 standard. If no timezone specifier is included, the passed-in time is assumed to be in the UTC timezone. Bugzilla will never output a timezone specifier on returned data, because doing so would violate the XML-RPC specification. All returned times are in the UTC timezone.

Bugzilla also accepts an element called <nil>, as specified by the XML-RPC extension here: http://ontosys.com/xml-rpc/extensions.php, which is always considered to be undef, no matter what it contains.

Bugzilla does not use <nil> values in returned data, because currently most clients do not support <nil>. Instead, any fields with undef values will be stripped from the response completely. Therefore the client must handle the fact that some expected fields may not be returned.