[PATCH 0/7] REST API (v2)

Damien Lespiau damien.lespiau at intel.com
Wed Oct 21 09:40:40 AEDT 2015


I did a full pass on the REST API I had and extracted a documented subset that
should be easy to extend in the future.

  http://patchwork-freedesktop.readthedocs.org/en/latest/api.html

A list of entry points is available, that's the basic documentation needed.
More will be added later (describe the 'related' GET parameter, how lists of
objects work, ordering, some more details about the various fields, ...)

On top of exposing the basic objects, later patches add the concept of events
to the db and expose them in the API. The first event here is
'series-new-revision', an event created when patchwork has received a new
version of a series. This event can be listened to (well, using polling atm) to
trigger tests on an incoming series.

FWIW, the REST API is documented using sphinxcontrib-httpdomain[1], a bit
quirky but does the job.

-- 
Damien

[1] https://pythonhosted.org/sphinxcontrib-httpdomain/

Damien Lespiau (7):
  models: Split a user_name() helper out of UserProfile
  models: Monkey patch User to have a name() method
  models: Don't return the email along with the name in Person's
    __unicode__
  api: Add a basic REST API to access Series/Revisions and Patches
  models: Add Event and EventLog models
  series: Add a 'new-series-revision' event
  api: Expose events

 docs/api.rst                                | 414 ++++++++++++++++++++++++++++
 docs/conf.py                                |   2 +-
 docs/index.rst                              |   1 +
 docs/requirements-base.txt                  |   3 +
 docs/requirements-dev.txt                   |   1 +
 patchwork/fixtures/default_events.xml       |   6 +
 patchwork/migrations/0005_event_eventlog.py |  36 +++
 patchwork/models.py                         |  40 ++-
 patchwork/serializers.py                    | 139 ++++++++++
 patchwork/settings/base.py                  |   7 +
 patchwork/tests/test_bundles.py             |   2 +-
 patchwork/tests/test_encodings.py           |   4 +-
 patchwork/tests/test_expiry.py              |   2 +-
 patchwork/tests/test_list.py                |   2 +-
 patchwork/tests/test_mboxviews.py           |  12 +-
 patchwork/tests/test_notifications.py       |   4 +-
 patchwork/tests/test_patchparser.py         |  10 +-
 patchwork/tests/test_series.py              |  51 +++-
 patchwork/tests/test_tags.py                |   4 +-
 patchwork/tests/test_updates.py             |   2 +-
 patchwork/tests/test_xmlrpc.py              |   2 +-
 patchwork/urls.py                           |  36 +++
 patchwork/views/api.py                      | 144 ++++++++++
 23 files changed, 891 insertions(+), 33 deletions(-)
 create mode 100644 docs/api.rst
 create mode 100644 patchwork/fixtures/default_events.xml
 create mode 100644 patchwork/migrations/0005_event_eventlog.py
 create mode 100644 patchwork/serializers.py
 create mode 100644 patchwork/views/api.py

-- 
2.4.3



More information about the Patchwork mailing list