Jump to >

SignalHook

reviewboard.extensions.hooks.SignalHook allows extensions to easily connect to signals without worrying about manually disconnecting when the extension is disabled.

To connect to a signal, the extension needs to instantiate SignalHook and pass in the signal to connect to, the callback function, and an optional sender.

Example

import logging

from reviewboard.extensions.base import Extension
from reviewboard.extensions.hooks import SignalHook
from reviewboard.reviews.signals import review_request_published


class SampleExtension(Extension):
    def initialize(self):
        SignalHook(self, review_request_published, self.on_published)

    def on_published(self, review_request=None, **kwargs):
        logging.info('Review request %s was published!',
                     review_request.display_id)