Zulip server and web application. Open-source team chat that helps teams stay productive and focused.
This report summarizes scanner evidence for zulip/zulip, a Python project with 26,027 GitHub stars. SynthScan examined 973,354 lines of code across 4148 source files, recording 9029 pattern matches distributed across 23 syntactic categories. The legacy adjusted pattern signal is 9.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 7519 finding(s).
Are imports declared and package/API names verified? 1293 finding(s).
Are wrappers, guards, and repeated structures necessary? 6755 finding(s).
Which changes need focused human review? 9029 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 9029 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manage.py | 112 | def execute_from_command_line(argv: list[str] | None = None) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 39 | def test_current_counts_for_billed_users(self) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 143 | def test_upgrade_user_to_business_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 292 | def test_stripe_billing_portal_urls_for_remote_realm(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 318 | def test_upgrade_user_to_basic_plan_free_trial_fails_special_case(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 397 | def test_upgrade_user_to_basic_plan_free_trial(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 529 | def test_redirect_for_remote_realm_billing_page_downgrade_at_free_trial_end( | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 617 | def test_upgrade_remote_realm_user_to_monthly_basic_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 733 | def test_upgrade_user_to_fixed_price_monthly_basic_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 832 | def test_delete_configured_fixed_price_plan_offer_no_active_plan(self) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 888 | def test_delete_configured_fixed_price_plan_offer_on_complimentary_access_plan(self) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 973 | def test_upgrade_user_to_fixed_price_plan_pay_by_invoice(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1163 | def test_schedule_upgrade_to_fixed_price_annual_business_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1282 | def test_schedule_complimentary_access_plan_upgrade_to_fixed_price_plan( | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1372 | def test_delete_scheduled_fixed_price_plan_on_complimentary_access_plan( | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1478 | def test_delete_configured_fixed_price_plan_offer_with_sent_invoice(self) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1538 | def test_schedule_fixed_price_plan_upgrade_to_another_fixed_price_plan( | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1671 | def test_migrate_customer_server_to_realms_and_upgrade(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1800 | def test_invoice_initial_remote_realm_upgrade(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1831 | def test_invoice_plans_as_needed(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_stripe_remote_realm.py | 1931 | def test_invoice_scheduled_upgrade_realm_complimentary_access_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 115 | def test_compute_plan_parameters(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 210 | def test_get_price_per_license(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 282 | def test_get_plan_renewal_or_end_date(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 304 | def test_update_or_create_stripe_customer_logic(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 341 | def test_get_customer_by_realm(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 349 | def test_get_current_plan_by_customer(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 376 | def test_get_current_plan_by_realm(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 393 | def test_is_realm_on_free_trial(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 411 | def test_deactivate_reactivate_remote_server(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 469 | def test_initialize_fixed_price_plan_realm(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 542 | def test_initialize_fixed_price_plan_remote_realm(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 633 | def test_initialize_fixed_price_plan_remote_server(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 718 | def test_add_plan_renewal_if_needed(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 751 | def test_update_license_ledger_if_needed(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 780 | def test_update_license_ledger_for_automanaged_plan(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 835 | def test_update_license_ledger_for_manual_plan(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 910 | def test_workplace_users_group_changes(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 943 | def assert_ledger_rows_not_added(*, action: Callable[[], None]) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1018 | def test_workplace_users_group_changes_without_a_plan(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1079 | def test_toggle_license_management(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1104 | def test_invoicing_status_is_started(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1115 | def test_invoice_plan_without_stripe_customer(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1134 | def test_validate_licenses_for_manual_plan_management(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1233 | def test_invoice_plan_bundle_additional_licenses(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1357 | def test_upgrade_to_fixed_price_plus_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1480 | def test_invoice_plans_as_needed(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1499 | def test_invoice_for_additional_license(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1542 | def test_subscribe_realm_to_manual_license_management_plan(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1563 | def test_subscribe_realm_to_monthly_plan_on_manual_license_management(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1607 | def test_attach_discount_to_realm(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1722 | def test_add_minimum_licenses(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1770 | def test_set_required_plan_tier(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1873 | def test_approve_realm_sponsorship(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1908 | def test_update_realm_sponsorship_status(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1924 | def test_update_realm_billing_modality(self) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1961 | def test_switch_realm_from_standard_to_plus_plan(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_billing_lib.py | 1992 | def test_downgrade_realm_and_void_open_invoices(self, *mocks: Mock) -> None: | CODE |
| LOW | corporate/tests/test_remote_counts.py | 25 | def test_compute_max_monthly_messages(self) -> None: | CODE |
| LOW | corporate/tests/test_stripe.py | 65 | def check_initial_ledger_entry( | CODE |
| 6398 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/tests/test_billing_lib.py | 421 | remote_server=remote_server, email="admin@example.com" | CODE |
| LOW | corporate/tests/test_billing_lib.py | 2040 | remote_realm=remote_realm, email="admin@example.com", user_uuid=uuid.uuid4() | CODE |
| LOW | corporate/tests/test_billing_lib.py | 2043 | remote_server=remote_server, email="admin@example.com" | CODE |
| LOW | …vent_with_uncaught_exception--Customer.retrieve.2.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …vent_with_uncaught_exception--Customer.retrieve.2.json | 28 | "name": "John Doe", | CODE |
| LOW | …e_by_card_with_outdated_seat_count--Charge.list.1.json | 15 | "line1": "123 Main St", | CODE |
| LOW | …e_by_card_with_outdated_seat_count--Charge.list.1.json | 21 | "name": "John Doe", | CODE |
| LOW | …rd_as_default_payment_method--Customer.retrieve.3.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …rd_as_default_payment_method--Customer.retrieve.3.json | 28 | "name": "John Doe", | CODE |
| LOW | …tures/upgrade_license_counts--Customer.retrieve.1.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …tures/upgrade_license_counts--Customer.retrieve.1.json | 28 | "name": "John Doe", | CODE |
| LOW | …voice_plans_as_needed_server--Customer.retrieve.4.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …voice_plans_as_needed_server--Customer.retrieve.4.json | 28 | "name": "John Doe", | CODE |
| LOW | …res/check_upgrade_parameters--Customer.retrieve.7.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …res/check_upgrade_parameters--Customer.retrieve.7.json | 28 | "name": "John Doe", | CODE |
| LOW | …d_price_annual_business_plan--Customer.retrieve.1.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …d_price_annual_business_plan--Customer.retrieve.1.json | 28 | "name": "John Doe", | CODE |
| LOW | …ures/upgrade_license_counts--Customer.retrieve.16.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …ures/upgrade_license_counts--Customer.retrieve.16.json | 28 | "name": "John Doe", | CODE |
| LOW | …automatic_license_management--Customer.retrieve.3.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …automatic_license_management--Customer.retrieve.3.json | 28 | "name": "John Doe", | CODE |
| LOW | …ondition_during_card_upgrade--Customer.retrieve.5.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …ondition_during_card_upgrade--Customer.retrieve.5.json | 28 | "name": "John Doe", | CODE |
| LOW | …es/replace_payment_method--PaymentMethod.create.2.json | 7 | "line1": "123 Main St", | CODE |
| LOW | …es/replace_payment_method--PaymentMethod.create.2.json | 13 | "name": "John Doe", | CODE |
| LOW | …ures/upgrade_license_counts--Customer.retrieve.41.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …ures/upgrade_license_counts--Customer.retrieve.41.json | 28 | "name": "John Doe", | CODE |
| LOW | …es/check_upgrade_parameters--Customer.retrieve.25.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …es/check_upgrade_parameters--Customer.retrieve.25.json | 28 | "name": "John Doe", | CODE |
| LOW | …n_bundle_additional_licenses--Customer.retrieve.4.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …n_bundle_additional_licenses--Customer.retrieve.4.json | 28 | "name": "John Doe", | CODE |
| LOW | …rade_by_card_to_plus_plan--PaymentMethod.create.1.json | 7 | "line1": "123 Main St", | CODE |
| LOW | …rade_by_card_to_plus_plan--PaymentMethod.create.1.json | 13 | "name": "John Doe", | CODE |
| LOW | …ures/non_sponsorship_billing--Customer.retrieve.2.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …ures/non_sponsorship_billing--Customer.retrieve.2.json | 28 | "name": "John Doe", | CODE |
| LOW | …_downgrade_at_free_trial_end--Customer.retrieve.6.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …_downgrade_at_free_trial_end--Customer.retrieve.6.json | 28 | "name": "John Doe", | CODE |
| LOW | …minimum_licenses_for_plan--PaymentMethod.create.1.json | 7 | "line1": "123 Main St", | CODE |
| LOW | …minimum_licenses_for_plan--PaymentMethod.create.1.json | 13 | "name": "John Doe", | CODE |
| LOW | …automatic_license_management--Customer.retrieve.3.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …automatic_license_management--Customer.retrieve.3.json | 28 | "name": "John Doe", | CODE |
| LOW | …ser_to_basic_plan_free_trial--Customer.retrieve.1.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …ser_to_basic_plan_free_trial--Customer.retrieve.1.json | 28 | "name": "John Doe", | CODE |
| LOW | …e_fixtures/end_free_trial--PaymentMethod.create.1.json | 7 | "line1": "123 Main St", | CODE |
| LOW | …e_fixtures/end_free_trial--PaymentMethod.create.1.json | 13 | "name": "John Doe", | CODE |
| LOW | …s/free_trial_upgrade_by_card--Customer.retrieve.4.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …s/free_trial_upgrade_by_card--Customer.retrieve.4.json | 28 | "name": "John Doe", | CODE |
| LOW | …er_complimentary_access_plan--Customer.retrieve.5.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …er_complimentary_access_plan--Customer.retrieve.5.json | 28 | "name": "John Doe", | CODE |
| LOW | …_to_another_fixed_price_plan--Customer.retrieve.1.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …_to_another_fixed_price_plan--Customer.retrieve.1.json | 28 | "name": "John Doe", | CODE |
| LOW | …al_urls_for_remote_server--PaymentMethod.create.1.json | 7 | "line1": "123 Main St", | CODE |
| LOW | …al_urls_for_remote_server--PaymentMethod.create.1.json | 13 | "name": "John Doe", | CODE |
| LOW | …de_complimentary_access_plan--Customer.retrieve.5.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …de_complimentary_access_plan--Customer.retrieve.5.json | 28 | "name": "John Doe", | CODE |
| LOW | …m_user_to_monthly_basic_plan--Customer.retrieve.5.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …m_user_to_monthly_basic_plan--Customer.retrieve.5.json | 28 | "name": "John Doe", | CODE |
| LOW | …nitial_remote_server_upgrade--Customer.retrieve.1.json | 22 | "line1": "123 Main St", | CODE |
| LOW | …nitial_remote_server_upgrade--Customer.retrieve.1.json | 28 | "name": "John Doe", | CODE |
| LOW | …omplimentary_access_customer--Customer.retrieve.6.json | 22 | "line1": "123 Main St", | CODE |
| 957 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | corporate/views/support.py | 13 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zilencer/models.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zilencer/views.py | 16 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/checks.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/forms.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_realm_creation.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_integrations_dev_panel.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_subs.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_import_export.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_realm_domains.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_validators.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_typed_endpoint.py | 5 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | zerver/tests/test_widgets.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_users.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/tests/test_realm_linkifiers.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/management/commands/import.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/management/commands/change_password.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/management/commands/change_realm_subdomain.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/management/commands/create_realm.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/management/commands/realm_domain.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/models/custom_profile_fields.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/models/linkifiers.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/models/realm_playgrounds.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/models/realms.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/data_import/import_util.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/data_import/slack_message_conversion.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/actions/realm_emoji.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/actions/message_send.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/actions/realm_playgrounds.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/validator.py | 37 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/users.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/narrow.py | 9 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/email_validation.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/domains.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/external_accounts.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/scim.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/typed_endpoint_validators.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/drafts.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/exceptions.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/recipient_users.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/subscription_info.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/lib/event_types.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/ifttt/view.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/grafana/view.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/jira/view.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/rhodecode/view.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/freshstatus/view.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/newrelic/view.py | 3 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/zabbix/view.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/webhooks/uptimerobot/view.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/registration.py | 15 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/user_settings.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/auth.py | 15 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/custom_profile_fields.py | 4 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/realm_linkifiers.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/users.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/realm_domains.py | 1 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/submessage.py | 2 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zerver/views/realm.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | zproject/backends.py | 33 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | version.py | 21 | # Versions of the desktop app below DESKTOP_MINIMUM_VERSION will be | COMMENT |
| LOW | version.py | 41 | # directions. | COMMENT |
| LOW | corporate/models/plans.py | 121 | next_invoice_date = models.DateTimeField(db_index=True, null=True) | COMMENT |
| LOW | corporate/models/licenses.py | 21 | plan = models.ForeignKey(CustomerPlan, on_delete=CASCADE) | COMMENT |
| LOW | corporate/models/licenses.py | 41 | # this value is usually equal to the number of activated workplace users in the organization. | COMMENT |
| LOW | corporate/lib/decorator.py | 81 | request, realm_uuid | COMMENT |
| LOW | corporate/lib/stripe.py | 1161 | def sync_license_ledger_if_needed(self) -> None: | COMMENT |
| LOW | corporate/lib/stripe.py | 1261 | # or a "failed payment" email, but the in-app messaging could be clearer | COMMENT |
| LOW | corporate/lib/test_stripe_class.py | 341 | # relevance, so collapse it to a placeholder. | COMMENT |
| LOW | corporate/lib/test_stripe_class.py | 361 | file_content = file_content.replace( | COMMENT |
| LOW | …ocumentation_crawler/documentation_crawler/settings.py | 21 | "Mozilla/5.0 (X11; Linux x86_64) " | COMMENT |
| LOW | …ocumentation_crawler/documentation_crawler/settings.py | 41 | # COOKIES_ENABLED = False | COMMENT |
| LOW | …ocumentation_crawler/documentation_crawler/settings.py | 61 | # 'documentation_crawler.middlewares.DocumentationCrawlerDownloaderMiddleware': 543, | COMMENT |
| LOW | …ocumentation_crawler/documentation_crawler/settings.py | 81 | # The maximum download delay to be set in case of high latencies | COMMENT |
| LOW | …tion_crawler/documentation_crawler/spiders/__init__.py | 1 | # This package will contain the spiders of your Scrapy project | COMMENT |
| LOW | tools/setup/emoji/custom_emoji_names.py | 261 | # where People/144 would substitute. It'd be nice if there were another | COMMENT |
| LOW | tools/setup/emoji/custom_emoji_names.py | 761 | "1f938": {"canonical_name": "cartwheel", "aliases": ["acrobatics", "gymnastics", "tumbling"]}, | COMMENT |
| LOW | tools/setup/emoji/custom_emoji_names.py | 1541 | # 24-hour time (used in many countries), like what is 00:30 or 01:00 | COMMENT |
| LOW | tools/setup/emoji/custom_emoji_names.py | 1561 | # '1f55f': {'canonical_name': 'X', 'aliases': ['clock430']}, | COMMENT |
| LOW | tools/droplets/create.py | 1 | # Creates a Zulip remote development environment droplet or | COMMENT |
| LOW | tools/droplets/add_mentor.py | 1 | # Allows a mentor to ssh into a DigitalOcean droplet. This is designed to be | COMMENT |
| LOW | tools/linter_lib/custom_check.py | 1 | from zulint.custom_rules import Rule, RuleList | COMMENT |
| LOW | web/styles/portico/billing.css | 181 | #licensechange-loading, | COMMENT |
| LOW | web/styles/portico/billing.css | 241 | } | COMMENT |
| LOW | web/styles/portico/billing.css | 301 | legacy_landing_page.css. */ | COMMENT |
| LOW | web/styles/portico/billing.css | 581 | #remote-billing-confirm-email-intro .not-editable-realm-field, | COMMENT |
| LOW | web/styles/portico/portico_signin.css | 1021 | color: var(--color-link-portico-auth-hover); | COMMENT |
| LOW | web/src/message_list_view.ts | 481 | // MessageList into the DOM, and maintaining it over time. | COMMENT |
| LOW | web/src/message_list_view.ts | 501 | // | COMMENT |
| LOW | web/src/message_list_view.ts | 861 | message_container.msg, | COMMENT |
| LOW | web/src/message_list_view.ts | 1481 | // This next line is a workaround for a weird scrolling | COMMENT |
| LOW | web/src/message_list_view.ts | 1641 | need_user_to_scroll = false; | COMMENT |
| LOW | web/src/message_list_view.ts | 1801 | COMMENT | |
| LOW | web/src/lightbox.ts | 741 | `.message_row a[href='${CSS.escape($(this).attr("data-url")!)}'] img`, | COMMENT |
| LOW | web/src/drafts_overlay_ui.ts | 541 | // A draft gained focus; mark it as the selected draft. | COMMENT |
| LOW | web/src/compose_paste.ts | 261 | // identify the intended structure of the copied content. | COMMENT |
| LOW | web/src/compose_paste.ts | 581 | COMMENT | |
| LOW | web/src/server_events_dispatch.js | 1021 | COMMENT | |
| LOW | web/src/compose_validate.ts | 241 | // There are two cases in which the `stream_id` will be | COMMENT |
| LOW | web/src/compose_validate.ts | 261 | // improvement. | COMMENT |
| LOW | web/src/bootstrap_typeahead.ts | 461 | // Reasons to update the position of the typeahead here: | COMMENT |
| LOW | web/src/bootstrap_typeahead.ts | 921 | e.preventDefault(); | COMMENT |
| LOW | web/src/transmit.ts | 101 | export function reply_message(message: Message, content: string): void { | COMMENT |
| LOW | web/src/ui_util.ts | 201 | COMMENT | |
| LOW | web/src/popover_menus.ts | 281 | $reference.parents("#message_feed_container, .sticky_header").length !== 1 | COMMENT |
| LOW | web/src/popover_menus.ts | 541 | also_trigger_on_enter?: boolean; | COMMENT |
| LOW | web/src/search.ts | 221 | // we want to highlight the first typeahead row by default | COMMENT |
| LOW | web/src/tippyjs.ts | 41 | } | COMMENT |
| LOW | web/src/tippyjs.ts | 61 | // distracting users unnecessarily. | COMMENT |
| LOW | web/src/tippyjs.ts | 81 | // Disable animations to make the tooltips feel snappy. | COMMENT |
| LOW | web/src/stream_create.ts | 421 | $("#create_stream_name").val(""); | COMMENT |
| LOW | web/src/filter.ts | 1761 | COMMENT | |
| LOW | web/src/message_view.ts | 561 | // These two narrowing operators specify what message should be | COMMENT |
| LOW | web/src/message_view.ts | 581 | // * The user is clicking a permanent link to a conversation, in which | COMMENT |
| LOW | web/src/message_view.ts | 1001 | COMMENT | |
| LOW | web/src/message_view.ts | 1161 | superset_data: MessageListData; | COMMENT |
| LOW | web/src/message_view.ts | 1181 | // - add messages into our message list from our local cache | COMMENT |
| LOW | web/src/message_view.ts | 1221 | assert(first_message_in_filtered_data !== undefined); | COMMENT |
| LOW | web/src/message_view.ts | 1261 | // If we don't have a specific message we're hoping to select | COMMENT |
| LOW | web/src/message_view.ts | 1281 | // Full-text search and potentially other future cases where | COMMENT |
| 361 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | corporate/tests/test_stripe.py | 2208 | # Create an open invoice | COMMENT |
| MEDIUM | corporate/lib/stripe.py | 3978 | # Create a new renewal invoice with updated licenses so that this becomes the last | COMMENT |
| MEDIUM | corporate/lib/stripe.py | 4179 | # Create a ledger entry for the complimentary access plan for tracking purposes. | COMMENT |
| MEDIUM | corporate/lib/stripe.py | 4224 | # Create a ledger entry for the community plan for tracking purposes. | COMMENT |
| MEDIUM⚡ | corporate/lib/test_stripe_class.py | 643 | # Create a PaymentMethod using the token | COMMENT |
| MEDIUM | tools/setup/emoji/emoji_setup_utils.py | 1 | # This file contains various helper functions used by `build_emoji` tool. | COMMENT |
| MEDIUM | tools/lib/provision_inner.py | 310 | # The following block is skipped when we just need the development | COMMENT |
| MEDIUM | zilencer/management/commands/populate_billing_realms.py | 89 | # Create a realm for each plan type | COMMENT |
| MEDIUM | zilencer/management/commands/populate_billing_realms.py | 287 | # Create a card payment method and attach it to the customer | COMMENT |
| MEDIUM | zilencer/management/commands/populate_billing_realms.py | 369 | # Create a user with billing access | COMMENT |
| MEDIUM | zilencer/management/commands/populate_db.py | 983 | # Create a test realm emoji. | COMMENT |
| MEDIUM | zerver/tests/test_channel_fetch.py | 1450 | # Create a stream for which Hamlet is the only subscriber. | STRING |
| MEDIUM | zerver/tests/test_channel_fetch.py | 1531 | # Create a private stream for which Hamlet is the only subscriber. | STRING |
| MEDIUM | zerver/tests/test_email_mirror.py | 1112 | # Create an invalid attachment: | COMMENT |
| MEDIUM⚡ | zerver/tests/test_push_notifications.py | 2020 | # Create a message to self using PERSONAL recipient type | COMMENT |
| MEDIUM | zerver/tests/test_push_notifications.py | 639 | # Create a duplicate, newer uuid-based registration for the same user to verify | COMMENT |
| MEDIUM | zerver/tests/test_push_notifications.py | 1054 | # Create a simulated second server. We will take user's RemoteRealm registration | COMMENT |
| MEDIUM | zerver/tests/test_push_notifications.py | 1196 | # Create the expected RemoteRealm registration and proceed with testing with a | COMMENT |
| MEDIUM⚡ | zerver/tests/test_drafts.py | 361 | # Create a draft. | COMMENT |
| MEDIUM⚡ | zerver/tests/test_drafts.py | 496 | # Create a draft. | COMMENT |
| MEDIUM | zerver/tests/test_drafts.py | 448 | # Create a draft. | COMMENT |
| MEDIUM | zerver/tests/test_drafts.py | 541 | # Create a draft. | COMMENT |
| MEDIUM | zerver/tests/test_channel_creation.py | 349 | # Creating an existing channel should return an error. | COMMENT |
| MEDIUM | zerver/tests/test_presence.py | 549 | # Create a first presence for the user. It's the first one and has status idle, | COMMENT |
| MEDIUM | zerver/tests/test_subs.py | 4350 | # Create a private stream with Hamlet subscribed | COMMENT |
| MEDIUM | zerver/tests/test_subs.py | 4806 | # Create a whole bunch of streams | COMMENT |
| MEDIUM | zerver/tests/test_subs.py | 5642 | # Creating an invite-only stream is allowed | COMMENT |
| MEDIUM | zerver/tests/test_import_export.py | 183 | """This class is a container for shared helper functions | STRING |
| MEDIUM | zerver/tests/test_bots.py | 430 | # Create a bot. | COMMENT |
| MEDIUM | zerver/tests/test_bots.py | 729 | # Create a bot and then deactivate it | COMMENT |
| MEDIUM | zerver/tests/test_scheduled_messages.py | 223 | # Create a direct message group for the sender. | COMMENT |
| MEDIUM | zerver/tests/test_signup.py | 264 | # Create a user who hasn't had historical messages added | COMMENT |
| MEDIUM⚡ | zerver/tests/test_message_fetch.py | 378 | # Create a direct message group between users | COMMENT |
| MEDIUM⚡ | zerver/tests/test_message_fetch.py | 445 | # Create a direct message group between users | COMMENT |
| MEDIUM⚡ | zerver/tests/test_message_fetch.py | 468 | # Create a direct message group with the user | COMMENT |
| MEDIUM⚡ | zerver/tests/test_message_fetch.py | 491 | # Create a direct message group with the user | COMMENT |
| MEDIUM⚡ | zerver/tests/test_message_fetch.py | 809 | # Create a direct message group with the user | COMMENT |
| MEDIUM⚡ | zerver/tests/test_message_fetch.py | 820 | # Create a direct message group with the user | COMMENT |
| MEDIUM | zerver/tests/test_slack_importer.py | 2846 | # Create a user who become the realm owner, ideally this will be created | STRING |
| MEDIUM | zerver/tests/test_auth_backends.py | 9334 | # Creating a mock Django form in order to keep the test simple. | COMMENT |
| MEDIUM | zerver/tests/test_auth_backends.py | 9369 | # Creating a mock Django form in order to keep the test simple. | COMMENT |
| MEDIUM | zerver/tests/test_message_send.py | 3482 | # Create a non-bot user | COMMENT |
| MEDIUM | zerver/tests/test_message_send.py | 3486 | # Create a new bot user | COMMENT |
| MEDIUM | zerver/tests/test_reminders.py | 101 | # Create a direct message group for hamlet's self messages. | COMMENT |
| MEDIUM | zerver/tests/test_reminders.py | 126 | # Create a direct message group between hamlet and othello. | COMMENT |
| MEDIUM | zerver/tests/test_reminders.py | 469 | # Create a test message to schedule a reminder for. | COMMENT |
| MEDIUM | zerver/tests/test_events.py | 4 | # This module is closely integrated with zerver/lib/event_schema.py | COMMENT |
| MEDIUM | zerver/tests/test_realm_linkifiers.py | 366 | # Create a linkifier with alternative URL templates. | COMMENT |
| MEDIUM | zerver/tests/test_channel_access.py | 28 | # Create a private stream for which Hamlet is the only subscriber. | COMMENT |
| MEDIUM | zerver/tests/test_channel_access.py | 92 | # Create a private stream for which Hamlet is the only subscriber. | COMMENT |
| MEDIUM | zerver/tests/test_invite.py | 430 | # Create a first user | COMMENT |
| MEDIUM | zerver/tests/test_link_embed.py | 42 | # The following code is taken from | COMMENT |
| MEDIUM | zerver/tests/test_markdown.py | 3493 | # Create a linkifier. | COMMENT |
| MEDIUM | zerver/tests/test_markdown.py | 3504 | # Create a topic link that potentially interferes with the pattern. | COMMENT |
| MEDIUM⚡ | zerver/tests/test_markdown.py | 3048 | # Create a linkifier. | STRING |
| MEDIUM⚡ | zerver/tests/test_markdown.py | 3058 | # Create a user that potentially interferes with the pattern. | STRING |
| MEDIUM⚡ | zerver/tests/test_markdown.py | 3144 | # Create a linkifier. | STRING |
| MEDIUM⚡ | zerver/tests/test_markdown.py | 3154 | # Create a user-group that potentially interferes with the pattern. | STRING |
| MEDIUM | zerver/tests/test_markdown.py | 664 | # Create a userprofile and send message with it. | STRING |
| MEDIUM | zerver/tests/test_markdown.py | 3797 | # Create a linkifier. | STRING |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/lib/support.py | 284 | CODE | |
| LOW | corporate/lib/billing_management.py | 36 | CODE | |
| LOW | corporate/lib/stripe.py | 5980 | CODE | |
| LOW | corporate/lib/stripe.py | 1607 | CODE | |
| LOW | corporate/lib/stripe.py | 1992 | CODE | |
| LOW | corporate/lib/stripe.py | 2472 | CODE | |
| LOW | corporate/lib/stripe.py | 2720 | CODE | |
| LOW | corporate/lib/stripe.py | 2934 | CODE | |
| LOW | corporate/lib/stripe.py | 3188 | CODE | |
| LOW | corporate/lib/stripe.py | 3547 | CODE | |
| LOW | corporate/lib/stripe.py | 3894 | CODE | |
| LOW | corporate/lib/stripe.py | 4389 | CODE | |
| LOW | corporate/lib/stripe.py | 4775 | CODE | |
| LOW | corporate/lib/stripe.py | 4899 | CODE | |
| LOW | corporate/lib/stripe.py | 5023 | CODE | |
| LOW | corporate/lib/stripe.py | 5221 | CODE | |
| LOW | corporate/lib/stripe.py | 5339 | CODE | |
| LOW | corporate/lib/stripe.py | 5474 | CODE | |
| LOW | corporate/lib/test_stripe_class.py | 219 | CODE | |
| LOW | corporate/lib/stripe_event_handler.py | 127 | CODE | |
| LOW | corporate/views/support.py | 417 | CODE | |
| LOW | corporate/views/support.py | 772 | CODE | |
| LOW | corporate/views/installation_activity.py | 96 | CODE | |
| LOW | corporate/views/installation_activity.py | 140 | CODE | |
| LOW | corporate/views/remote_activity.py | 25 | CODE | |
| LOW | …rawler/documentation_crawler/spiders/common/spiders.py | 143 | CODE | |
| LOW | tools/tests/test_zulint_custom_rules.py | 47 | CODE | |
| LOW | tools/lib/pretty_print.py | 41 | CODE | |
| LOW | tools/lib/template_parser.py | 56 | CODE | |
| LOW | tools/lib/template_parser.py | 307 | CODE | |
| LOW | tools/lib/template_parser.py | 352 | CODE | |
| LOW | tools/lib/test_server.py | 55 | CODE | |
| LOW | tools/lib/provision_inner.py | 262 | CODE | |
| LOW | zilencer/views.py | 1572 | CODE | |
| LOW | zilencer/management/commands/populate_billing_realms.py | 335 | CODE | |
| LOW | zilencer/management/commands/populate_billing_realms.py | 419 | CODE | |
| LOW | zilencer/management/commands/populate_billing_realms.py | 88 | CODE | |
| LOW | zilencer/management/commands/queue_rate.py | 40 | CODE | |
| LOW | zilencer/management/commands/populate_db.py | 1287 | CODE | |
| LOW | zilencer/management/commands/populate_db.py | 1459 | CODE | |
| LOW | zilencer/management/commands/populate_db.py | 360 | CODE | |
| LOW | zilencer/management/commands/render_messages.py | 37 | CODE | |
| LOW | scripts/setup/generate_secrets.py | 78 | CODE | |
| LOW | scripts/lib/sharding.py | 31 | CODE | |
| LOW | scripts/lib/supervisor.py | 44 | CODE | |
| LOW | scripts/lib/zulip_tools.py | 303 | CODE | |
| LOW | scripts/lib/zulip_tools.py | 727 | CODE | |
| LOW | zerver/decorator.py | 371 | CODE | |
| LOW | zerver/decorator.py | 379 | CODE | |
| LOW | zerver/decorator.py | 383 | CODE | |
| LOW | zerver/checks.py | 141 | CODE | |
| LOW | zerver/tests/test_compatibility.py | 38 | CODE | |
| LOW | zerver/tests/test_integrations.py | 123 | CODE | |
| LOW | zerver/tests/test_microsoft_teams_importer.py | 772 | CODE | |
| LOW | zerver/tests/test_openapi.py | 50 | CODE | |
| LOW | zerver/tests/test_openapi.py | 430 | CODE | |
| LOW | zerver/tests/test_openapi.py | 894 | CODE | |
| LOW | zerver/tests/test_digest.py | 793 | CODE | |
| LOW | zerver/tests/test_migration_status.py | 16 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 541 | CODE | |
| 204 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/lib/provision_inner.py | 417 | except FileNotFoundError: | CODE |
| HIGH | tools/lib/provision_inner.py | 185 | except FileNotFoundError: | CODE |
| HIGH | zilencer/views.py | 266 | except DNSException: | CODE |
| HIGH | scripts/lib/zulip_tools.py | 128 | except subprocess.CalledProcessError: | CODE |
| HIGH | scripts/lib/node_cache.py | 18 | except FileNotFoundError: | CODE |
| HIGH | zerver/middleware.py | 629 | except KeyError: | CODE |
| HIGH | …rver/management/commands/deliver_scheduled_messages.py | 34 | except KeyboardInterrupt: | CODE |
| HIGH | zerver/management/commands/deliver_scheduled_emails.py | 60 | except KeyboardInterrupt: | CODE |
| HIGH | zerver/models/realms.py | 1449 | except ValidationError: | CODE |
| HIGH | zerver/tornado/event_queue.py | 709 | except FileNotFoundError: | CODE |
| HIGH | zerver/actions/custom_profile_fields.py | 372 | except CustomProfileFieldValue.DoesNotExist: | CODE |
| HIGH | zerver/actions/data_import.py | 231 | except Realm.DoesNotExist: | CODE |
| HIGH | zerver/lib/validator.py | 314 | except ValidationError: | CODE |
| HIGH | zerver/lib/streams.py | 1071 | except Stream.DoesNotExist: | CODE |
| HIGH | zerver/lib/singleton_bmemcached.py | 48 | except OSError: # nocoverage | CODE |
| HIGH | zerver/lib/narrow.py | 951 | except Stream.DoesNotExist: | CODE |
| HIGH | zerver/lib/cache.py | 848 | except TypeError: | CODE |
| HIGH | zerver/lib/cache.py | 901 | except TypeError: | CODE |
| HIGH | zerver/lib/transfer.py | 62 | except FileNotFoundError: | CODE |
| HIGH | zerver/lib/transfer.py | 119 | except FileNotFoundError: # nocoverage | CODE |
| HIGH | zerver/lib/test_runner.py | 172 | except ProgrammingError: | CODE |
| HIGH | zerver/lib/test_fixtures.py | 324 | except ProgrammingError: | CODE |
| HIGH | zerver/lib/test_fixtures.py | 361 | except FileNotFoundError: | CODE |
| HIGH | zerver/lib/url_preview/preview.py | 87 | except requests.exceptions.RequestException: | CODE |
| HIGH | zerver/worker/base.py | 85 | except Exception: | CODE |
| HIGH | zerver/webhooks/jira/view.py | 160 | except UserProfile.DoesNotExist: | CODE |
| HIGH | zerver/views/registration.py | 698 | except KeyError: | CODE |
| HIGH | zerver/views/registration.py | 1207 | except StopIteration: | CODE |
| HIGH | zerver/views/auth.py | 1049 | except Realm.DoesNotExist: | CODE |
| HIGH | zerver/views/users.py | 682 | except UserProfile.DoesNotExist: | CODE |
| HIGH | zerver/views/users.py | 928 | except UserProfile.DoesNotExist: | CODE |
| HIGH | zerver/views/tusd.py | 268 | except JsonableError: | CODE |
| HIGH | zproject/email_backends.py | 171 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | zilencer/models.py | 428 | # As noted above, remote_id may be null, so we only | COMMENT |
| HIGH | zilencer/models.py | 430 | # technically necessary, since null != null, but it | COMMENT |
| HIGH | zilencer/models.py | 489 | # be null; since null != null, this condition is not | COMMENT |
| HIGH | zerver/tests/test_presence.py | 598 | The data model now supports them being null, but the API should still return | STRING |
| HIGH | zerver/tests/test_validators.py | 327 | x = to_wild_value("x", '{"a": 1, "b": ["c", false, null]}') | CODE |
| HIGH⚡ | zerver/tests/test_message_fetch.py | 3037 | subject || rendered_content) | STRING |
| HIGH | zerver/tests/test_event_queue.py | 1366 | queue.push(in_dict) | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1402 | queue.push(event) | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1428 | queue.push( | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1459 | queue.push( | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1470 | queue.push( | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1500 | queue.push( | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1511 | queue.push( | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1559 | queue.push(event) | CODE |
| HIGH | zerver/tests/test_event_queue.py | 1565 | queue.push({"type": "unknown", "timestamp": "1"}) | CODE |
| HIGH | zerver/management/commands/audit_fts_indexes.py | 17 | to_tsvector('zulip.english_us_search', subject || rendered_content) | STRING |
| HIGH | zerver/management/commands/audit_fts_indexes.py | 18 | WHERE to_tsvector('zulip.english_us_search', subject || rendered_content) != search_tsvector | STRING |
| HIGH | zerver/models/realms.py | 513 | # When non-null, all but the latest this many messages in the organization | COMMENT |
| HIGH | zerver/tornado/event_queue.py | 225 | self.event_queue.push(event) | CODE |
| HIGH | zerver/actions/realm_linkifiers.py | 156 | # None means unchanged. Empty string means null, normalize_optional_text | COMMENT |
| HIGH | zerver/lib/thumbnail.py | 307 | # content-type -- null, or empty from a blank ?mimetype= -- which | COMMENT |
| HIGH | zerver/lib/retention.py | 526 | # if stream.message_retention_days is null, use the realm's policy | COMMENT |
| HIGH | zerver/lib/markdown/fenced_code.py | 276 | processor.push(handler) | CODE |
| HIGH | zerver/lib/markdown/fenced_code.py | 448 | self.push(OuterHandler(self, output, self.run_content_validators, default_language)) | STRING |
| HIGH | zerver/webhooks/raygun/view.py | 184 | # Contains list of tags for the error. Can be empty (null) | COMMENT |
| HIGH | zerver/webhooks/slack/view.py | 76 | # be null, an empty string, or None. | COMMENT |
| HIGH⚡ | zerver/webhooks/sentry/tests.py | 149 | :orange_circle: **New exception:** [TypeError: can't access property "bar", x.foo is undefined](https://sentry.io/organi | CODE |
| HIGH | zproject/computed_settings.py | 364 | # The default is null, which means no timeout; 2 is the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/tests/test_support_views.py | 38 | CODE | |
| LOW | corporate/tests/test_remote_billing.py | 42 | CODE | |
| LOW | corporate/models/__init__.py | 1 | CODE | |
| LOW | corporate/models/__init__.py | 2 | CODE | |
| LOW | corporate/models/__init__.py | 3 | CODE | |
| LOW | corporate/models/__init__.py | 4 | CODE | |
| LOW | corporate/models/__init__.py | 5 | CODE | |
| LOW | corporate/models/__init__.py | 6 | CODE | |
| LOW | corporate/models/__init__.py | 7 | CODE | |
| LOW | corporate/models/__init__.py | 8 | CODE | |
| LOW | corporate/models/__init__.py | 9 | CODE | |
| LOW | corporate/models/__init__.py | 10 | CODE | |
| LOW | corporate/models/__init__.py | 11 | CODE | |
| LOW | corporate/lib/test_stripe_class.py | 91 | CODE | |
| LOW | corporate/views/billing_page.py | 26 | CODE | |
| LOW | corporate/views/billing_page.py | 26 | CODE | |
| LOW | corporate/views/event_status.py | 18 | CODE | |
| LOW | corporate/views/event_status.py | 18 | CODE | |
| LOW | corporate/views/session.py | 17 | CODE | |
| LOW | corporate/views/session.py | 17 | CODE | |
| LOW | corporate/views/upgrade.py | 23 | CODE | |
| LOW | corporate/views/upgrade.py | 23 | CODE | |
| LOW | corporate/views/sponsorship.py | 16 | CODE | |
| LOW | corporate/views/sponsorship.py | 16 | CODE | |
| LOW | corporate/views/portico.py | 31 | CODE | |
| LOW | corporate/views/portico.py | 31 | CODE | |
| LOW | tools/linter_lib/custom_check.py | 1 | CODE | |
| LOW | confirmation/models.py | 36 | CODE | |
| LOW | confirmation/models.py | 36 | CODE | |
| LOW | zerver/decorator.py | 64 | CODE | |
| LOW | zerver/apps.py | 84 | CODE | |
| LOW | zerver/tests/test_channel_fetch.py | 35 | CODE | |
| LOW | zerver/tests/test_home.py | 40 | CODE | |
| LOW | zerver/tests/test_decorators.py | 64 | CODE | |
| LOW | zerver/tests/test_exception_filter.py | 1 | CODE | |
| LOW | zerver/tests/test_subs.py | 99 | CODE | |
| LOW | zerver/tests/test_docs.py | 32 | CODE | |
| LOW | zerver/tests/test_redis_utils.py | 3 | CODE | |
| LOW | zerver/tests/test_i18n.py | 19 | CODE | |
| LOW | zerver/tests/test_scheduled_messages.py | 28 | CODE | |
| LOW | zerver/tests/test_external.py | 25 | CODE | |
| LOW | zerver/tests/test_scim.py | 21 | CODE | |
| LOW | zerver/tests/test_signup.py | 97 | CODE | |
| LOW | zerver/tests/test_widgets.py | 13 | CODE | |
| LOW | zerver/tests/test_message_fetch.py | 80 | CODE | |
| LOW | zerver/tests/test_slack_importer.py | 86 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 124 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 174 | CODE | |
| LOW | zerver/tests/test_reminders.py | 25 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 21 | CODE | |
| LOW | zerver/tests/test_invite.py | 82 | CODE | |
| LOW | zerver/tests/test_message_flags.py | 47 | CODE | |
| LOW | zerver/tests/test_settings.py | 19 | CODE | |
| LOW | zerver/tests/test_reactions.py | 25 | CODE | |
| LOW | zerver/models/__init__.py | 1 | CODE | |
| LOW | zerver/models/__init__.py | 2 | CODE | |
| LOW | zerver/models/__init__.py | 3 | CODE | |
| LOW | zerver/models/__init__.py | 4 | CODE | |
| LOW | zerver/models/__init__.py | 5 | CODE | |
| LOW | zerver/models/__init__.py | 6 | CODE | |
| 126 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/setup/emoji/custom_emoji_names.py | 677 | # potentially fun emoji to have in conjunction with ice_cream. Put in | COMMENT |
| LOW | tools/linter_lib/custom_check.py | 836 | # version of the tab-based whitespace rule (we can't just use | COMMENT |
| MEDIUM | web/src/user_group_edit_members.ts | 364 | // add member request as the endpoint is not so robust and | COMMENT |
| MEDIUM | zilencer/models.py | 405 | # are stats we track on the bouncer server itself, pertaining to the remote server. | COMMENT |
| MEDIUM | zilencer/models.py | 453 | # stats pertaining to a realm on a remote server. For such objects, we will link to | COMMENT |
| MEDIUM | zerver/decorator.py | 247 | # more robust to just key off whether it was a browser view | COMMENT |
| LOW | zerver/middleware.py | 407 | # just return the response without logging further. | COMMENT |
| LOW⚡ | zerver/tests/test_webhooks_common.py | 119 | # we just return a fixed dictionary. | COMMENT |
| MEDIUM | zerver/tests/test_presence.py | 369 | # here in the response - but it's still good to test the code is robust | COMMENT |
| LOW | zerver/tests/test_subs.py | 4235 | streams_to_sub = streams[:1] # just add one, to make the message easier to check | CODE |
| MEDIUM | zerver/tests/test_import_export.py | 1413 | # More general assertions on the entire sets of audit logs pertaining to our users. | COMMENT |
| MEDIUM | zerver/tests/test_message_fetch.py | 1369 | # Definitely forbid seeing history on private channels. | COMMENT |
| MEDIUM | zerver/tests/test_message_fetch.py | 1489 | # Definitely, a guest user can't access the unsubscribed private channel | COMMENT |
| LOW | zerver/tests/test_auth_backends.py | 3139 | # and we simply use one loaded from a fixture file. | COMMENT |
| LOW | zerver/tests/test_auth_backends.py | 4659 | # This URL isn't used in the Apple auth flow, so we just set a | COMMENT |
| LOW | zerver/tests/test_message_flags.py | 125 | # we should get the old message we just set to unread | COMMENT |
| LOW | zerver/models/messages.py | 502 | # Certain additional flags are just set once when the UserMessage | COMMENT |
| MEDIUM | zerver/models/realms.py | 75 | # We include a prefix to facilitate scanning for accidental | COMMENT |
| LOW | zerver/models/realms.py | 1378 | # that the previous enum setting allowed, then just return the | COMMENT |
| LOW | zerver/tornado/django_api.py | 181 | # Tornado process, we simply call the process_notification | COMMENT |
| LOW | zerver/data_import/slack.py | 2016 | # We're not using pagination, so we don't want to loop and should just return the result. | COMMENT |
| LOW | zerver/actions/user_settings.py | 689 | # their presence state intact - so just return without | COMMENT |
| LOW | zerver/actions/streams.py | 1005 | # we can just return early. | COMMENT |
| LOW | zerver/actions/reactions.py | 156 | # deactivated custom emoji, so we just use the emoji name from | COMMENT |
| MEDIUM | zerver/actions/realm_settings.py | 819 | # more robust for ensuring no messages belonging to | COMMENT |
| MEDIUM | zerver/lib/event_schema.py | 244 | # robust. | STRING |
| MEDIUM | zerver/lib/event_schema.py | 247 | # simplify our types or make them more robust | STRING |
| LOW | zerver/lib/generate_test_data.py | 144 | # this is the hacky version where we just use inline image | COMMENT |
| LOW⚡ | zerver/lib/users.py | 1004 | # We just set date_joined field to UNIX epoch. | COMMENT |
| LOW | zerver/lib/users.py | 982 | # just set bot_owner_id=None. | COMMENT |
| LOW | zerver/lib/users.py | 1145 | # in row object, so we can just add it to result directly. | COMMENT |
| LOW | zerver/lib/narrow.py | 1670 | # just return `None`. | COMMENT |
| MEDIUM | zerver/lib/events.py | 1815 | # from scratch. Definitely don't need to re-query everything, | COMMENT |
| LOW | zerver/lib/rest.py | 75 | # view function logic and just return the response. | COMMENT |
| LOW | zerver/lib/presence.py | 135 | # just set it to a fixed value for API format compatibility. | COMMENT |
| LOW | zerver/lib/scim.py | 740 | # we just add a hacky approach for detecting and handling this single, specific | COMMENT |
| LOW | zerver/lib/retention.py | 198 | # We can simply use LIMIT without worrying about OFFSETs and ordering | COMMENT |
| LOW | zerver/lib/soft_deactivation.py | 263 | # a message, we just use the overall max message ID. | COMMENT |
| LOW⚡ | zerver/lib/i18n.py | 95 | # browser/request associated with them, and should just use | COMMENT |
| LOW | zerver/lib/test_helpers.py | 395 | # get rid of this abstraction entirely and just use the HTTP | COMMENT |
| MEDIUM | zerver/lib/test_helpers.py | 594 | var_dir = "var" # TODO make sure path is robust here | CODE |
| MEDIUM | zerver/lib/email_notifications.py | 316 | # structure of the URL to leverage. We can't use `relative_to_full_url()` | COMMENT |
| MEDIUM | zerver/lib/mention.py | 104 | # In particular, user_cache is not robust to message_sender | COMMENT |
| LOW | zerver/lib/send_email.py | 155 | # out; as such, they just use a STATIC_URL prefix. | COMMENT |
| LOW | zerver/lib/push_notifications.py | 1158 | # just use a colon to indicate this is the sender. | COMMENT |
| LOW | zerver/lib/markdown/tabbed_sections.py | 102 | # Otherwise, just use the end of the entire section | STRING |
| LOW | zerver/lib/upload/s3.py | 190 | # no access key makes `generate_presigned_url` just return the | COMMENT |
| MEDIUM⚡ | zerver/webhooks/linear/tests.py | 31 | expected_message = "[Issue](https://linear.app/webhooks/issue/WEB-44/this-is-regarding-the-outage-that-we-faced- | CODE |
| MEDIUM⚡ | zerver/webhooks/linear/tests.py | 36 | expected_message = "Satyam Bansal [commented](https://linear.app/webhooks/issue/WEB-46#comment-c7cafc52) on issu | CODE |
| MEDIUM⚡ | zerver/webhooks/linear/tests.py | 46 | expected_message = "Satyam Bansal [updated comment](https://linear.app/webhooks/issue/WEB-46#comment-c7cafc52) o | CODE |
| MEDIUM⚡ | zerver/webhooks/linear/tests.py | 71 | expected_message = "[Issue](https://linear.app/webhooks/issue/WEB-44/this-is-regarding-the-outage-that-we-faced- | CODE |
| MEDIUM | zproject/prod_settings_template.py | 565 | ## For details on this, see the aforementioned python3-saml documentation | COMMENT |
| MEDIUM | zproject/backends.py | 4245 | # This is more robust than relying on storing variables in request.session. | COMMENT |
| LOW | zproject/backends.py | 2853 | # subdomain.zulip.example.com, we would just call | COMMENT |
| LOW | zproject/backends.py | 3177 | # we just use the primary email address, which is always verified. | COMMENT |
| LOW | zproject/backends.py | 3363 | # What we'd like to do with the payload is just pass it into | COMMENT |
| MEDIUM | zproject/backends.py | 3663 | """Get the URL to which we must redirect in order to | STRING |
| LOW | analytics/views/stats.py | 448 | # should simply use the first and last data points for the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | corporate/lib/stripe.py | 4669 | def update_license_ledger_if_needed(self, event_time: datetime) -> None: | CODE |
| LOW | …ickapps/prepare_digital_ocean_one_click_app_release.py | 58 | def set_api_request_retry_limits(api_object: digitalocean.baseapi.BaseAPI) -> None: | CODE |
| LOW | tools/lib/test_server.py | 26 | def set_up_django(external_host: str) -> None: | CODE |
| LOW⚡ | zilencer/auth.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | zilencer/views.py | 117 | logger = logging.getLogger(__name__) | CODE |
| LOW | zilencer/management/commands/add_mock_conversation.py | 38 | def set_avatar(self, user: UserProfile, filename: str) -> None: | STRING |
| LOW | zilencer/lib/push_notifications.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | zerver/tests/test_retention.py | 117 | def _set_realm_message_retention_value(self, realm: Realm, retention_period: int) -> None: | CODE |
| LOW⚡ | zerver/tests/test_realm.py | 2765 | def update_with_realm_default_api(self, name: str, val: Any) -> None: | CODE |
| LOW | zerver/tests/test_import_export.py | 3574 | def set_favorite_city(user: UserProfile, city: str) -> None: | CODE |
| LOW | zerver/tests/test_user_topics.py | 298 | def set_topic_visibility_for_user(user: UserProfile, visibility_policy: int) -> None: | CODE |
| LOW | zerver/tests/test_user_topics.py | 517 | def set_topic_visibility_for_user(user: UserProfile, visibility_policy: int) -> None: | CODE |
| LOW | zerver/tests/test_parallel.py | 254 | def set_file_logger(output_dir: str) -> None: | CODE |
| LOW⚡ | zerver/tests/test_message_fetch.py | 3027 | def _update_tsvector_index(self) -> None: | CODE |
| LOW | zerver/tests/test_message_fetch.py | 5869 | def update_message(self, msg: Message, content: str) -> None: | CODE |
| LOW⚡ | zerver/tests/test_markdown.py | 3256 | def update_message_and_check_flag(content: str, mentioned: bool) -> None: | STRING |
| LOW | zerver/tests/test_messages.py | 39 | def set_presence(user: UserProfile, client_name: str, ago: int) -> None: | CODE |
| LOW | zerver/management/commands/deliver_scheduled_emails.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | zerver/management/commands/enqueue_digest_emails.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | zerver/management/commands/update_subscriber_counts.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ment/commands/update_channel_recently_active_status.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | zerver/models/users.py | 965 | def set_password(self, password: str | None) -> None: | CODE |
| LOW | zerver/models/scheduled_jobs.py | 225 | def set_topic_name(self, topic_name: str) -> None: | CODE |
| LOW | zerver/models/messages.py | 282 | def set_topic_name(self, topic_name: str) -> None: | CODE |
| LOW | zerver/openapi/merge_api_changelogs.py | 99 | def update_feature_level_in_api_docs(new_feature_level: int) -> None: | CODE |
| LOW⚡ | zerver/openapi/python_examples.py | 676 | def update_realm_profile_field(client: Client, field_id: int) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 118 | def set_moderation_request_channel(client: Client, channel: str | None = "core team") -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 288 | def update_presence(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 324 | def update_status(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 552 | def update_user(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 720 | def update_realm_filter(client: Client, filter_id: int) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 892 | def update_bot_storage(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 991 | def update_stream(client: Client, stream_id: int) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1116 | def update_user_topic(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1211 | def update_subscription_settings(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1239 | def update_subscription_property(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1384 | def update_navigation_views(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1581 | def update_message(client: Client, message_id: int, prev_content: str) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1662 | def update_message_flags(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1776 | def update_settings(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1941 | def set_typing_status(client: Client) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 1999 | def set_message_edit_typing_status(client: Client, message_id: int) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 2107 | def update_user_group(client: Client, user_group_id: int) -> None: | CODE |
| LOW | zerver/openapi/python_examples.py | 2121 | def update_user_group_members(client: Client, user_group_id: int) -> None: | CODE |
| LOW⚡ | zerver/tornado/descriptors.py | 15 | def set_descriptor_by_handler_id(handler_id: int, client_descriptor: "ClientDescriptor") -> None: | CODE |
| LOW | zerver/tornado/descriptors.py | 30 | def set_current_port(port: int) -> None: | CODE |
| LOW | zerver/actions/user_settings.py | 423 | def set_avatar_to_default(user_profile: UserProfile, *, acting_user: UserProfile | None) -> None: | CODE |
| LOW | zerver/actions/message_edit.py | 433 | def update_flag(um: UserMessage, should_set: bool, flag: int) -> None: | CODE |
| LOW | zerver/actions/presence.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | zerver/actions/user_activity.py | 29 | def update_user_activity_interval(user_profile: UserProfile, log_time: datetime) -> None: | CODE |
| LOW | zerver/lib/queue.py | 365 | def set_qos(frame: Any) -> None: | CODE |
| LOW | zerver/lib/queue.py | 433 | def set_queue_client(queue_client: SimpleQueueClient | TornadoQueueClient) -> None: | CODE |
| LOW | zerver/lib/digest.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | zerver/lib/fix_unreads.py | 25 | def update_unread_flags(cursor: CursorWrapper, user_message_ids: list[int]) -> None: | CODE |
| LOW | zerver/lib/zstd_level9.py | 4 | __all__ = ["compress", "decompress"] | CODE |
| LOW | zerver/lib/rate_limiter.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | zerver/lib/message.py | 1402 | def update_first_visible_message_id(realm: Realm) -> None: | CODE |
| LOW | zerver/lib/avatar.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | zerver/lib/notes.py | 49 | def set_notes(cls, key: _KeyT, notes: _DataT) -> None: | CODE |
| LOW | zerver/lib/bot_storage.py | 36 | def set_bot_storage(bot_profile: UserProfile, entries: list[tuple[str, str]]) -> None: | CODE |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/lib/stripe.py | 1361 | except Exception as e: | CODE |
| LOW | corporate/lib/stripe.py | 1664 | except Exception as e: # nocoverage | CODE |
| LOW | corporate/lib/stripe.py | 1691 | except Exception as e: | CODE |
| LOW | corporate/lib/stripe.py | 1726 | except Exception as e: # nocoverage | CODE |
| LOW | corporate/lib/stripe.py | 5997 | except Exception as e: | CODE |
| LOW | corporate/lib/stripe_event_handler.py | 67 | except Exception: | CODE |
| LOW | corporate/views/webhook.py | 48 | except Exception: | CODE |
| LOW | corporate/views/remote_billing_page.py | 221 | except Exception: # nocoverage | CODE |
| LOW | corporate/views/upgrade.py | 72 | except Exception: | CODE |
| LOW | corporate/views/upgrade.py | 122 | except Exception: # nocoverage | CODE |
| LOW | corporate/views/upgrade.py | 172 | except Exception: # nocoverage | CODE |
| LOW | corporate/views/installation_activity.py | 329 | except Exception: | CODE |
| LOW | tools/lib/provision_inner.py | 258 | except Exception: | CODE |
| LOW⚡ | zilencer/views.py | 469 | except Exception: # nocoverage | CODE |
| MEDIUM | …t/commands/manage_push_registration_encryption_keys.py | 39 | print("Error: Please provide either --add or --remove-key <public-key>.") | STRING |
| MEDIUM | …t/commands/manage_push_registration_encryption_keys.py | 66 | print("Error: No key pair found for the given public key.") | STRING |
| LOW | zerver/decorator.py | 400 | except Exception as err: | CODE |
| LOW | zerver/decorator.py | 829 | except Exception as err: | CODE |
| MEDIUM | zerver/tests/test_docs.py | 42 | print("Error processing URL:", url) | CODE |
| LOW | zerver/tests/test_openapi.py | 467 | except Exception: # nocoverage | STRING |
| LOW | zerver/tests/test_queue.py | 74 | except Exception: | CODE |
| LOW | zerver/management/commands/register_server.py | 230 | except Exception: | CODE |
| LOW | zerver/management/commands/sync_ldap_user_data.py | 59 | except Exception: | CODE |
| LOW | zerver/management/commands/process_queue.py | 28 | except Exception: | CODE |
| LOW | zerver/tornado/handlers.py | 80 | except Exception as e: | CODE |
| LOW⚡ | zerver/tornado/event_queue.py | 1863 | except Exception: | CODE |
| LOW | zerver/tornado/event_queue.py | 237 | except Exception: | CODE |
| LOW | zerver/tornado/event_queue.py | 716 | except Exception: | CODE |
| LOW | zerver/data_import/microsoft_teams.py | 589 | except Exception: # nocoverage | CODE |
| LOW | zerver/data_import/slack.py | 1221 | except Exception: | CODE |
| LOW | zerver/actions/scheduled_messages.py | 458 | except Exception as e: | CODE |
| LOW | zerver/actions/data_import.py | 192 | except Exception as e: | CODE |
| LOW | zerver/lib/event_schema.py | 139 | except Exception: # nocoverage | CODE |
| LOW | zerver/lib/widget.py | 142 | except Exception: | CODE |
| LOW | zerver/lib/widget.py | 147 | except Exception: | CODE |
| LOW | zerver/lib/export.py | 829 | except Exception: | CODE |
| LOW | zerver/lib/export.py | 3158 | except Exception: | STRING |
| LOW | zerver/lib/logging_util.py | 64 | except Exception: | CODE |
| LOW | zerver/lib/import_realm.py | 647 | except Exception: | STRING |
| LOW | zerver/lib/attachments.py | 49 | except Exception: | CODE |
| LOW | zerver/lib/captcha.py | 91 | except Exception: | CODE |
| LOW | zerver/lib/zulip_update_announcements.py | 812 | except Exception: # nocoverage | STRING |
| LOW | zerver/lib/mobile_auth_otp.py | 50 | except Exception: | CODE |
| LOW⚡ | zerver/lib/soft_deactivation.py | 391 | except Exception: # nocoverage | CODE |
| LOW | zerver/lib/email_notifications.py | 239 | except Exception as e: | CODE |
| LOW | zerver/lib/parallel.py | 38 | except Exception: | CODE |
| LOW | zerver/lib/send_email.py | 476 | except Exception: | CODE |
| LOW | zerver/lib/markdown/__init__.py | 2690 | except Exception: | CODE |
| LOW | zerver/lib/markdown/fenced_code.py | 516 | except Exception: | CODE |
| LOW | zerver/worker/missedmessage_emails.py | 143 | except Exception: | CODE |
| LOW | zerver/worker/missedmessage_emails.py | 266 | except Exception: | CODE |
| LOW | zerver/worker/deferred_work.py | 133 | except Exception: | CODE |
| LOW | zerver/worker/base.py | 85 | except Exception: | CODE |
| LOW | zerver/worker/base.py | 213 | except Exception as e: | CODE |
| MEDIUM | zerver/worker/base.py | 80 | def check_and_send_restart_signal() -> None: | CODE |
| LOW | zerver/webhooks/librato/view.py | 179 | except Exception as e: | CODE |
| LOW⚡ | zerver/webhooks/sentry/tests.py | 139 | except Exception as e: | CODE |
| LOW | zerver/webhooks/sentry/tests.py | 75 | except Exception as e: | CODE |
| LOW | zerver/views/home.py | 149 | except Exception: | CODE |
| LOW | zerver/views/health.py | 21 | except Exception: # nocoverage | CODE |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/droplets/README.md | 13 | ## Step 1: Join Zulip DigitalOcean team | COMMENT |
| LOW | tools/droplets/README.md | 19 | ## Step 2: Create your DigitalOcean API token | COMMENT |
| LOW | tools/droplets/README.md | 30 | ## Step 3: Configure create.py | COMMENT |
| LOW | web/src/sidebar_ui.ts | 554 | // NOTE: This function is designed to be used for keyboard navigation purposes. | COMMENT |
| LOW | web/src/dropdown_widget.ts | 794 | // NOTE: This function needs to be explicitly called when you want to update the | COMMENT |
| LOW | web/src/message_list_data.ts | 280 | // NOTE: This function returns the first unread that was fetched and is not | COMMENT |
| LOW | .claude/skills/debug-node-coverage/SKILL.md | 24 | ## Step 1: Read the uncovered lines | COMMENT |
| LOW | .claude/skills/debug-node-coverage/SKILL.md | 37 | ## Step 2: Find the test file | COMMENT |
| LOW⚡ | .claude/skills/debug-node-coverage/SKILL.md | 50 | ## Step 3: Add tests for testable code | COMMENT |
| LOW⚡ | .claude/skills/debug-node-coverage/SKILL.md | 57 | ## Step 4: Handle unreachable assertions | COMMENT |
| LOW⚡ | .claude/skills/debug-node-coverage/SKILL.md | 62 | ## Step 5: Verify | COMMENT |
| LOW | docs/development/setup-recommended.md | 90 | ### Step 0: Set up Git & GitHub | COMMENT |
| LOW | docs/development/setup-recommended.md | 101 | ### Step 1: Install prerequisites | COMMENT |
| LOW | docs/development/setup-recommended.md | 278 | ### Step 2: Get Zulip code | COMMENT |
| LOW | docs/development/setup-recommended.md | 312 | ### Step 3: Start the development environment | COMMENT |
| LOW | docs/development/setup-recommended.md | 443 | ### Step 4: Developing | COMMENT |
| LOW | docs/development/request-remote.md | 14 | ## Step 1: Join GitHub and create SSH keys | COMMENT |
| LOW | docs/development/request-remote.md | 23 | ## Step 2: Create a fork of zulip/zulip | COMMENT |
| LOW | docs/development/request-remote.md | 38 | ## Step 3: Make request via chat.zulip.org | COMMENT |
| LOW | docs/subsystems/onboarding-steps.md | 14 | ### Step 1: Add the Onboarding Step Name | COMMENT |
| LOW | docs/subsystems/onboarding-steps.md | 28 | ### Step 2: Display the Onboarding Step | COMMENT |
| LOW | docs/subsystems/onboarding-steps.md | 35 | ### Step 3: Mark the Onboarding Step as Read | COMMENT |
| LOW | docs/production/install.md | 36 | ## Step 0: Set up a base server | COMMENT |
| LOW | docs/production/install.md | 42 | ## Step 1: Download the latest release | COMMENT |
| LOW | docs/production/install.md | 57 | ## Step 2: Install Zulip | COMMENT |
| LOW | docs/production/install.md | 166 | ## Step 3: Create a Zulip organization, and log in | COMMENT |
| LOW | docs/production/postgresql.md | 41 | #### Step 1: Choose database name and username | COMMENT |
| LOW | docs/production/postgresql.md | 47 | #### Step 1: Set up Zulip | COMMENT |
| LOW | docs/production/postgresql.md | 62 | #### Step 3: Create the PostgreSQL database | COMMENT |
| LOW | docs/production/postgresql.md | 78 | #### Step 4: Configure Zulip to use the PostgreSQL database | COMMENT |
| LOW | docs/production/postgresql.md | 113 | #### Step 1: Set up Zulip | COMMENT |
| LOW | docs/production/postgresql.md | 124 | #### Step 2: Create the PostgreSQL database server | COMMENT |
| LOW | docs/production/postgresql.md | 143 | #### Step 3: Configure Zulip to use the PostgreSQL database | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 15 | ## Step 0: Create fixtures | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 103 | ## Step 1: Initialize the python package | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 111 | ## Step 2: Write the main webhook code | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 221 | ## Step 3: Create an API endpoint for the webhook | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 261 | ## Step 4: Manually test the webhook | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 371 | ## Step 5: Create automated tests | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 462 | ## Step 6: Document the integration | COMMENT |
| LOW | docs/webhooks/incoming-webhooks-walkthrough.md | 496 | ## Step 7: Prepare a pull request | COMMENT |
| LOW | docs/git/pull-requests.md | 28 | ### Step 0: Make sure you're on a feature branch (not `main`) | COMMENT |
| LOW | docs/git/pull-requests.md | 40 | ### Step 1: Update your branch with git rebase | COMMENT |
| LOW | docs/git/pull-requests.md | 66 | ### Step 2: Push your updated branch to your remote fork | COMMENT |
| LOW | docs/git/pull-requests.md | 103 | ### Step 3: Open the pull request | COMMENT |
| LOW | docs/git/cloning.md | 95 | ## Step 2: Set up the Zulip development environment | COMMENT |
| LOW | docs/git/cloning.md | 102 | ## Step 3: Configure continuous integration for your fork | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/tests/test_remote_billing.py | 812 | # Check if zephyr and lear were deactivated | COMMENT |
| LOW | corporate/lib/stripe.py | 807 | # Check if customer has any $0 invoices. | COMMENT |
| LOW | corporate/lib/stripe.py | 1980 | # Check if the customer is scheduled for an upgrade. | COMMENT |
| LOW | corporate/lib/stripe.py | 2502 | # Check if user has already paid for the plan by invoice. | COMMENT |
| LOW | corporate/lib/stripe.py | 2959 | # Check if user was successful in adding a card and we are rendering the page again. | COMMENT |
| LOW | zilencer/views.py | 259 | # Check if the domain has an MX record | COMMENT |
| LOW | zilencer/views.py | 269 | # Check if the A/AAAA exist, for better error reporting | COMMENT |
| LOW | scripts/lib/puppet_cache.py | 40 | # Check if a cached version already exists | COMMENT |
| LOW | zerver/context_processors.py | 102 | # Check if view function is in corporate app. | COMMENT |
| LOW | zerver/tests/test_user_status.py | 143 | # Set Hamlet to in a meeting. | COMMENT |
| LOW | zerver/tests/test_realm_playgrounds.py | 21 | # Check if the actual object exists | COMMENT |
| LOW | zerver/tests/test_audit_log.py | 2196 | # Set workplace_users_group to an anonymous group containing the group | COMMENT |
| LOW | zerver/tests/test_audit_log.py | 2365 | # Set workplace_users_group to an anonymous group containing the group | COMMENT |
| LOW | zerver/tests/test_user_topics.py | 356 | # Verify if events are sent properly | COMMENT |
| LOW | zerver/tests/test_user_topics.py | 424 | # Verify if events are sent properly | COMMENT |
| LOW | zerver/tests/test_user_topics.py | 575 | # Verify if events are sent properly | COMMENT |
| LOW | zerver/tests/test_user_topics.py | 643 | # Verify if events are sent properly | COMMENT |
| LOW | zerver/tests/test_tutorial.py | 191 | # Check if Welcome bot still replies for bot commands | COMMENT |
| LOW | zerver/tests/test_user_groups.py | 2714 | # Check if members of a NamedUserGroup are allowed to create user groups. | COMMENT |
| LOW | zerver/tests/test_user_groups.py | 2725 | # Check if members of an anonymous group are allowed to create user groups. | COMMENT |
| LOW | zerver/tests/test_user_groups.py | 3062 | # Check if members of a NamedUserGroup are allowed to add/remove members. | COMMENT |
| LOW | zerver/tests/test_user_groups.py | 3078 | # Check if members of an anonymous group are allowed to add/remove members. | COMMENT |
| LOW | zerver/tests/test_user_groups.py | 3378 | # Set permissions to manage the group and adding others to group | COMMENT |
| LOW | zerver/tests/test_scheduled_messages.py | 658 | # Check if another user can access these scheduled messages. | COMMENT |
| LOW | zerver/tests/test_queue_worker.py | 305 | # Set ourself to stop at the top of the next loop, but | COMMENT |
| LOW | zerver/tests/test_signup.py | 1896 | # Check if user is subscribed to the streams of default | COMMENT |
| LOW | zerver/tests/test_signup.py | 2035 | # Check if user is subscribed to the streams of default | COMMENT |
| LOW | zerver/tests/test_message_fetch.py | 4518 | # Check if the anchor value in response is correct for different | COMMENT |
| LOW | zerver/tests/test_slack_importer.py | 2868 | # Check if we cannot find the realm, preregistration_realm is revoked. | STRING |
| LOW | zerver/tests/test_slack_importer.py | 2894 | # Check if we render a form for user to select a user if there | STRING |
| LOW | zerver/tests/test_auth_backends.py | 370 | # Verify if a realm has password auth disabled, correct password is rejected | COMMENT |
| LOW | zerver/tests/test_example.py | 528 | # Set limit to edit message content. | COMMENT |
| LOW | zerver/openapi/test_curl_examples.py | 98 | # Set AUTHENTICATION_LINE to default_authentication_line. | COMMENT |
| LOW | zerver/data_import/slack_message_conversion.py | 164 | # Check if there's a pipe with text after it | STRING |
| LOW | zerver/actions/message_send.py | 1435 | # Check if this is a 1:1 DM between a user and the Welcome Bot, | COMMENT |
| LOW | zerver/actions/presence.py | 260 | # Check if the row was actually created or if we | STRING |
| LOW | zerver/lib/narrow.py | 1662 | # Check if channel exists. | COMMENT |
| LOW | zerver/lib/import_realm.py | 2270 | # Set it to the latest level to avoid receiving older update messages. | STRING |
| LOW | zerver/lib/test_runner.py | 314 | # Check if we are in serial mode to avoid unnecessarily making a directory. | COMMENT |
| LOW | zerver/lib/markdown/__init__.py | 1210 | # Set text to initial input, so simple clients translating | COMMENT |
| LOW | zerver/webhooks/teamcity/view.py | 116 | # Check if this is a personal build, and if so try to direct message the user who triggered it. | STRING |
| LOW | zerver/views/auth.py | 554 | # Check if the mobile URL is overridden in settings, if so, replace it | COMMENT |
| LOW | zerver/views/upload.py | 294 | # Check if this is something that we thumbnail at all | COMMENT |
| LOW | zerver/views/tusd.py | 335 | # Check if unauthenticated requests are for realm creation | COMMENT |
| LOW | zproject/default_settings.py | 100 | # Set this to True to enforce that any configured IdP needs to specify | COMMENT |
| LOW | zproject/default_settings.py | 778 | # Set it to None to disable it. | COMMENT |
| LOW | zproject/backends.py | 645 | # Check if the email ends with LDAP_APPEND_DOMAIN | COMMENT |
| LOW | zproject/dev_settings.py | 24 | # Check if test_settings.py set EXTERNAL_HOST. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/views/support.py | 160 | CODE | |
| LOW | corporate/views/support.py | 210 | CODE | |
| LOW | corporate/views/support.py | 263 | CODE | |
| LOW | corporate/views/support.py | 417 | CODE | |
| LOW | corporate/views/support.py | 772 | CODE | |
| LOW | corporate/views/upgrade.py | 223 | CODE | |
| LOW | corporate/views/upgrade.py | 258 | CODE | |
| LOW | corporate/views/upgrade.py | 293 | CODE | |
| LOW | confirmation/models.py | 199 | CODE | |
| LOW | zerver/forms.py | 403 | CODE | |
| LOW | zerver/tests/test_scheduled_messages.py | 67 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 814 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 871 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 881 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 3074 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 4679 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 4794 | CODE | |
| LOW | zerver/tests/test_auth_backends.py | 4838 | CODE | |
| LOW | zerver/tests/test_reminders.py | 52 | CODE | |
| LOW | zerver/tests/test_events.py | 350 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 398 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 403 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 408 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 413 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 576 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 580 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 584 | CODE | |
| LOW | zerver/tests/test_message_delete.py | 588 | CODE | |
| LOW | zerver/tests/test_invite.py | 213 | CODE | |
| LOW | zerver/tests/test_email_change.py | 55 | CODE | |
| LOW | zerver/tests/test_settings.py | 529 | CODE | |
| LOW | zerver/tests/test_reactions.py | 701 | CODE | |
| LOW | zerver/tests/test_reactions.py | 709 | CODE | |
| LOW | zerver/tests/test_reactions.py | 717 | CODE | |
| LOW | zerver/tornado/django_api.py | 86 | CODE | |
| LOW | zerver/tornado/views.py | 149 | CODE | |
| LOW | zerver/actions/create_user.py | 507 | CODE | |
| LOW | zerver/actions/message_send.py | 701 | CODE | |
| LOW | zerver/actions/message_send.py | 1597 | CODE | |
| LOW | zerver/actions/message_send.py | 1866 | CODE | |
| LOW | zerver/actions/message_send.py | 2075 | CODE | |
| LOW | zerver/actions/create_realm.py | 190 | CODE | |
| LOW | zerver/lib/create_user.py | 150 | CODE | |
| LOW | zerver/lib/streams.py | 371 | CODE | |
| LOW | zerver/lib/streams.py | 2072 | CODE | |
| LOW | zerver/lib/events.py | 167 | CODE | |
| LOW | zerver/lib/events.py | 2106 | CODE | |
| LOW | zerver/lib/export.py | 570 | CODE | |
| LOW | zerver/lib/test_helpers.py | 378 | CODE | |
| LOW | zerver/lib/send_email.py | 88 | CODE | |
| LOW | zerver/lib/send_email.py | 271 | CODE | |
| LOW | zerver/lib/send_email.py | 359 | CODE | |
| LOW | zerver/lib/integrations.py | 151 | CODE | |
| LOW | zerver/lib/integrations.py | 284 | CODE | |
| LOW | zerver/lib/integrations.py | 326 | CODE | |
| LOW | zerver/lib/test_classes.py | 572 | CODE | |
| LOW | zerver/lib/test_classes.py | 887 | CODE | |
| LOW | zerver/lib/test_classes.py | 1346 | CODE | |
| LOW | zerver/lib/markdown/__init__.py | 2554 | CODE | |
| LOW | zerver/lib/markdown/__init__.py | 2725 | CODE | |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | zerver/tests/test_submessage.py | 0 | tests that `send_event_rollback_unsafe` is hooked to `transaction.on_commit`. this is important, because we don't want t | STRING |
| HIGH | zerver/tests/test_message_delete.py | 0 | tests that `send_event_rollback_unsafe` is hooked to `transaction.on_commit`. this is important, because we don't want t | STRING |
| HIGH | zerver/tests/test_reactions.py | 0 | tests that `send_event_rollback_unsafe` is hooked to `transaction.on_commit`. this is important, because we don't want t | STRING |
| HIGH | zerver/webhooks/freshstatus/view.py | 0 | hi there! your bot {bot_name} just received a uptimerobot payload that is missing some data that zulip requires. this us | STRING |
| HIGH | zerver/webhooks/zabbix/view.py | 0 | hi there! your bot {bot_name} just received a uptimerobot payload that is missing some data that zulip requires. this us | STRING |
| HIGH | zerver/webhooks/uptimerobot/view.py | 0 | hi there! your bot {bot_name} just received a uptimerobot payload that is missing some data that zulip requires. this us | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/src/message_list_tooltips.ts | 155 | // Thus, we need to check if the date string contains a digit or not using regex, | COMMENT |
| LOW | web/src/popover_menus.ts | 387 | // For other browsers, we need to check if the focused element is an text field and | COMMENT |
| LOW | web/src/message_view.ts | 518 | // we need to check if the narrow is allowed for spectator here too. | COMMENT |
| LOW | web/src/message_parser.ts | 6 | // We need to check if the message content contains the specified HTML | COMMENT |
| LOW | web/src/inbox_ui.ts | 345 | // Before we set the filter, we need to check if the inbox view is already visible. | COMMENT |
| LOW | web/src/message_util.ts | 140 | // If not, we need to check if the current filter matches the DM view we | COMMENT |
| LOW | web/src/message_notifications.ts | 322 | // And then we need to check if the message is a direct message, | COMMENT |
| LOW | web/src/message_notifications.ts | 390 | // And then we need to check if the message is a direct message, | COMMENT |
| LOW | web/src/message_list.ts | 189 | // TODO: For supporting other narrows, we need to check if we have fetched the first | COMMENT |
| LOW | zerver/lib/message.py | 1657 | # Now we need to check if the user initiated the topic. | COMMENT |
| LOW | zerver/lib/send_email.py | 841 | The purpose of this function is to log (potential) config errors, | STRING |
| LOW | zproject/backends.py | 1573 | The purpose of this function is to take a UserProfile meant for syncing with LDAP, | STRING |
| LOW | zproject/backends.py | 3485 | to note this detail. The purpose of this function is merely as a helper to figure out which | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/screenshots/for-events.json | 15 | "content": "Welcome everyone! Here are the slides for the keynote talk: [keynote-slides.ppt](#). Don't f | CODE |
| LOW | zerver/tornado/event_queue.py | 146 | # If you add a new key to this dict, make sure you add appropriate | COMMENT |
| LOW | zerver/tornado/event_queue.py | 370 | # If you add a new key to this dict, make sure you add appropriate | COMMENT |
| LOW | zerver/tornado/django_api.py | 110 | # We make sure to pre-fill the narrow user cache, to save | COMMENT |
| MEDIUM | zerver/lib/export.py | 388 | # you can add your new table to `ALL_ZULIP_TABLES` and | COMMENT |
| LOW | zerver/lib/import_realm.py | 152 | # make sure to reload related tables AFTER we re-map the ids. | COMMENT |
| LOW | puppet/kandra/files/nagios4/nagios.cfg | 717 | # patches to Nagios. Nagios is critical to you - make sure you keep it in | COMMENT |
| LOW | puppet/kandra/files/nagios4/nagios.cfg | 994 | # rescheduled, make sure you have orphaned service checks enabled. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | corporate/tests/test_stripe_remote_realm.py | 525 | # TODO: Add test for invoice generation once that's implemented. | COMMENT |
| LOW | corporate/tests/test_stripe_remote_server.py | 610 | # TODO: Add test for invoice generation once that's implemented. | COMMENT |
| LOW | corporate/tests/test_remote_billing.py | 612 | # TODO: Add test for the case when redirected to error page (not yet implemented) | COMMENT |
| LOW | corporate/tests/test_remote_billing.py | 1442 | # TODO: Add test for the case when redirected to error page (not yet implemented) | COMMENT |
| LOW | corporate/tests/test_remote_billing.py | 1564 | # TODO: Add test for the case when redirected to error page (Not yet implemented) | COMMENT |
| LOW | corporate/models/stripe_state.py | 130 | # TODO: Add test for this case. Not sure how to trigger naturally. | COMMENT |
| LOW | corporate/lib/stripe.py | 3147 | # TODO: Add test coverage. Right now, this logic is used | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/src/info_overlay.ts | 175 | print("Zulip") | CODE |
| HIGH | web/src/info_overlay.ts | 183 | print("Zulip") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | analytics/lib/counts.py | 1012 | # mobile devices, as requested by the remote server. Therefore | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | zerver/tests/test_decorators.py | 1395 | def test_function(request: HttpRequest) -> HttpResponse: | CODE |
| LOW⚡ | zerver/tests/test_decorators.py | 1411 | def test_function(request: HttpRequest) -> HttpResponse: | CODE |
| LOW | zerver/tests/test_outgoing_webhook_system.py | 255 | def helper(side_effect: Any, error_text: str) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | zerver/lib/markdown/__init__.py | 2289 | # --------------------------------------------------- | COMMENT |