def notify(self, request_payload):
        """Initiates a review by placing a message on the message queue."""
        self.celery.conf.BROKER_URL = self.settings['BROKER_URL']

        review_settings = {
            'max_comments': self.settings['max_comments'],
        }
        payload = {
            'request': request_payload,
            'review_settings': review_settings,
            'session': self._login_user(self.settings['user']),
            'url': self._rb_url(),
        }

        if 'tool_profile_id' in request_payload:
            tool_profile_id = request_payload.get('tool_profile_id')

            try:
                profile = Profile.objects.get(pk=tool_profile_id)
            except __HOLE__:
                logging.error('Error: Profile %s does not exist.',
                              tool_profile_id)
                return
        else:
            logging.error('Error: Tool profile ID must be specified.')
            return

        review_settings['ship_it'] = profile.ship_it
        review_settings['comment_unmodified'] = profile.comment_unmodified
        review_settings['open_issues'] = profile.open_issues
        payload['review_settings'] = review_settings

        try:
            self.celery.send_task(
                'reviewbot.tasks.ProcessReviewRequest',
                [payload, profile.tool_settings],
                queue='%s.%s' % (profile.tool.entry_point,
                                 profile.tool.version))
        except:
            raise
dataset/ETHPy150Open reviewboard/ReviewBot/extension/reviewbotext/extension.py/ReviewBotExtension.notify