in bot/code_review_bot/workflow.py [0:0]
def publish(self, revision, issues, task_failures, notices, reviewers):
"""
Publish issues on selected reporters
"""
# Publish patches on Taskcluster
# or write locally for local development
for patch in revision.improvement_patches:
if settings.taskcluster.local:
patch.write()
else:
patch.publish()
# Publish issues on backend to retrieve their comparison state
publishable_issues = [i for i in issues if i.is_publishable()]
self.backend_api.publish_issues(publishable_issues, revision)
# Report issues publication stats
nb_issues = len(issues)
nb_publishable = len(publishable_issues)
nb_publishable_errors = len(
[i for i in publishable_issues if i.level == Level.Error]
)
self.index(
revision,
state="analyzed",
issues=nb_issues,
issues_publishable=nb_publishable,
)
stats.add_metric("analysis.issues.publishable", nb_publishable)
# Publish reports about these issues
with stats.timer("runtime.reports"):
for reporter in self.reporters.values():
reporter.publish(issues, revision, task_failures, notices, reviewers)
self.index(
revision, state="done", issues=nb_issues, issues_publishable=nb_publishable
)
# Publish final HarborMaster state
self.update_status(
revision,
BuildState.Fail
if nb_publishable_errors > 0 or task_failures
else BuildState.Pass,
)