in bot/code_review_bot/report/mail.py [0:0]
def publish(self, issues, revision, task_failures, links, reviewers):
"""
Send an email to administrators
"""
# For no issues do not publish anything
if len(issues) == 0:
return
# Build stats display for all issues
# One line per issues class
stats = "\n".join(
[
EMAIL_STATS_LINE.format(
analyzer=stat["analyzer"],
total=stat["total"],
publishable=stat["publishable"],
)
for stat in self.calc_stats(issues)
]
)
content = EMAIL_HEADER.format(
total=len(issues),
publishable=sum([i.is_publishable() for i in issues]),
stats=stats,
review_url=revision.url,
)
if revision.improvement_patches:
content += "## Improvement patches:\n\n{}\n\n".format(
"\n".join(
EMAIL_HEADER_PATCH.format(patch)
for patch in revision.improvement_patches
)
)
content += "\n\n".join([i.as_markdown() for i in issues])
if len(content) > 102400:
# Content is 102400 chars max
content = content[:102000] + "\n\n... Content max limit reached!"
subject = f"[{settings.app_channel}] New Static Analysis {revision}"
for email in self.emails:
self.notify.email(
{
"address": email,
"subject": subject,
"content": content,
"template": "fullscreen",
}
)