Search code examples
xml-rpcbugzilla

How to insert line breaks in bug description via Bugzilla's XML-RPC API


I'm not sure if this is a Bugzilla question or a XML-RPC question: when creating a bug in Bugzilla using the Bug.create method of the XML-RPC API, how can I enter a multi-line description?

The description parameter takes a string value, but whitespace (including newlines) seems to be stripped, and I end up with a one-line description, instead of multiple lines of text.

The following doesn't work:

<?xml version="1.0"?>
<methodCall>
    <methodName>Bug.create</methodName>
    <params>
        <param>
            <value>
                <struct>
                    <member>
                        <name>product</name>
                        <value><string>Development</string></value>
                    </member>
                    <member>
                        <name>component</name>
                        <value><string>Component01</string></value>
                    </member>
                    <member>
                        <name>summary</name>
                        <value><string>Bug created via API</string></value>
                    </member>
                    <member>
                        <name>description</name>
                        <value>
                            <string>This bug was created through the Bugzilla XML/RPC interface

Here is the second line of the description
and the third line.</string>
                        </value>
                    </member>
                    <member>
                        <name>version</name>
                        <value><string>1</string></value>
                    </member>
                    <member>
                        <name>severity</name>
                        <value><string>enhancement</string></value>
                    </member>
                    <member>
                        <name>op_sys</name>
                        <value><string>All</string></value>
                    </member>
                    <member>
                        <name>platform</name>
                        <value><string>All</string></value>
                    </member>
                    <member>
                        <name>priority</name>
                        <value><string>P5</string></value>
                    </member>
                    <member>
                        <name>assigned_to</name>
                        <value><string>[email protected]</string></value>
                    </member>
                </struct>
            </value>
        </param>
    </params>
</methodCall>

I end up with the following description:

This bug was created through the Bugzilla XML/RPC interfaceHere is the second line of the descriptionand the third line.

Solution

  • I figured out one way: use a base64 value instead of a string value for the description.

    If anyone knows a different way, please let me know.

    This works:

    <?xml version="1.0"?>
    <methodCall>
        <methodName>Bug.create</methodName>
        <params>
            <param>
                <value>
                    <struct>
                        <member>
                            <name>product</name>
                            <value><string>Development</string></value>
                        </member>
                        <member>
                            <name>component</name>
                            <value><string>Component01</string></value>
                        </member>
                        <member>
                            <name>summary</name>
                            <value><string>Bug created via API</string></value>
                        </member>
                        <member>
                            <name>description</name>
                            <value>
                                <base64>VGhpcyBpcyBsaW5lIG9uZQ0KDQpibGFuayBsaW5lIGFib3ZlDQpUaGlzIGlzIHRoZSB0aGlyZCBsaW5lIG9mIHRleHQ=</base64>
                            </value>
                        </member>
                        <member>
                            <name>version</name>
                            <value><string>1</string></value>
                        </member>
                        <member>
                            <name>severity</name>
                            <value><string>enhancement</string></value>
                        </member>
                        <member>
                            <name>op_sys</name>
                            <value><string>All</string></value>
                        </member>
                        <member>
                            <name>platform</name>
                            <value><string>All</string></value>
                        </member>
                        <member>
                            <name>priority</name>
                            <value><string>P5</string></value>
                        </member>
                        <member>
                            <name>assigned_to</name>
                            <value><string>[email protected]</string></value>
                        </member>
                    </struct>
                </value>
            </param>
        </params>
    </methodCall>
    

    Result:

    This is line one
    
    blank line above
    This is the third line of text