Skip to content

Commit

Permalink
feat: extend ConnitNotification
Browse files Browse the repository at this point in the history
These changes extend the `CommitNotification` model to include an optional
field: the github app that emitted a check / comment.

ticket: codecov/engineering-team#1737
  • Loading branch information
giovanni-guidini committed May 22, 2024
1 parent f17719a commit c940d68
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Generated by Django 4.2.13 on 2024-05-21 19:33

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):

dependencies = [
("codecov_auth", "0055_session_login_session"),
("core", "0049_increment_version"),
]

# BEGIN;
# --
# -- Add field gh_app to commitnotification
# --
# ALTER TABLE "commit_notifications" ADD COLUMN "gh_app_id" bigint NULL CONSTRAINT "commit_notifications_gh_app_id_8714fedd_fk_codecov_a" REFERENCES "codecov_auth_githubappinstallation"("id") DEFERRABLE INITIALLY DEFERRED; SET CONSTRAINTS "commit_notifications_gh_app_id_8714fedd_fk_codecov_a" IMMEDIATE;
# --
# -- Alter field notification_type on commitnotification
# --
# -- (no-op)
# CREATE INDEX "commit_notifications_gh_app_id_8714fedd" ON "commit_notifications" ("gh_app_id");
# COMMIT;

operations = [
migrations.AddField(
model_name="commitnotification",
name="gh_app",
field=models.ForeignKey(
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="commit_notifications",
to="codecov_auth.githubappinstallation",
),
),
migrations.AlterField(
model_name="commitnotification",
name="notification_type",
field=models.TextField(
choices=[
("comment", "Comment"),
("gitter", "Gitter"),
("hipchat", "Hipchat"),
("irc", "Irc"),
("slack", "Slack"),
("status_changes", "Status Changes"),
("status_patch", "Status Patch"),
("status_project", "Status Project"),
("webhook", "Webhook"),
("codecov_slack_app", "Codecov Slack App"),
("checks_project", "Checks Project"),
("checks_changes", "Checks Changes"),
("checks_patch", "Checks Patch"),
]
),
),
]
9 changes: 9 additions & 0 deletions shared/django_apps/core/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,9 @@ class NotificationTypes(models.TextChoices):
STATUS_PROJECT = "status_project"
WEBHOOK = "webhook"
CODECOV_SLACK_APP = "codecov_slack_app"
CHECKS_PROJECT = "checks_project"
CHECKS_CHANGES = "checks_changes"
CHECKS_PATCH = "checks_patch"

class DecorationTypes(models.TextChoices):
STANDARD = "standard"
Expand All @@ -468,6 +471,12 @@ class States(models.TextChoices):
commit = models.ForeignKey(
"core.Commit", on_delete=models.CASCADE, related_name="notifications"
)
gh_app = models.ForeignKey(
"codecov_auth.GithubAppInstallation",
on_delete=models.CASCADE,
related_name="commit_notifications",
null=True,
)
notification_type = models.TextField(
choices=NotificationTypes.choices
) # Really an ENUM in db
Expand Down

0 comments on commit c940d68

Please sign in to comment.