#3961 Start work on 3rd party plugin support
Merged by pingou. Opened by pingou.
third_party_extension  into  master

Download 3961.patch
no initial comment

1 new commit added

  • Add blinker notification for 3rd party to use

rebased onto e38e77791971a0842480b13a010d135c6a600be1

1 new commit added

  • Black fixes

6 new commits added

  • Black and flake8 fixes
  • Add blinker notification for 3rd party to use
  • Add support for 3rd party extensions to runserver.py
  • Add support for blueprints defined outside of pagure
  • Fix activating and deactivating a hook (esp the ticket-hook)
  • Fix the link on the new ticket button

rebased onto 409ccd0a303353de4c945e70b1a795ecdda9a3b0

Couldn't plugins leverage REDIS to get notifications ?

So the current scheme of things is:
- fedmsg/mqtt (incoming)/stomp are for outside notifications
- redis (or rather celery with redis as default but rabbitmq should work as well) is for inter-services notifications
- blinker is for notifications between the main app and the plugins (running in the same thread basically)

We do not want redis/rabbitmq for this last one as it'd store messages waiting for a consumer that may or may never come and we have no way to know (well maybe we do since there is something in the configuration), we likely prefer a pub/sub model in a fire and forget mode, since the other pub/sub (fedmsg/mqtt/stomp) are entirely optional and actually require some configuration, blinker is an interesting solution for us.

Finally, this is really the first work on this feature, I'd not be surprised if we change things later on.

rebased onto afa8693820c47262d6419b38b5025b24112dc728

rebased onto 3d7f70ec476c97b6339468299bbfce6819f0f413

So the current scheme of things is:
- fedmsg/mqtt (incoming)/stomp are for outside notifications
- redis (or rather celery with redis as default but rabbitmq should work as well) is for inter-services notifications
- blinker is for notifications between the main app and the plugins (running in the same thread basically)
We do not want redis/rabbitmq for this last one as it'd store messages waiting for a consumer that may or may never come and we have no way to know (well maybe we do since there is something in the configuration), we likely prefer a pub/sub model in a fire and forget mode, since the other pub/sub (fedmsg/mqtt/stomp) are entirely optional and actually require some configuration, blinker is an interesting solution for us.
Finally, this is really the first work on this feature, I'd not be surprised if we change things later on.

OK thanks for the explanations :smiley:

The PR is :thumbsup: for me then

rebased onto d10f10005580840143b1f3305f00a5184b68a4bd

Pretty please pagure-ci rebuild

rebased onto b3b86da7c75c5c3dec250b0bdde6e5d27ab8f526

Ok, I wanted to check how this performs with multiple plugins, seems to be doing well so that's cool :)
Let's merge this as is for now.
I'm wondering about documenting this but as an alpha-stage feature that can be changed at any time.

Pull-Request has been merged by pingou

Metadata