def publish()

in bot/code_review_bot/report/lando.py [0:0]


    def publish(self, issues, revision, task_failures, links, reviewers):
        """
        Send an email to administrators
        """
        assert (
            revision.phabricator_id and revision.phabricator_phid and revision.diff
        ), "Revision must have a Phabricator ID, a PHID and a diff"

        if self.lando_api is None:
            logger.info("Lando integration is not set!")
            return

        nb_publishable = len([i for i in issues if i.is_publishable()])
        nb_publishable_errors = sum(
            1 for i in issues if i.is_publishable() and i.level == Level.Error
        )

        nb_publishable_warnings = nb_publishable - nb_publishable_errors

        logger.info(
            f"Publishing warnings to lando for {nb_publishable_errors} errors and {nb_publishable_warnings} warnings",
            revision=revision.phabricator_id,
            diff=revision.diff["id"],
        )

        try:
            # code-review.events sends an initial warning message to lando to specify that the analysis is in progress,
            # we should remove it
            self.lando_api.del_all_warnings(
                revision.phabricator_id, revision.diff["id"]
            )

            if nb_publishable > 0:
                self.lando_api.add_warning(
                    LANDO_MESSAGE.format(
                        errors=nb_publishable_errors,
                        errors_noun="error" if nb_publishable_errors == 1 else "errors",
                        warnings=nb_publishable_warnings,
                        warnings_noun="warning"
                        if nb_publishable_warnings == 1
                        else "warnings",
                    ),
                    revision.phabricator_id,
                    revision.diff["id"],
                )
        except Exception as ex:
            logger.error(str(ex), exc_info=True)