Skip to content

feat(workflow_engine): Add status columns to Detector and Workflow's #90550

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

saponifi3d
Copy link
Contributor

Description

Add a status field to Detector and Workflow so we can track the larger deletion states.

@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Apr 28, 2025
Copy link

codecov bot commented Apr 28, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
25290 1 25289 314
View the top 3 failed test(s) by shortest run time
tests.sentry.notifications.test_notificationmessage_table_constraints.TestUpdateNotificationMessageConstraintsForActionGroupOpenPeriod::test_constraint_allows_issue_alert_with_open_period_start
Stack Traces | 0.005s run time
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   psycopg2.errors.UndefinedColumn: column workflow_engine_detector.status does not exist#x1B[0m
#x1B[1m#x1B[31mE   LINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...#x1B[0m
#x1B[1m#x1B[31mE                                                                ^#x1B[0m

#x1B[33mDuring handling of the above exception, another exception occurred:#x1B[0m
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:105: in _execute
    return self.cursor.execute(sql, params)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:77: in inner
    raise_the_exception(self.db, e)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:75: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:18: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:93: in inner
    raise type(e)(f"{e!r}\nSQL: {sql}").with_traceback(e.__traceback__)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   psycopg2.errors.UndefinedColumn: UndefinedColumn('column workflow_engine_detector.status does not exist\nLINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...\n                                                             ^\n')#x1B[0m
#x1B[1m#x1B[31mE   SQL: SELECT "workflow_engine_detector"."id", "workflow_engine_detector"."date_updated", "workflow_engine_detector"."date_added", "workflow_engine_detector"."config", "workflow_engine_detector"."owner_user_id", "workflow_engine_detector"."owner_team_id", "workflow_engine_detector"."project_id", "workflow_engine_detector"."name", "workflow_engine_detector"."enabled", "workflow_engine_detector"."status", "workflow_engine_detector"."description", "workflow_engine_detector"."workflow_condition_group_id", "workflow_engine_detector"."type", "workflow_engine_detector"."created_by_id" FROM "workflow_engine_detector" ORDER BY "workflow_engine_detector"."id" ASC#x1B[0m

#x1B[33mThe above exception was the direct cause of the following exception:#x1B[0m
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/pytest_django/plugin.py#x1B[0m:565: in _django_setup_unittest
    request.getfixturevalue("django_db_setup")
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/pytest_django/fixtures.py#x1B[0m:144: in django_db_setup
    db_cfg = setup_databases(
#x1B[1m#x1B[31m.venv/lib/python3.13.../django/test/utils.py#x1B[0m:206: in setup_databases
    connection.creation.create_test_db(
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:94: in create_test_db
    self.connection._test_serialized_contents = self.serialize_db_to_string()
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:145: in serialize_db_to_string
    serializers.serialize("json", get_objects(), indent=None, stream=out)
#x1B[1m#x1B[31m.venv/lib/python3.13.../core/serializers/__init__.py#x1B[0m:134: in serialize
    s.serialize(queryset, **options)
#x1B[1m#x1B[31m.venv/lib/python3.13.../core/serializers/base.py#x1B[0m:109: in serialize
    for count, obj in enumerate(queryset, start=1):
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:141: in get_objects
    yield from queryset.iterator(chunk_size=chunk_size)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/models/query.py#x1B[0m:518: in _iterator
    yield from iterable
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/models/query.py#x1B[0m:91: in __iter__
    results = compiler.execute_sql(
#x1B[1m#x1B[31m.venv/lib/python3.13.../models/sql/compiler.py#x1B[0m:1574: in execute_sql
    cursor.execute(sql, params)
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/sentry_sdk/utils.py#x1B[0m:1809: in runner
    return original_function(*args, **kwargs)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:79: in execute
    return self._execute_with_wrappers(
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:92: in _execute_with_wrappers
    return executor(sql, params, many, context)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:100: in _execute
    with self.db.wrap_database_errors:
#x1B[1m#x1B[31m.venv/lib/python3.13.../django/db/utils.py#x1B[0m:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:105: in _execute
    return self.cursor.execute(sql, params)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:77: in inner
    raise_the_exception(self.db, e)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:75: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:18: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:93: in inner
    raise type(e)(f"{e!r}\nSQL: {sql}").with_traceback(e.__traceback__)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   django.db.utils.ProgrammingError: UndefinedColumn('column workflow_engine_detector.status does not exist\nLINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...\n                                                             ^\n')#x1B[0m
#x1B[1m#x1B[31mE   SQL: SELECT "workflow_engine_detector"."id", "workflow_engine_detector"."date_updated", "workflow_engine_detector"."date_added", "workflow_engine_detector"."config", "workflow_engine_detector"."owner_user_id", "workflow_engine_detector"."owner_team_id", "workflow_engine_detector"."project_id", "workflow_engine_detector"."name", "workflow_engine_detector"."enabled", "workflow_engine_detector"."status", "workflow_engine_detector"."description", "workflow_engine_detector"."workflow_condition_group_id", "workflow_engine_detector"."type", "workflow_engine_detector"."created_by_id" FROM "workflow_engine_detector" ORDER BY "workflow_engine_detector"."id" ASC#x1B[0m
tests.sentry.migrations.test_0870_delete_non_member_views.DeleteNonMemberViewsTest::test_deletes_non_member_views
Stack Traces | 0.006s run time
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   psycopg2.errors.UndefinedColumn: column workflow_engine_detector.status does not exist#x1B[0m
#x1B[1m#x1B[31mE   LINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...#x1B[0m
#x1B[1m#x1B[31mE                                                                ^#x1B[0m

#x1B[33mDuring handling of the above exception, another exception occurred:#x1B[0m
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:105: in _execute
    return self.cursor.execute(sql, params)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:77: in inner
    raise_the_exception(self.db, e)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:75: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:18: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:93: in inner
    raise type(e)(f"{e!r}\nSQL: {sql}").with_traceback(e.__traceback__)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   psycopg2.errors.UndefinedColumn: UndefinedColumn('column workflow_engine_detector.status does not exist\nLINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...\n                                                             ^\n')#x1B[0m
#x1B[1m#x1B[31mE   SQL: SELECT "workflow_engine_detector"."id", "workflow_engine_detector"."date_updated", "workflow_engine_detector"."date_added", "workflow_engine_detector"."config", "workflow_engine_detector"."owner_user_id", "workflow_engine_detector"."owner_team_id", "workflow_engine_detector"."project_id", "workflow_engine_detector"."name", "workflow_engine_detector"."enabled", "workflow_engine_detector"."status", "workflow_engine_detector"."description", "workflow_engine_detector"."workflow_condition_group_id", "workflow_engine_detector"."type", "workflow_engine_detector"."created_by_id" FROM "workflow_engine_detector" ORDER BY "workflow_engine_detector"."id" ASC#x1B[0m

#x1B[33mThe above exception was the direct cause of the following exception:#x1B[0m
#x1B[1m#x1B[31m.venv/lib/python3.13....../site-packages/pytest_django/plugin.py#x1B[0m:565: in _django_setup_unittest
    request.getfixturevalue("django_db_setup")
#x1B[1m#x1B[31m.venv/lib/python3.13....../site-packages/pytest_django/plugin.py#x1B[0m:565: in _django_setup_unittest
    request.getfixturevalue("django_db_setup")
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/pytest_django/fixtures.py#x1B[0m:144: in django_db_setup
    db_cfg = setup_databases(
#x1B[1m#x1B[31m.venv/lib/python3.13.../django/test/utils.py#x1B[0m:206: in setup_databases
    connection.creation.create_test_db(
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:94: in create_test_db
    self.connection._test_serialized_contents = self.serialize_db_to_string()
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:145: in serialize_db_to_string
    serializers.serialize("json", get_objects(), indent=None, stream=out)
#x1B[1m#x1B[31m.venv/lib/python3.13.../core/serializers/__init__.py#x1B[0m:134: in serialize
    s.serialize(queryset, **options)
#x1B[1m#x1B[31m.venv/lib/python3.13.../core/serializers/base.py#x1B[0m:109: in serialize
    for count, obj in enumerate(queryset, start=1):
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:141: in get_objects
    yield from queryset.iterator(chunk_size=chunk_size)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/models/query.py#x1B[0m:518: in _iterator
    yield from iterable
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/models/query.py#x1B[0m:91: in __iter__
    results = compiler.execute_sql(
#x1B[1m#x1B[31m.venv/lib/python3.13.../models/sql/compiler.py#x1B[0m:1574: in execute_sql
    cursor.execute(sql, params)
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/sentry_sdk/utils.py#x1B[0m:1809: in runner
    return original_function(*args, **kwargs)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:79: in execute
    return self._execute_with_wrappers(
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:92: in _execute_with_wrappers
    return executor(sql, params, many, context)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:100: in _execute
    with self.db.wrap_database_errors:
#x1B[1m#x1B[31m.venv/lib/python3.13.../django/db/utils.py#x1B[0m:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:105: in _execute
    return self.cursor.execute(sql, params)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:77: in inner
    raise_the_exception(self.db, e)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:75: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:18: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:93: in inner
    raise type(e)(f"{e!r}\nSQL: {sql}").with_traceback(e.__traceback__)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   django.db.utils.ProgrammingError: UndefinedColumn('column workflow_engine_detector.status does not exist\nLINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...\n                                                             ^\n')#x1B[0m
#x1B[1m#x1B[31mE   SQL: SELECT "workflow_engine_detector"."id", "workflow_engine_detector"."date_updated", "workflow_engine_detector"."date_added", "workflow_engine_detector"."config", "workflow_engine_detector"."owner_user_id", "workflow_engine_detector"."owner_team_id", "workflow_engine_detector"."project_id", "workflow_engine_detector"."name", "workflow_engine_detector"."enabled", "workflow_engine_detector"."status", "workflow_engine_detector"."description", "workflow_engine_detector"."workflow_condition_group_id", "workflow_engine_detector"."type", "workflow_engine_detector"."created_by_id" FROM "workflow_engine_detector" ORDER BY "workflow_engine_detector"."id" ASC#x1B[0m
tests.sentry.notifications.test_notificationmessage_table_constraints.TestUpdateNotificationMessageConstraintsForActionGroupOpenPeriod::test_constraint_allows_different_action_group_combinations
Stack Traces | 0.006s run time
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   psycopg2.errors.UndefinedColumn: column workflow_engine_detector.status does not exist#x1B[0m
#x1B[1m#x1B[31mE   LINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...#x1B[0m
#x1B[1m#x1B[31mE                                                                ^#x1B[0m

#x1B[33mDuring handling of the above exception, another exception occurred:#x1B[0m
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:105: in _execute
    return self.cursor.execute(sql, params)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:77: in inner
    raise_the_exception(self.db, e)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:75: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:18: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:93: in inner
    raise type(e)(f"{e!r}\nSQL: {sql}").with_traceback(e.__traceback__)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   psycopg2.errors.UndefinedColumn: UndefinedColumn('column workflow_engine_detector.status does not exist\nLINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...\n                                                             ^\n')#x1B[0m
#x1B[1m#x1B[31mE   SQL: SELECT "workflow_engine_detector"."id", "workflow_engine_detector"."date_updated", "workflow_engine_detector"."date_added", "workflow_engine_detector"."config", "workflow_engine_detector"."owner_user_id", "workflow_engine_detector"."owner_team_id", "workflow_engine_detector"."project_id", "workflow_engine_detector"."name", "workflow_engine_detector"."enabled", "workflow_engine_detector"."status", "workflow_engine_detector"."description", "workflow_engine_detector"."workflow_condition_group_id", "workflow_engine_detector"."type", "workflow_engine_detector"."created_by_id" FROM "workflow_engine_detector" ORDER BY "workflow_engine_detector"."id" ASC#x1B[0m

#x1B[33mThe above exception was the direct cause of the following exception:#x1B[0m
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/pytest_django/plugin.py#x1B[0m:565: in _django_setup_unittest
    request.getfixturevalue("django_db_setup")
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/pytest_django/fixtures.py#x1B[0m:144: in django_db_setup
    db_cfg = setup_databases(
#x1B[1m#x1B[31m.venv/lib/python3.13.../django/test/utils.py#x1B[0m:206: in setup_databases
    connection.creation.create_test_db(
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:94: in create_test_db
    self.connection._test_serialized_contents = self.serialize_db_to_string()
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:145: in serialize_db_to_string
    serializers.serialize("json", get_objects(), indent=None, stream=out)
#x1B[1m#x1B[31m.venv/lib/python3.13.../core/serializers/__init__.py#x1B[0m:134: in serialize
    s.serialize(queryset, **options)
#x1B[1m#x1B[31m.venv/lib/python3.13.../core/serializers/base.py#x1B[0m:109: in serialize
    for count, obj in enumerate(queryset, start=1):
#x1B[1m#x1B[31m.venv/lib/python3.13.../backends/base/creation.py#x1B[0m:141: in get_objects
    yield from queryset.iterator(chunk_size=chunk_size)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/models/query.py#x1B[0m:518: in _iterator
    yield from iterable
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/models/query.py#x1B[0m:91: in __iter__
    results = compiler.execute_sql(
#x1B[1m#x1B[31m.venv/lib/python3.13.../models/sql/compiler.py#x1B[0m:1574: in execute_sql
    cursor.execute(sql, params)
#x1B[1m#x1B[31m.venv/lib/python3.13.../site-packages/sentry_sdk/utils.py#x1B[0m:1809: in runner
    return original_function(*args, **kwargs)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:79: in execute
    return self._execute_with_wrappers(
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:92: in _execute_with_wrappers
    return executor(sql, params, many, context)
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:100: in _execute
    with self.db.wrap_database_errors:
#x1B[1m#x1B[31m.venv/lib/python3.13.../django/db/utils.py#x1B[0m:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
#x1B[1m#x1B[31m.venv/lib/python3.13.../db/backends/utils.py#x1B[0m:105: in _execute
    return self.cursor.execute(sql, params)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:77: in inner
    raise_the_exception(self.db, e)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:75: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:18: in inner
    return func(self, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:93: in inner
    raise type(e)(f"{e!r}\nSQL: {sql}").with_traceback(e.__traceback__)
#x1B[1m#x1B[.../db/postgres/decorators.py#x1B[0m:91: in inner
    return func(self, sql, *args, **kwargs)
#x1B[1m#x1B[.../db/postgres/base.py#x1B[0m:84: in execute
    return self.cursor.execute(sql, clean_bad_params(params))
#x1B[1m#x1B[31mE   django.db.utils.ProgrammingError: UndefinedColumn('column workflow_engine_detector.status does not exist\nLINE 1: ...or"."name", "workflow_engine_detector"."enabled", "workflow_...\n                                                             ^\n')#x1B[0m
#x1B[1m#x1B[31mE   SQL: SELECT "workflow_engine_detector"."id", "workflow_engine_detector"."date_updated", "workflow_engine_detector"."date_added", "workflow_engine_detector"."config", "workflow_engine_detector"."owner_user_id", "workflow_engine_detector"."owner_team_id", "workflow_engine_detector"."project_id", "workflow_engine_detector"."name", "workflow_engine_detector"."enabled", "workflow_engine_detector"."status", "workflow_engine_detector"."description", "workflow_engine_detector"."workflow_condition_group_id", "workflow_engine_detector"."type", "workflow_engine_detector"."created_by_id" FROM "workflow_engine_detector" ORDER BY "workflow_engine_detector"."id" ASC#x1B[0m

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Scope: Backend Automatically applied to PRs that change backend components
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant