Extend patchwork's REST API (v1.4) with three features that enable
tighter integration between mailing list workflows and external systems
like code forges and CI.

Webhooks allow project maintainers to register callback URLs that
receive HMAC-SHA256 signed HTTP POST notifications on patchwork events.

Series metadata provides a key-value store on series objects for
external integrations to attach arbitrary data (e.g. forge PR links, CI
job references).

Respin tracking automatically links successive versions of a patch
series via header threading or subject similarity matching, exposing
previous/next navigation through the API and web UI.

All three features include OpenAPI schema documentation, admin
integration and test coverage.

Robin Jarry (3):
  api: add webhook support for event delivery
  api: add metadata support for series
  series: add respin tracking for patch series versions

 docs/api/schemas/latest/patchwork.yaml        | 458 ++++++++++++++++
 docs/api/schemas/patchwork.j2                 | 493 ++++++++++++++++++
 docs/api/schemas/v1.4/patchwork.yaml          | 458 ++++++++++++++++
 patchwork/admin.py                            |  56 ++
 patchwork/api/filters.py                      |   8 +
 patchwork/api/series.py                       |  68 ++-
 patchwork/api/webhook.py                      |  76 +++
 patchwork/migrations/0049_webhook.py          |  78 +++
 patchwork/migrations/0050_series_metadata.py  |  44 ++
 .../migrations/0051_series_respin_tracking.py |  33 ++
 patchwork/models.py                           | 103 ++++
 patchwork/parser.py                           | 139 +++++
 patchwork/signals.py                          |  27 +-
 patchwork/templates/patchwork/submission.html |  25 +
 patchwork/templatetags/utils.py               |   9 +
 patchwork/tests/unit/api/test_series.py       |  40 +-
 patchwork/tests/unit/api/test_webhook.py      | 251 +++++++++
 patchwork/tests/utils.py                      |  15 +
 patchwork/urls.py                             |  18 +-
 patchwork/views/cover.py                      |   3 +
 patchwork/views/patch.py                      |   2 +
 patchwork/webhooks.py                         |  88 ++++
 .../series-metadata-b2c3d4e5f6g7h8i9.yaml     |  15 +
 ...ries-respin-tracking-c3d4e5f6g7h8i9j0.yaml |  16 +
 .../webhook-support-a1b2c3d4e5f6g7h8.yaml     |  13 +
 25 files changed, 2510 insertions(+), 26 deletions(-)
 create mode 100644 patchwork/api/webhook.py
 create mode 100644 patchwork/migrations/0049_webhook.py
 create mode 100644 patchwork/migrations/0050_series_metadata.py
 create mode 100644 patchwork/migrations/0051_series_respin_tracking.py
 create mode 100644 patchwork/tests/unit/api/test_webhook.py
 create mode 100644 patchwork/webhooks.py
 create mode 100644 releasenotes/notes/series-metadata-b2c3d4e5f6g7h8i9.yaml
 create mode 100644 
releasenotes/notes/series-respin-tracking-c3d4e5f6g7h8i9j0.yaml
 create mode 100644 releasenotes/notes/webhook-support-a1b2c3d4e5f6g7h8.yaml

-- 
2.54.0

_______________________________________________
Patchwork mailing list
[email protected]
https://lists.ozlabs.org/listinfo/patchwork

Reply via email to