in backend/code_review_backend/issues/management/commands/load_issues.py [0:0]
def save_issues(self, diff, issues):
# Remove all issues from diff
diff.issues.all().delete()
# Build all issues for that diff, in a single DB call
created_issues = [
Issue.objects.get_or_create(
hash=i["hash"],
defaults={
"path": i["path"],
"level": i.get("level", "warning"),
"analyzer_check": i.get("kind") or i.get("check"),
"message": i.get("message"),
"analyzer": i["analyzer"],
},
)
for i in issues
if i["hash"]
]
IssueLink.objects.bulk_create(
[
IssueLink(
issue=issue_db,
diff=diff,
revision_id=diff.revision_id,
new_for_revision=detect_new_for_revision(
diff, path=issue_db.path, hash=issue_db.hash
),
line=issue_src["line"],
nb_lines=issue_src.get("nb_lines", 1),
char=issue_src.get("char"),
)
for (issue_db, _), issue_src in zip(created_issues, issues)
],
ignore_conflicts=True,
)
return created_issues