XML-RPC Server Documentation
 

This server exports the following methods through the XML-RPC protocol.

 
Methods
       
check_create(user, patch_id, context, state, target_url='', description='')
Add a Check to a patch.
 
**NOTE:** Authentication is required for this method.
 
Args:
    patch_id (id): The ID of the patch to create the check against.
    context: Type of test or system that generated this check.
    state: "pending", "success", "warning", or "fail"
    target_url: Link to artifact(s) relating to this check.
    description: A brief description of the check.
 
Returns:
    True, if successful else raise exception.
check_get(check_id)
Get a check by its ID.
 
Retrieve a check matching a given check ID, if any exists.
 
Args:
    check_id (int): The ID of the check to retrieve
 
Returns:
    The serialized check matching the ID, if any, else an empty
    dict.
check_list(filt=None)
List checks matching all of a given set of filters.
 
Filter checks by one or more of the below fields:
 
 * id
 * user
 * project_id
 * patch_id
 
It is also possible to specify the number of patches returned via
a ``max_count`` filter.
 
 * max_count
 
With the exception of ``max_count``, the specified field of the
patches are compared to the search string using a provided
field lookup type, which can be one of:
 
 * iexact
 * contains
 * icontains
 * gt
 * gte
 * lt
 * in
 * startswith
 * istartswith
 * endswith
 * iendswith
 * range
 * year
 * month
 * day
 * isnull
 
Please refer to the Django documentation for more information on
these field lookup types.
 
An example filter would look like so:
 
{
    'user__icontains': 'Joe Bloggs',
    'max_count': 1,
}
 
Args:
    filt (dict): The filters specifying the field to compare, the
        lookup type and the value to compare against. Keys are of
        format ``[FIELD_NAME]`` or ``[FIELD_NAME]__[LOOKUP_TYPE]``.
        Example: ``name__icontains``. Values are plain strings to
        compare against.
 
Returns:
    A serialized list of Checks matching filters, if any. A list
    of all Checks if no filter given.
patch_check_get(patch_id)
Get a patch's combined checks by its ID.
 
Retrieve a patch's combined checks for the patch matching a given
patch ID, if any exists.
 
Args:
    patch_id (int): The ID of the patch to retrieve checks for
 
Returns:
    The serialized combined patch checks matching the ID, if any,
    else an empty dict.
patch_get(patch_id)
Get a patch by its ID.
 
Retrieve a patch matching a given patch ID, if any exists.
 
Args:
    patch_id (int): The ID of the patch to retrieve
 
Returns:
    The serialized patch matching the ID, if any, else an empty
    dict.
patch_get_by_hash(hash)
Get a patch by its hash.
 
Retrieve a patch matching a given patch hash, if any exists.
 
Args:
    hash: The hash of the patch to retrieve
 
Returns:
    The serialized patch matching the hash, if any, else an empty
    dict.
patch_get_by_project_hash(project, hash)
Get a patch by its project and hash.
 
Retrieve a patch matching a given project and patch hash, if any
exists.
 
Args:
    project (str): The project of the patch to retrieve.
    hash: The hash of the patch to retrieve.
 
Returns:
    The serialized patch matching both the project and the hash,
    if any, else an empty dict.
patch_get_diff(patch_id)
Get a patch by its ID in diff format.
 
Retrieve a patch matching a given patch ID, if any exists, and
return in diff format.
 
Args:
    patch_id (int): The ID of the patch to retrieve.
 
Returns:
    The serialized patch matching the ID, if any, in diff format,
    else an empty string.
patch_get_mbox(patch_id)
Get a patch by its ID in mbox format.
 
Retrieve a patch matching a given patch ID, if any exists, and
return in mbox format.
 
Args:
    patch_id (int): The ID of the patch to retrieve.
 
Returns:
    The serialized patch matching the ID, if any, in mbox format,
    else an empty string.
patch_list(filt=None)
List patches matching all of a given set of filters.
 
Filter patches by one or more of the below fields:
 
 * id
 * name
 * project_id
 * submitter_id
 * delegate_id
 * archived
 * state_id
 * date
 * commit_ref
 * hash
 * msgid
 
It is also possible to specify the number of patches returned via
a ``max_count`` filter.
 
 * max_count
 
With the exception of ``max_count``, the specified field of the
patches are compared to the search string using a provided
field lookup type, which can be one of:
 
 * iexact
 * contains
 * icontains
 * gt
 * gte
 * lt
 * in
 * startswith
 * istartswith
 * endswith
 * iendswith
 * range
 * year
 * month
 * day
 * isnull
 
Please refer to the Django documentation for more information on
these field lookup types.
 
An example filter would look like so:
 
{
    'name__icontains': 'Joe Bloggs',
    'max_count': 1,
}
 
Args:
    filt (dict): The filters specifying the field to compare, the
        lookup type and the value to compare against. Keys are of
        format ``[FIELD_NAME]`` or ``[FIELD_NAME]__[LOOKUP_TYPE]``.
        Example: ``name__icontains``. Values are plain strings to
        compare against.
 
Returns:
    A serialized list of patches matching filters, if any. A list
    of all patches if no filter given.
patch_set(user, patch_id, params)
Set fields of a patch.
 
Modify a patch matching a given patch ID, if any exists, and using
the provided ``key,value`` pairs. Only the following parameters may
be set:
 
 * state
 * commit_ref
 * archived
 
Any other field will be rejected.
 
**NOTE:** Authentication is required for this method.
 
Args:
    user (User): The user making the request. This will be
        populated from HTTP Basic Auth.
    patch_id (int): The ID of the patch to modify.
    params (dict): A dictionary of keys corresponding to patch
        object fields and the values that said fields should be
        set to.
 
Returns:
    True, if successful else raise exception.
 
Raises:
    Exception: User did not have necessary permissions to edit this
        patch
    Patch.DoesNotExist: The patch did not exist.
person_get(person_id)
Get a person by its ID.
 
Retrieve a person matching a given person ID, if any exists.
 
Args:
    person_id (int): The ID of the person to retrieve.
 
Returns:
    The serialized person matching the ID, if any, else an empty
    dict.
person_list(search_str=None, max_count=0)
List persons matching a given name or email filter.
 
Filter persons by name and email. Persons are compared to the
search string via a case-insensitive containment test, a.k.a. a
partial match.
 
Args:
    search_str: The string to compare person names or emails
        against. If blank, all persons will be returned.
    max_count (int): The maximum number of persons to return.
 
Returns:
    A serialized list of persons matching filter, if any. A list
    of all persons if no filter given.
project_get(project_id)
Get a project by its ID.
 
Retrieve a project matching a given project ID, if any exists.
 
Args:
    project_id (int): The ID of the project to retrieve.
 
Returns:
    The serialized project matching the ID, if any, else an empty
    dict.
project_list(search_str=None, max_count=0)
List projects matching a given linkname filter.
 
Filter projects by linkname. Projects are compared to the search
string via a case-insensitive containment test, a.k.a. a partial
match.
 
Args:
    search_str: The string to compare project names against. If
        blank, all projects will be returned.
    max_count (int): The maximum number of projects to return.
 
Returns:
    A serialized list of projects matching filter, if any. A list
    of all projects if no filter given.
pw_rpc_version()
Return Patchwork XML-RPC interface version.
 
The API is versioned separately from patchwork itself. The API
version only changes when the API itself changes. As these changes
can include the removal or modification of methods, it is highly
recommended that one first test the API version for compatibility
before making method calls.
 
History:
 
    1.0.0: Patchwork 1.0 release
    1.1.0: ???
    1.2.0: ???
    1.3.0: Add support for negative indexing of Checks
 
Returns:
    Version of the API.
state_get(state_id)
Get a state by its ID.
 
Retrieve a state matching a given state ID, if any exists.
 
Args:
    state_id: The ID of the state to retrieve.
 
Returns:
    The serialized state matching the ID, if any, else an empty
    dict.
state_list(search_str=None, max_count=0)
List states matching a given name filter.
 
Filter states by name. States are compared to the search string
via a case-insensitive containment test, a.k.a. a partial match.
 
Args:
    search_str: The string to compare state names against. If
        blank, all states will be returned.
    max_count (int): The maximum number of states to return.
 
Returns:
    A serialized list of states matching filter, if any. A list
    of all states if no filter given.