getpatchwork / patchwork

Patchwork is a web-based patch tracking system designed to facilitate the contribution and management of contributions to an open-source project.
http://jk.ozlabs.org/projects/patchwork/
GNU General Public License v2.0
267 stars 82 forks source link

Push Notifications #2

Open stephenfin opened 8 years ago

stephenfin commented 8 years ago

From @stephenfin on April 4, 2015 17:16

It should be possible to hook CI systems (like Jenkins) into patchwork. While the patchwork->CI element of this is currently possible with polling, this is inefficient. CI->patchwork communication, on the other hand, is not currently possible.

There are multiple ways to resolve the former of these issues. Gerrit does so by using an SSH service, but we could probably use a HTTP-based approach like Websockets.

If this is not possible, we should at least (a) minimise the amount of processing needed by the client and (b) cache as much as possible. The former can be solved through use of something like Activity Stream (via the django-notifications plugin). The latter can be resolved using ETags (provided by Django) or similar.

Copied from original issue: stephenfin/patchwork#13

stephenfin commented 7 years ago

We should probably use django-channels for this. This would be optional (like the REST and XML-RPC APIs). We might also use this for handling email, including a check in the cron command to disable it if django-channels is enabled (though that's not necessarily recommended)