Repository Analysis

zulip/zulip

Zulip server and web application. Open-source team chat that helps teams stay productive and focused.

8.9 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of zulip/zulip, a Python project with 25,591 GitHub stars. SynthScan v2.0 examined 963,100 lines of code across 4110 source files, recording 8770 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 8.9 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

8.9
Adjusted Score
8.9
Raw Score
100%
Time Factor
2026-08-01
Last Push
25.6K
Stars
Python
Language
963.1K
Lines of Code
4.1K
Files
8.8K
Pattern Hits
2026-08-02
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 59HIGH 36MEDIUM 144LOW 8531

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 8770 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers6252 hits · 5248 pts
SeverityFileLineSnippetContext
LOWmanage.py112def execute_from_command_line(argv: list[str] | None = None) -> None:CODE
LOWcorporate/tests/test_remote_counts.py25 def test_compute_max_monthly_messages(self) -> None:CODE
LOWcorporate/tests/test_stripe.py6200 # def test_update_or_create_stripe_customer(self) -> None:COMMENT
LOWcorporate/tests/test_stripe.py105 def check_initial_ledger_entry(CODE
LOWcorporate/tests/test_stripe.py118 def raise_invalid_request_error() -> None:CODE
LOWcorporate/tests/test_stripe.py152 def test_stripe_billing_portal_urls(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py172 def test_upgrade_by_card_to_plus_plan(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py300 def test_upgrade_by_invoice_to_plus_plan(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py537 def test_card_attached_to_customer_but_payment_fails(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py655 def test_free_trial_upgrade_by_card(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py855 def test_free_trial_upgrade_by_invoice(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1015 def test_make_end_of_cycle_updates_errors_without_free_trial_invoice(self) -> None:CODE
LOWcorporate/tests/test_stripe.py1047 def test_free_trial_upgrade_by_invoice_with_additional_users_after_payment(CODE
LOWcorporate/tests/test_stripe.py1232 def test_free_trial_upgrade_by_invoice_customer_fails_to_pay(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1367 def test_upgrade_by_card_with_outdated_seat_count(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1419 def test_upgrade_by_card_with_outdated_lower_seat_count(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1477 def test_upgrade_by_card_with_outdated_seat_count_and_minimum_for_plan_tier(CODE
LOWcorporate/tests/test_stripe.py1529 def test_customer_minimum_licenses_for_plan(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1584 def test_upgrade_with_tampered_seat_count(self) -> None:CODE
LOWcorporate/tests/test_stripe.py1593 def test_upgrade_race_condition_during_card_upgrade(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1668 def test_upgrade_race_condition_during_invoice_upgrade(self) -> None:CODE
LOWcorporate/tests/test_stripe.py1689 def test_check_upgrade_parameters(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1760 def test_upgrade_license_counts(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py1859 def test_upgrade_with_uncaught_exception(self, *mock_args: Any) -> None:CODE
LOWcorporate/tests/test_stripe.py1881 def test_invoice_payment_succeeded_event_with_uncaught_exception(self, *mock_args: Any) -> None:CODE
LOWcorporate/tests/test_stripe.py1910 def test_request_sponsorship_form_with_invalid_url(self) -> None:CODE
LOWcorporate/tests/test_stripe.py1927 def test_request_sponsorship_form_with_blank_url(self) -> None:CODE
LOWcorporate/tests/test_stripe.py1945 def test_sponsorship_access_for_realms_on_paid_plan(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py2128 def test_redirect_for_billing_page(self) -> None:CODE
LOWcorporate/tests/test_stripe.py2173 def test_redirect_for_billing_page_downgrade_at_free_trial_end(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py2242 def test_upgrade_page_for_demo_organizations(self) -> None:CODE
LOWcorporate/tests/test_stripe.py2253 def test_sponsorship_page_for_demo_organizations(self) -> None:CODE
LOWcorporate/tests/test_stripe.py2264 def test_redirect_for_upgrade_page(self) -> None:CODE
LOWcorporate/tests/test_stripe.py2319 def test_get_latest_seat_count(self) -> None:CODE
LOWcorporate/tests/test_stripe.py2379 def test_payment_method_string(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py2393 def test_replace_payment_method(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py2647 def test_switch_from_monthly_plan_to_annual_plan_for_automatic_license_management(CODE
LOWcorporate/tests/test_stripe.py2819 def test_switch_from_monthly_plan_to_annual_plan_for_manual_license_management(CODE
LOWcorporate/tests/test_stripe.py2924 def test_switch_from_annual_plan_to_monthly_plan_for_automatic_license_management(CODE
LOWcorporate/tests/test_stripe.py3078 def test_reupgrade_after_plan_status_changed_to_downgrade_at_end_of_cycle(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3119 def test_downgrade_during_invoicing(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py3155 def test_switch_now_free_trial_from_monthly_to_annual(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py3204 def test_switch_now_free_trial_from_annual_to_monthly(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py3303 def test_downgrade_at_end_of_free_trial(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py3398 def test_cancel_downgrade_at_end_of_free_trial(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py3454 def test_reupgrade_by_billing_admin_after_downgrade(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3523 def test_update_licenses_of_manual_plan_from_billing_page(self, *mocks: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py3645 def test_update_licenses_of_manual_plan_from_billing_page_exempt_from_license_number_check(CODE
LOWcorporate/tests/test_stripe.py3677 def test_upgrade_exempt_from_license_number_check_realm_less_licenses_than_seat_count(CODE
LOWcorporate/tests/test_stripe.py3704 def test_update_licenses_of_automatic_plan_from_billing_page(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3724 def test_update_plan_with_invalid_status(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3737 def test_update_plan_without_any_params(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3748 def test_update_plan_that_which_is_due_for_expiry(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3778 def test_update_plan_that_which_is_due_for_replacement(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3857 def test_reupgrade_by_billing_admin_after_realm_deactivation(self) -> None:CODE
LOWcorporate/tests/test_stripe.py3900 def test_void_all_open_invoices(self, *mock: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py4006 def test_downgrade_small_realms_behind_on_payments_as_needed(self, *mock: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py4156 def test_upgrade_pay_by_invoice(self, *mock: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py4180 def test_change_plan_tier_from_standard_to_plus(self, *mock: Mock) -> None:CODE
LOWcorporate/tests/test_stripe.py4271 def test_customer_has_credit_card_as_default_payment_method(self, *mocks: Mock) -> None:CODE
6192 more matches not shown…
Fake / Example Data1009 hits · 1010 pts
SeverityFileLineSnippetContext
LOWcorporate/tests/test_stripe.py5039 remote_server=remote_server, email="admin@example.com"CODE
LOWcorporate/tests/test_stripe.py6724 remote_realm=remote_realm, email="admin@example.com", user_uuid=uuid.uuid4()CODE
LOWcorporate/tests/test_stripe.py6727 remote_server=remote_server, email="admin@example.com"CODE
LOW…vent_with_uncaught_exception--Customer.retrieve.2.json22 "line1": "123 Main St",CODE
LOW…vent_with_uncaught_exception--Customer.retrieve.2.json28 "name": "John Doe",CODE
LOW…e_by_card_with_outdated_seat_count--Charge.list.1.json15 "line1": "123 Main St",CODE
LOW…e_by_card_with_outdated_seat_count--Charge.list.1.json21 "name": "John Doe",CODE
LOW…rd_as_default_payment_method--Customer.retrieve.3.json22 "line1": "123 Main St",CODE
LOW…rd_as_default_payment_method--Customer.retrieve.3.json28 "name": "John Doe",CODE
LOW…tures/upgrade_license_counts--Customer.retrieve.1.json22 "line1": "123 Main St",CODE
LOW…tures/upgrade_license_counts--Customer.retrieve.1.json28 "name": "John Doe",CODE
LOW…voice_plans_as_needed_server--Customer.retrieve.4.json22 "line1": "123 Main St",CODE
LOW…voice_plans_as_needed_server--Customer.retrieve.4.json28 "name": "John Doe",CODE
LOW…res/check_upgrade_parameters--Customer.retrieve.7.json22 "line1": "123 Main St",CODE
LOW…res/check_upgrade_parameters--Customer.retrieve.7.json28 "name": "John Doe",CODE
LOW…d_price_annual_business_plan--Customer.retrieve.1.json22 "line1": "123 Main St",CODE
LOW…d_price_annual_business_plan--Customer.retrieve.1.json28 "name": "John Doe",CODE
LOW…ures/upgrade_license_counts--Customer.retrieve.16.json22 "line1": "123 Main St",CODE
LOW…ures/upgrade_license_counts--Customer.retrieve.16.json28 "name": "John Doe",CODE
LOW…automatic_license_management--Customer.retrieve.3.json22 "line1": "123 Main St",CODE
LOW…automatic_license_management--Customer.retrieve.3.json28 "name": "John Doe",CODE
LOW…ondition_during_card_upgrade--Customer.retrieve.5.json22 "line1": "123 Main St",CODE
LOW…ondition_during_card_upgrade--Customer.retrieve.5.json28 "name": "John Doe",CODE
LOW…es/replace_payment_method--PaymentMethod.create.2.json7 "line1": "123 Main St",CODE
LOW…es/replace_payment_method--PaymentMethod.create.2.json13 "name": "John Doe",CODE
LOW…ures/upgrade_license_counts--Customer.retrieve.41.json22 "line1": "123 Main St",CODE
LOW…ures/upgrade_license_counts--Customer.retrieve.41.json28 "name": "John Doe",CODE
LOW…es/check_upgrade_parameters--Customer.retrieve.25.json22 "line1": "123 Main St",CODE
LOW…es/check_upgrade_parameters--Customer.retrieve.25.json28 "name": "John Doe",CODE
LOW…n_bundle_additional_licenses--Customer.retrieve.4.json22 "line1": "123 Main St",CODE
LOW…n_bundle_additional_licenses--Customer.retrieve.4.json28 "name": "John Doe",CODE
LOW…rade_by_card_to_plus_plan--PaymentMethod.create.1.json7 "line1": "123 Main St",CODE
LOW…rade_by_card_to_plus_plan--PaymentMethod.create.1.json13 "name": "John Doe",CODE
LOW…ures/non_sponsorship_billing--Customer.retrieve.2.json22 "line1": "123 Main St",CODE
LOW…ures/non_sponsorship_billing--Customer.retrieve.2.json28 "name": "John Doe",CODE
LOW…_downgrade_at_free_trial_end--Customer.retrieve.6.json22 "line1": "123 Main St",CODE
LOW…_downgrade_at_free_trial_end--Customer.retrieve.6.json28 "name": "John Doe",CODE
LOW…minimum_licenses_for_plan--PaymentMethod.create.1.json7 "line1": "123 Main St",CODE
LOW…minimum_licenses_for_plan--PaymentMethod.create.1.json13 "name": "John Doe",CODE
LOW…automatic_license_management--Customer.retrieve.3.json22 "line1": "123 Main St",CODE
LOW…automatic_license_management--Customer.retrieve.3.json28 "name": "John Doe",CODE
LOW…ser_to_basic_plan_free_trial--Customer.retrieve.1.json22 "line1": "123 Main St",CODE
LOW…ser_to_basic_plan_free_trial--Customer.retrieve.1.json28 "name": "John Doe",CODE
LOW…e_fixtures/end_free_trial--PaymentMethod.create.1.json7 "line1": "123 Main St",CODE
LOW…e_fixtures/end_free_trial--PaymentMethod.create.1.json13 "name": "John Doe",CODE
LOW…s/free_trial_upgrade_by_card--Customer.retrieve.4.json22 "line1": "123 Main St",CODE
LOW…s/free_trial_upgrade_by_card--Customer.retrieve.4.json28 "name": "John Doe",CODE
LOW…er_complimentary_access_plan--Customer.retrieve.5.json22 "line1": "123 Main St",CODE
LOW…er_complimentary_access_plan--Customer.retrieve.5.json28 "name": "John Doe",CODE
LOW…_to_another_fixed_price_plan--Customer.retrieve.1.json22 "line1": "123 Main St",CODE
LOW…_to_another_fixed_price_plan--Customer.retrieve.1.json28 "name": "John Doe",CODE
LOW…al_urls_for_remote_server--PaymentMethod.create.1.json7 "line1": "123 Main St",CODE
LOW…al_urls_for_remote_server--PaymentMethod.create.1.json13 "name": "John Doe",CODE
LOW…de_complimentary_access_plan--Customer.retrieve.5.json22 "line1": "123 Main St",CODE
LOW…de_complimentary_access_plan--Customer.retrieve.5.json28 "name": "John Doe",CODE
LOW…m_user_to_monthly_basic_plan--Customer.retrieve.5.json22 "line1": "123 Main St",CODE
LOW…m_user_to_monthly_basic_plan--Customer.retrieve.5.json28 "name": "John Doe",CODE
LOW…nitial_remote_server_upgrade--Customer.retrieve.1.json22 "line1": "123 Main St",CODE
LOW…nitial_remote_server_upgrade--Customer.retrieve.1.json28 "name": "John Doe",CODE
LOW…omplimentary_access_customer--Customer.retrieve.6.json22 "line1": "123 Main St",CODE
949 more matches not shown…
Hallucination Indicators59 hits · 590 pts
SeverityFileLineSnippetContext
CRITICALcorporate/views/support.py13from django.core.exceptions import ValidationErrorCODE
CRITICALzilencer/models.py6from django.core.exceptions import ValidationErrorCODE
CRITICALzilencer/views.py16from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/forms.py13from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_realm_creation.py9from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_integrations_dev_panel.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_subs.py11from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_import_export.py14from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_realm_domains.py2from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_validators.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_typed_endpoint.py5from django.core.exceptions import ValidationError as DjangoValidationErrorCODE
CRITICALzerver/tests/test_widgets.py5from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_users.py11from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/tests/test_realm_linkifiers.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/management/commands/import.py9from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/management/commands/change_password.py6from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/management/commands/change_realm_subdomain.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/management/commands/create_realm.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/management/commands/realm_domain.py5from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/models/custom_profile_fields.py5from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/models/linkifiers.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/models/realm_playgrounds.py2from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/models/realms.py9from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/data_import/import_util.py19from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/data_import/slack_message_conversion.py8from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/actions/realm_emoji.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/actions/message_send.py12from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/actions/realm_playgrounds.py1from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/validator.py37from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/users.py11from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/narrow.py9from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/email_validation.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/domains.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/external_accounts.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/scim.py10from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/typed_endpoint_validators.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/drafts.py8from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/exceptions.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/recipient_users.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/subscription_info.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/lib/event_types.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/ifttt/view.py1from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/jira/view.py6from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/rhodecode/view.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/freshstatus/view.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/newrelic/view.py3from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/zabbix/view.py1from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/webhooks/uptimerobot/view.py1from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/registration.py15from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/user_settings.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/auth.py15from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/custom_profile_fields.py4from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/realm_linkifiers.py1from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/users.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/realm_domains.py1from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/message_send.py7from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/submessage.py2from django.core.exceptions import ValidationErrorCODE
CRITICALzerver/views/realm.py5from django.core.exceptions import ValidationErrorCODE
CRITICALzproject/backends.py33from django.core.exceptions import ValidationErrorCODE
Over-Commented Block413 hits · 360 pts
SeverityFileLineSnippetContext
LOWversion.py21# Versions of the desktop app below DESKTOP_MINIMUM_VERSION will beCOMMENT
LOWversion.py41# directions.COMMENT
LOWcorporate/tests/test_stripe.py6201 # server_uuid = str(uuid.uuid4())COMMENT
LOWcorporate/models/plans.py121 next_invoice_date = models.DateTimeField(db_index=True, null=True)COMMENT
LOWcorporate/lib/decorator.py81 request, realm_uuidCOMMENT
LOWcorporate/lib/stripe.py1161COMMENT
LOWcorporate/lib/stripe.py1261 ):COMMENT
LOWcorporate/lib/test_stripe_class.py341 # relevance, so collapse it to a placeholder.COMMENT
LOWcorporate/lib/test_stripe_class.py361 file_content = file_content.replace(COMMENT
LOW…ocumentation_crawler/documentation_crawler/settings.py21 "Mozilla/5.0 (X11; Linux x86_64) "COMMENT
LOW…ocumentation_crawler/documentation_crawler/settings.py41# COOKIES_ENABLED = FalseCOMMENT
LOW…ocumentation_crawler/documentation_crawler/settings.py61# 'documentation_crawler.middlewares.DocumentationCrawlerDownloaderMiddleware': 543,COMMENT
LOW…ocumentation_crawler/documentation_crawler/settings.py81# The maximum download delay to be set in case of high latenciesCOMMENT
LOW…tion_crawler/documentation_crawler/spiders/__init__.py1# This package will contain the spiders of your Scrapy projectCOMMENT
LOWtools/setup/emoji/custom_emoji_names.py261 # where People/144 would substitute. It'd be nice if there were anotherCOMMENT
LOWtools/setup/emoji/custom_emoji_names.py761 "1f938": {"canonical_name": "cartwheel", "aliases": ["acrobatics", "gymnastics", "tumbling"]},COMMENT
LOWtools/setup/emoji/custom_emoji_names.py1541 # 24-hour time (used in many countries), like what is 00:30 or 01:00COMMENT
LOWtools/setup/emoji/custom_emoji_names.py1561 # '1f55f': {'canonical_name': 'X', 'aliases': ['clock430']},COMMENT
LOWtools/droplets/create.py1# Creates a Zulip remote development environment droplet orCOMMENT
LOWtools/droplets/add_mentor.py1# Allows a mentor to ssh into a DigitalOcean droplet. This is designed to beCOMMENT
LOWtools/linter_lib/custom_check.py1from zulint.custom_rules import Rule, RuleListCOMMENT
LOWweb/styles/portico/billing.css181 #licensechange-loading,COMMENT
LOWweb/styles/portico/billing.css241 }COMMENT
LOWweb/styles/portico/billing.css301 legacy_landing_page.css. */COMMENT
LOWweb/styles/portico/billing.css581#remote-billing-confirm-email-intro .not-editable-realm-field,COMMENT
LOWweb/styles/portico/portico_signin.css1021 color: var(--color-link-portico-auth-hover);COMMENT
LOWweb/src/message_list_view.ts481// MessageList into the DOM, and maintaining it over time.COMMENT
LOWweb/src/message_list_view.ts501 //COMMENT
LOWweb/src/message_list_view.ts861 message_container.msg,COMMENT
LOWweb/src/message_list_view.ts1621 // would push the pointer off the screen, we do a partial autoscroll,COMMENT
LOWweb/src/message_list_view.ts1641 // still end up being visible, so we do some arithmetic.)COMMENT
LOWweb/src/message_list_view.ts1801 // hash table to make this O(1) runtime.COMMENT
LOWweb/src/lightbox.ts741 `.message_row a[href='${CSS.escape($(this).attr("data-url")!)}'] img`,COMMENT
LOWweb/src/drafts_overlay_ui.ts541 }COMMENT
LOWweb/src/compose_paste.ts261 // `h1`), we don't want to retain its styling, except when it is needed toCOMMENT
LOWweb/src/compose_paste.ts521 filter: "img",COMMENT
LOWweb/src/echo.ts301 return !content.startsWith("/me") && content.startsWith("/");COMMENT
LOWweb/src/server_events_dispatch.js1021 // requiring a reload. This is likely fairly difficult,COMMENT
LOWweb/src/compose_validate.ts241 if (!stream_id) {COMMENT
LOWweb/src/compose_validate.ts261 // change this policy if user feedback suggests it'd be anCOMMENT
LOWweb/src/bootstrap_typeahead.ts461 // * Since we use an offset which can partially hideCOMMENT
LOWweb/src/bootstrap_typeahead.ts921 // we trigger a click from JavaScript (or with a mobile touchscreen),COMMENT
LOWweb/src/transmit.ts101export function reply_message(message: Message, content: string): void {COMMENT
LOWweb/src/ui_util.ts201COMMENT
LOWweb/src/popover_menus.ts281 // We only care about the reference element if it is inside the message feed sinceCOMMENT
LOWweb/src/popover_menus.ts301 // const topmost_element = document.elementFromPoint(COMMENT
LOWweb/src/search.ts221 // we want to highlight the first typeahead row by defaultCOMMENT
LOWweb/src/tippyjs.ts41 return "";COMMENT
LOWweb/src/tippyjs.ts61export const EXTRA_LONG_HOVER_DELAY: [number, number] = [1500, 20];COMMENT
LOWweb/src/tippyjs.ts81 animation: false,COMMENT
LOWweb/src/message_view.ts581 }COMMENT
LOWweb/src/message_view.ts1161export function maybe_add_local_messages(opts: {COMMENT
LOWweb/src/message_view.ts1181 // things, both of which are somewhat optional:COMMENT
LOWweb/src/message_view.ts1221 }COMMENT
LOWweb/src/message_view.ts1261 return;COMMENT
LOWweb/src/message_view.ts1281 }COMMENT
LOWweb/src/message_view.ts1341 // go to the server to get it before we can render the narrow.COMMENT
LOWweb/src/message_lists.ts21 message_list.data.set_rendered_message_list_id(undefined);COMMENT
LOWweb/src/pm_list.ts281 const top_item_no_unreads = $top_dm_item.hasClass("zero-dm-unreads");COMMENT
LOWweb/src/narrow_state.ts261COMMENT
353 more matches not shown…
Self-Referential Comments111 hits · 302 pts
SeverityFileLineSnippetContext
MEDIUMcorporate/tests/test_stripe.py2402 # Create an open invoiceCOMMENT
MEDIUMcorporate/lib/stripe.py3979 # Create a new renewal invoice with updated licenses so that this becomes the lastCOMMENT
MEDIUMcorporate/lib/stripe.py4180 # Create a ledger entry for the complimentary access plan for tracking purposes.COMMENT
MEDIUMcorporate/lib/stripe.py4225 # Create a ledger entry for the community plan for tracking purposes.COMMENT
MEDIUMcorporate/lib/test_stripe_class.py642 # Create a PaymentMethod using the tokenCOMMENT
MEDIUMtools/setup/emoji/emoji_setup_utils.py1# This file contains various helper functions used by `build_emoji` tool.COMMENT
MEDIUMtools/lib/provision_inner.py310 # The following block is skipped when we just need the developmentCOMMENT
MEDIUMzilencer/management/commands/populate_billing_realms.py89 # Create a realm for each plan typeCOMMENT
MEDIUMzilencer/management/commands/populate_billing_realms.py287 # Create a card payment method and attach it to the customerCOMMENT
MEDIUMzilencer/management/commands/populate_billing_realms.py369 # Create a user with billing accessCOMMENT
MEDIUMzilencer/management/commands/populate_db.py1004 # Create a test realm emoji.COMMENT
MEDIUMzerver/tests/test_channel_fetch.py1451 # Create a stream for which Hamlet is the only subscriber.STRING
MEDIUMzerver/tests/test_channel_fetch.py1532 # Create a private stream for which Hamlet is the only subscriber.STRING
MEDIUMzerver/tests/test_email_mirror.py1076 # Create an invalid attachment:COMMENT
MEDIUMzerver/tests/test_push_notifications.py1934 # Create a message to self using PERSONAL recipient typeCOMMENT
MEDIUMzerver/tests/test_push_notifications.py636 # Create a duplicate, newer uuid-based registration for the same user to verifyCOMMENT
MEDIUMzerver/tests/test_push_notifications.py1051 # Create a simulated second server. We will take user's RemoteRealm registrationCOMMENT
MEDIUMzerver/tests/test_push_notifications.py1193 # Create the expected RemoteRealm registration and proceed with testing with aCOMMENT
MEDIUMzerver/tests/test_drafts.py322 # Create a draft.COMMENT
MEDIUMzerver/tests/test_drafts.py428 # Create a draft.COMMENT
MEDIUMzerver/tests/test_drafts.py380 # Create a draft.COMMENT
MEDIUMzerver/tests/test_drafts.py473 # Create a draft.COMMENT
MEDIUMzerver/tests/test_channel_creation.py332 # Creating an existing channel should return an error.COMMENT
MEDIUMzerver/tests/test_presence.py549 # Create a first presence for the user. It's the first one and has status idle,COMMENT
MEDIUMzerver/tests/test_subs.py4433 # Create a private stream with Hamlet subscribedCOMMENT
MEDIUMzerver/tests/test_subs.py4850 # Create a whole bunch of streamsCOMMENT
MEDIUMzerver/tests/test_subs.py5686 # Creating an invite-only stream is allowedCOMMENT
MEDIUMzerver/tests/test_import_export.py183 """This class is a container for shared helper functionsSTRING
MEDIUMzerver/tests/test_bots.py427 # Create a bot.COMMENT
MEDIUMzerver/tests/test_bots.py726 # Create a bot and then deactivate itCOMMENT
MEDIUMzerver/tests/test_scheduled_messages.py215 # Create a direct message group for the sender.COMMENT
MEDIUMzerver/tests/test_signup.py264 # Create a user who hasn't had historical messages addedCOMMENT
MEDIUMzerver/tests/test_message_fetch.py378 # Create a direct message group between usersCOMMENT
MEDIUMzerver/tests/test_message_fetch.py445 # Create a direct message group between usersCOMMENT
MEDIUMzerver/tests/test_message_fetch.py468 # Create a direct message group with the userCOMMENT
MEDIUMzerver/tests/test_message_fetch.py491 # Create a direct message group with the userCOMMENT
MEDIUMzerver/tests/test_message_fetch.py809 # Create a direct message group with the userCOMMENT
MEDIUMzerver/tests/test_message_fetch.py820 # Create a direct message group with the userCOMMENT
MEDIUMzerver/tests/test_slack_importer.py2790 # Create a user who become the realm owner, ideally this will be createdSTRING
MEDIUMzerver/tests/test_auth_backends.py9301 # Creating a mock Django form in order to keep the test simple.COMMENT
MEDIUMzerver/tests/test_auth_backends.py9336 # Creating a mock Django form in order to keep the test simple.COMMENT
MEDIUMzerver/tests/test_message_send.py3274 # Create a non-bot userCOMMENT
MEDIUMzerver/tests/test_message_send.py3278 # Create a new bot userCOMMENT
MEDIUMzerver/tests/test_reminders.py93 # Create a direct message group for hamlet's self messages.COMMENT
MEDIUMzerver/tests/test_reminders.py118 # Create a direct message group between hamlet and othello.COMMENT
MEDIUMzerver/tests/test_reminders.py461 # Create a test message to schedule a reminder for.COMMENT
MEDIUMzerver/tests/test_events.py4# This module is closely integrated with zerver/lib/event_schema.pyCOMMENT
MEDIUMzerver/tests/test_realm_linkifiers.py366 # Create a linkifier with alternative URL templates.COMMENT
MEDIUMzerver/tests/test_channel_access.py28 # Create a private stream for which Hamlet is the only subscriber.COMMENT
MEDIUMzerver/tests/test_channel_access.py92 # Create a private stream for which Hamlet is the only subscriber.COMMENT
MEDIUMzerver/tests/test_invite.py430 # Create a first userCOMMENT
MEDIUMzerver/tests/test_link_embed.py29 # The following code is taken fromCOMMENT
MEDIUMzerver/tests/test_markdown.py3428 # Create a linkifier.COMMENT
MEDIUMzerver/tests/test_markdown.py3439 # Create a topic link that potentially interferes with the pattern.COMMENT
MEDIUMzerver/tests/test_markdown.py2983 # Create a linkifier.STRING
MEDIUMzerver/tests/test_markdown.py2993 # Create a user that potentially interferes with the pattern.STRING
MEDIUMzerver/tests/test_markdown.py3079 # Create a linkifier.STRING
MEDIUMzerver/tests/test_markdown.py3089 # Create a user-group that potentially interferes with the pattern.STRING
MEDIUMzerver/tests/test_markdown.py626 # Create a userprofile and send message with it.STRING
MEDIUMzerver/tests/test_markdown.py3732 # Create a linkifier.STRING
51 more matches not shown…
Deep Nesting262 hits · 221 pts
SeverityFileLineSnippetContext
LOWcorporate/lib/support.py284CODE
LOWcorporate/lib/billing_management.py36CODE
LOWcorporate/lib/stripe.py5981CODE
LOWcorporate/lib/stripe.py1610CODE
LOWcorporate/lib/stripe.py1996CODE
LOWcorporate/lib/stripe.py2478CODE
LOWcorporate/lib/stripe.py2726CODE
LOWcorporate/lib/stripe.py2935CODE
LOWcorporate/lib/stripe.py3191CODE
LOWcorporate/lib/stripe.py3547CODE
LOWcorporate/lib/stripe.py3895CODE
LOWcorporate/lib/stripe.py4390CODE
LOWcorporate/lib/stripe.py4776CODE
LOWcorporate/lib/stripe.py4900CODE
LOWcorporate/lib/stripe.py5024CODE
LOWcorporate/lib/stripe.py5222CODE
LOWcorporate/lib/stripe.py5340CODE
LOWcorporate/lib/stripe.py5475CODE
LOWcorporate/lib/test_stripe_class.py219CODE
LOWcorporate/lib/stripe_event_handler.py127CODE
LOWcorporate/views/support.py413CODE
LOWcorporate/views/support.py768CODE
LOWcorporate/views/installation_activity.py96CODE
LOWcorporate/views/installation_activity.py140CODE
LOWcorporate/views/remote_activity.py25CODE
LOW…rawler/documentation_crawler/spiders/common/spiders.py143CODE
LOWtools/tests/test_zulint_custom_rules.py47CODE
LOWtools/lib/pretty_print.py41CODE
LOWtools/lib/template_parser.py56CODE
LOWtools/lib/template_parser.py307CODE
LOWtools/lib/template_parser.py352CODE
LOWtools/lib/test_server.py55CODE
LOWtools/lib/provision_inner.py262CODE
LOWzilencer/views.py1572CODE
LOWzilencer/management/commands/populate_billing_realms.py335CODE
LOWzilencer/management/commands/populate_billing_realms.py419CODE
LOWzilencer/management/commands/populate_billing_realms.py88CODE
LOWzilencer/management/commands/queue_rate.py40CODE
LOWzilencer/management/commands/populate_db.py1310CODE
LOWzilencer/management/commands/populate_db.py1482CODE
LOWzilencer/management/commands/populate_db.py367CODE
LOWzilencer/management/commands/render_messages.py37CODE
LOWscripts/setup/generate_secrets.py78CODE
LOWscripts/lib/sharding.py31CODE
LOWscripts/lib/supervisor.py44CODE
LOWscripts/lib/zulip_tools.py303CODE
LOWscripts/lib/zulip_tools.py727CODE
LOWzerver/decorator.py371CODE
LOWzerver/decorator.py379CODE
LOWzerver/decorator.py383CODE
LOWzerver/checks.py134CODE
LOWzerver/tests/test_compatibility.py38CODE
LOWzerver/tests/test_integrations.py123CODE
LOWzerver/tests/test_microsoft_teams_importer.py739CODE
LOWzerver/tests/test_openapi.py50CODE
LOWzerver/tests/test_openapi.py444CODE
LOWzerver/tests/test_openapi.py908CODE
LOWzerver/tests/test_digest.py793CODE
LOWzerver/tests/test_migration_status.py16CODE
LOWzerver/tests/test_auth_backends.py542CODE
202 more matches not shown…
Cross-Language Confusion27 hits · 151 pts
SeverityFileLineSnippetContext
HIGHzilencer/models.py428 # As noted above, remote_id may be null, so we onlyCOMMENT
HIGHzilencer/models.py430 # technically necessary, since null != null, but itCOMMENT
HIGHzilencer/models.py489 # be null; since null != null, this condition is notCOMMENT
HIGHzerver/tests/test_presence.py598 The data model now supports them being null, but the API should still returnSTRING
HIGHzerver/tests/test_validators.py327 x = to_wild_value("x", '{"a": 1, "b": ["c", false, null]}')CODE
HIGHzerver/tests/test_message_fetch.py3037 subject || rendered_content)STRING
HIGHzerver/tests/test_event_queue.py1366 queue.push(in_dict)CODE
HIGHzerver/tests/test_event_queue.py1402 queue.push(event)CODE
HIGHzerver/tests/test_event_queue.py1428 queue.push(CODE
HIGHzerver/tests/test_event_queue.py1459 queue.push(CODE
HIGHzerver/tests/test_event_queue.py1470 queue.push(CODE
HIGHzerver/tests/test_event_queue.py1500 queue.push(CODE
HIGHzerver/tests/test_event_queue.py1511 queue.push(CODE
HIGHzerver/tests/test_event_queue.py1559 queue.push(event)CODE
HIGHzerver/tests/test_event_queue.py1565 queue.push({"type": "unknown", "timestamp": "1"})CODE
HIGHzerver/management/commands/audit_fts_indexes.py17 to_tsvector('zulip.english_us_search', subject || rendered_content)STRING
HIGHzerver/management/commands/audit_fts_indexes.py18 WHERE to_tsvector('zulip.english_us_search', subject || rendered_content) != search_tsvectorSTRING
HIGHzerver/models/realms.py513 # When non-null, all but the latest this many messages in the organizationCOMMENT
HIGHzerver/tornado/event_queue.py225 self.event_queue.push(event)CODE
HIGHzerver/actions/realm_linkifiers.py152 # None means unchanged. Empty string means null, normalize_optional_textCOMMENT
HIGHzerver/lib/thumbnail.py300 # content-type -- null, or empty from a blank ?mimetype= -- whichCOMMENT
HIGHzerver/lib/retention.py526 # if stream.message_retention_days is null, use the realm's policyCOMMENT
HIGHzerver/lib/markdown/fenced_code.py276 processor.push(handler)CODE
HIGHzerver/lib/markdown/fenced_code.py459 self.push(handler)CODE
HIGHzerver/webhooks/raygun/view.py177 # Contains list of tags for the error. Can be empty (null)COMMENT
HIGHzerver/webhooks/sentry/tests.py149:orange_circle: **New exception:** [TypeError: can't access property "bar", x.foo is undefined](https://sentry.io/organiCODE
HIGHzproject/computed_settings.py364 # The default is null, which means no timeout; 2 is theCOMMENT
Unused Imports186 hits · 138 pts
SeverityFileLineSnippetContext
LOWcorporate/tests/test_support_views.py36CODE
LOWcorporate/tests/test_remote_billing.py42CODE
LOWcorporate/models/__init__.py1CODE
LOWcorporate/models/__init__.py2CODE
LOWcorporate/models/__init__.py3CODE
LOWcorporate/models/__init__.py4CODE
LOWcorporate/models/__init__.py5CODE
LOWcorporate/models/__init__.py6CODE
LOWcorporate/models/__init__.py7CODE
LOWcorporate/models/__init__.py8CODE
LOWcorporate/models/__init__.py9CODE
LOWcorporate/models/__init__.py10CODE
LOWcorporate/models/__init__.py11CODE
LOWcorporate/lib/test_stripe_class.py91CODE
LOWcorporate/views/billing_page.py26CODE
LOWcorporate/views/billing_page.py26CODE
LOWcorporate/views/event_status.py18CODE
LOWcorporate/views/event_status.py18CODE
LOWcorporate/views/session.py17CODE
LOWcorporate/views/session.py17CODE
LOWcorporate/views/upgrade.py23CODE
LOWcorporate/views/upgrade.py23CODE
LOWcorporate/views/sponsorship.py16CODE
LOWcorporate/views/sponsorship.py16CODE
LOWcorporate/views/portico.py31CODE
LOWcorporate/views/portico.py31CODE
LOWtools/linter_lib/custom_check.py1CODE
LOWconfirmation/models.py36CODE
LOWconfirmation/models.py36CODE
LOWzerver/decorator.py64CODE
LOWzerver/apps.py82CODE
LOWzerver/tests/test_channel_fetch.py35CODE
LOWzerver/tests/test_home.py40CODE
LOWzerver/tests/test_decorators.py64CODE
LOWzerver/tests/test_exception_filter.py1CODE
LOWzerver/tests/test_subs.py103CODE
LOWzerver/tests/test_docs.py32CODE
LOWzerver/tests/test_redis_utils.py3CODE
LOWzerver/tests/test_i18n.py19CODE
LOWzerver/tests/test_scheduled_messages.py27CODE
LOWzerver/tests/test_external.py25CODE
LOWzerver/tests/test_scim.py21CODE
LOWzerver/tests/test_signup.py97CODE
LOWzerver/tests/test_widgets.py13CODE
LOWzerver/tests/test_message_fetch.py80CODE
LOWzerver/tests/test_slack_importer.py85CODE
LOWzerver/tests/test_auth_backends.py124CODE
LOWzerver/tests/test_auth_backends.py174CODE
LOWzerver/tests/test_reminders.py24CODE
LOWzerver/tests/test_message_delete.py21CODE
LOWzerver/tests/test_invite.py82CODE
LOWzerver/tests/test_message_flags.py46CODE
LOWzerver/tests/test_settings.py19CODE
LOWzerver/tests/test_reactions.py25CODE
LOWzerver/models/__init__.py1CODE
LOWzerver/models/__init__.py2CODE
LOWzerver/models/__init__.py3CODE
LOWzerver/models/__init__.py4CODE
LOWzerver/models/__init__.py5CODE
LOWzerver/models/__init__.py6CODE
126 more matches not shown…
AI Slop Vocabulary58 hits · 116 pts
SeverityFileLineSnippetContext
MEDIUMtools/setup/emoji/custom_emoji_names.py677 # potentially fun emoji to have in conjunction with ice_cream. Put inCOMMENT
LOWtools/linter_lib/custom_check.py832 # version of the tab-based whitespace rule (we can't just useCOMMENT
MEDIUMweb/src/user_group_edit_members.ts363 // add member request as the endpoint is not so robust andCOMMENT
MEDIUMzilencer/models.py405 # are stats we track on the bouncer server itself, pertaining to the remote server.COMMENT
MEDIUMzilencer/models.py453 # stats pertaining to a realm on a remote server. For such objects, we will link toCOMMENT
MEDIUMzerver/decorator.py247 # more robust to just key off whether it was a browser viewCOMMENT
LOWzerver/middleware.py407 # just return the response without logging further.COMMENT
LOWzerver/tests/test_webhooks_common.py119 # we just return a fixed dictionary.COMMENT
MEDIUMzerver/tests/test_presence.py369 # here in the response - but it's still good to test the code is robustCOMMENT
LOWzerver/tests/test_subs.py4318 streams_to_sub = streams[:1] # just add one, to make the message easier to checkCODE
MEDIUMzerver/tests/test_import_export.py1413 # More general assertions on the entire sets of audit logs pertaining to our users.COMMENT
MEDIUMzerver/tests/test_message_fetch.py1369 # Definitely forbid seeing history on private channels.COMMENT
MEDIUMzerver/tests/test_message_fetch.py1489 # Definitely, a guest user can't access the unsubscribed private channelCOMMENT
LOWzerver/tests/test_auth_backends.py3140 # and we simply use one loaded from a fixture file.COMMENT
LOWzerver/tests/test_auth_backends.py4660 # This URL isn't used in the Apple auth flow, so we just set aCOMMENT
LOWzerver/tests/test_message_flags.py124 # we should get the old message we just set to unreadCOMMENT
LOWzerver/models/messages.py511 # Certain additional flags are just set once when the UserMessageCOMMENT
MEDIUMzerver/models/realms.py75 # We include a prefix to facilitate scanning for accidentalCOMMENT
LOWzerver/models/realms.py1378 # that the previous enum setting allowed, then just return theCOMMENT
LOWzerver/tornado/django_api.py180 # Tornado process, we simply call the process_notificationCOMMENT
LOWzerver/data_import/slack.py2003 # We're not using pagination, so we don't want to loop and should just return the result.COMMENT
LOWzerver/actions/user_settings.py681 # their presence state intact - so just return withoutCOMMENT
LOWzerver/actions/streams.py990 # we can just return early.COMMENT
LOWzerver/actions/reactions.py157 # deactivated custom emoji, so we just use the emoji name fromCOMMENT
MEDIUMzerver/actions/realm_settings.py842 # more robust for ensuring no messages belonging toCOMMENT
MEDIUMzerver/lib/event_schema.py255# robust.STRING
MEDIUMzerver/lib/event_schema.py258# simplify our types or make them more robustSTRING
LOWzerver/lib/generate_test_data.py144 # this is the hacky version where we just use inline imageCOMMENT
LOWzerver/lib/users.py993 # We just set date_joined field to UNIX epoch.COMMENT
LOWzerver/lib/users.py971 # just set bot_owner_id=None.COMMENT
LOWzerver/lib/users.py1142 # in row object, so we can just add it to result directly.COMMENT
LOWzerver/lib/narrow.py1642 # just return `None`.COMMENT
MEDIUMzerver/lib/events.py1815 # from scratch. Definitely don't need to re-query everything,COMMENT
LOWzerver/lib/rest.py75 # view function logic and just return the response.COMMENT
LOWzerver/lib/presence.py135 # just set it to a fixed value for API format compatibility.COMMENT
LOWzerver/lib/scim.py742 # we just add a hacky approach for detecting and handling this single, specificCOMMENT
LOWzerver/lib/retention.py198# We can simply use LIMIT without worrying about OFFSETs and orderingCOMMENT
LOWzerver/lib/soft_deactivation.py263 # a message, we just use the overall max message ID.COMMENT
LOWzerver/lib/i18n.py95 # browser/request associated with them, and should just useCOMMENT
LOWzerver/lib/test_helpers.py395 # get rid of this abstraction entirely and just use the HTTPCOMMENT
MEDIUMzerver/lib/test_helpers.py594 var_dir = "var" # TODO make sure path is robust hereCODE
MEDIUMzerver/lib/email_notifications.py312 # structure of the URL to leverage. We can't use `relative_to_full_url()`COMMENT
MEDIUMzerver/lib/mention.py104 # In particular, user_cache is not robust to message_senderCOMMENT
LOWzerver/lib/send_email.py155 # out; as such, they just use a STATIC_URL prefix.COMMENT
LOWzerver/lib/push_notifications.py1124 # just use a colon to indicate this is the sender.COMMENT
LOWzerver/lib/markdown/tabbed_sections.py102 # Otherwise, just use the end of the entire sectionSTRING
LOWzerver/lib/upload/s3.py190 # no access key makes `generate_presigned_url` just return theCOMMENT
MEDIUMzerver/webhooks/linear/tests.py31 expected_message = "[Issue](https://linear.app/webhooks/issue/WEB-44/this-is-regarding-the-outage-that-we-faced-CODE
MEDIUMzerver/webhooks/linear/tests.py36 expected_message = "Satyam Bansal [commented](https://linear.app/webhooks/issue/WEB-46#comment-c7cafc52) on issuCODE
MEDIUMzerver/webhooks/linear/tests.py46 expected_message = "Satyam Bansal [updated comment](https://linear.app/webhooks/issue/WEB-46#comment-c7cafc52) oCODE
MEDIUMzerver/webhooks/linear/tests.py71 expected_message = "[Issue](https://linear.app/webhooks/issue/WEB-44/this-is-regarding-the-outage-that-we-faced-CODE
MEDIUMzproject/prod_settings_template.py565 ## For details on this, see the aforementioned python3-saml documentationCOMMENT
MEDIUMzproject/backends.py4228 # This is more robust than relying on storing variables in request.session.COMMENT
LOWzproject/backends.py2855 # subdomain.zulip.example.com, we would just callCOMMENT
LOWzproject/backends.py3179 # we just use the primary email address, which is always verified.COMMENT
LOWzproject/backends.py3365 # What we'd like to do with the payload is just pass it intoCOMMENT
MEDIUMzproject/backends.py3665 """Get the URL to which we must redirect in order toSTRING
LOWanalytics/views/stats.py448 # should simply use the first and last data points for theCOMMENT
Modern Structural Boilerplate103 hits · 96 pts
SeverityFileLineSnippetContext
LOWcorporate/lib/stripe.py4670 def update_license_ledger_if_needed(self, event_time: datetime) -> None:CODE
LOW…ickapps/prepare_digital_ocean_one_click_app_release.py58def set_api_request_retry_limits(api_object: digitalocean.baseapi.BaseAPI) -> None:CODE
LOWtools/lib/test_server.py26def set_up_django(external_host: str) -> None:CODE
LOWzilencer/auth.py39logger = logging.getLogger(__name__)CODE
LOWzilencer/views.py117logger = logging.getLogger(__name__)CODE
LOWzilencer/management/commands/add_mock_conversation.py38 def set_avatar(self, user: UserProfile, filename: str) -> None:STRING
LOWzilencer/lib/push_notifications.py24logger = logging.getLogger(__name__)CODE
LOWzerver/tests/test_retention.py117 def _set_realm_message_retention_value(self, realm: Realm, retention_period: int) -> None:CODE
LOWzerver/tests/test_realm.py2746 def update_with_realm_default_api(self, name: str, val: Any) -> None:CODE
LOWzerver/tests/test_import_export.py3576 def set_favorite_city(user: UserProfile, city: str) -> None:STRING
LOWzerver/tests/test_user_topics.py298 def set_topic_visibility_for_user(user: UserProfile, visibility_policy: int) -> None:CODE
LOWzerver/tests/test_user_topics.py517 def set_topic_visibility_for_user(user: UserProfile, visibility_policy: int) -> None:CODE
LOWzerver/tests/test_parallel.py254 def set_file_logger(output_dir: str) -> None:CODE
LOWzerver/tests/test_message_fetch.py3027 def _update_tsvector_index(self) -> None:CODE
LOWzerver/tests/test_message_fetch.py5819 def update_message(self, msg: Message, content: str) -> None:CODE
LOWzerver/tests/test_markdown.py3191 def update_message_and_check_flag(content: str, mentioned: bool) -> None:STRING
LOWzerver/tests/test_messages.py39 def set_presence(user: UserProfile, client_name: str, ago: int) -> None:CODE
LOWzerver/management/commands/deliver_scheduled_emails.py23logger = logging.getLogger(__name__)CODE
LOWzerver/management/commands/enqueue_digest_emails.py14logger = logging.getLogger(__name__)CODE
LOWzerver/management/commands/update_subscriber_counts.py18logger = logging.getLogger(__name__)CODE
LOW…ment/commands/update_channel_recently_active_status.py12logger = logging.getLogger(__name__)CODE
LOWzerver/models/users.py965 def set_password(self, password: str | None) -> None:CODE
LOWzerver/models/scheduled_jobs.py225 def set_topic_name(self, topic_name: str) -> None:CODE
LOWzerver/models/messages.py282 def set_topic_name(self, topic_name: str) -> None:CODE
LOWzerver/openapi/merge_api_changelogs.py99def update_feature_level_in_api_docs(new_feature_level: int) -> None:CODE
LOWzerver/openapi/python_examples.py118def set_moderation_request_channel(client: Client, channel: str | None = "core team") -> None:CODE
LOWzerver/openapi/python_examples.py288def update_presence(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py324def update_status(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py552def update_user(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py696def update_realm_filter(client: Client, filter_id: int) -> None:CODE
LOWzerver/openapi/python_examples.py857def update_bot_storage(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py956def update_stream(client: Client, stream_id: int) -> None:CODE
LOWzerver/openapi/python_examples.py1081def update_user_topic(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1176def update_subscription_settings(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1204def update_subscription_property(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1349def update_navigation_views(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1546def update_message(client: Client, message_id: int, prev_content: str) -> None:CODE
LOWzerver/openapi/python_examples.py1627def update_message_flags(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1741def update_settings(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1906def set_typing_status(client: Client) -> None:CODE
LOWzerver/openapi/python_examples.py1964def set_message_edit_typing_status(client: Client, message_id: int) -> None:CODE
LOWzerver/openapi/python_examples.py2072def update_user_group(client: Client, user_group_id: int) -> None:CODE
LOWzerver/openapi/python_examples.py2086def update_user_group_members(client: Client, user_group_id: int) -> None:CODE
LOWzerver/tornado/descriptors.py15def set_descriptor_by_handler_id(handler_id: int, client_descriptor: "ClientDescriptor") -> None:CODE
LOWzerver/tornado/descriptors.py30def set_current_port(port: int) -> None:CODE
LOWzerver/actions/user_settings.py410def set_avatar_to_default(user_profile: UserProfile, *, acting_user: UserProfile | None) -> None:CODE
LOWzerver/actions/message_edit.py428 def update_flag(um: UserMessage, should_set: bool, flag: int) -> None:CODE
LOWzerver/actions/presence.py21logger = logging.getLogger(__name__)CODE
LOWzerver/actions/user_activity.py32def update_user_activity_interval(user_profile: UserProfile, log_time: datetime) -> None:CODE
LOWzerver/lib/queue.py365 def set_qos(frame: Any) -> None:CODE
LOWzerver/lib/queue.py433def set_queue_client(queue_client: SimpleQueueClient | TornadoQueueClient) -> None:CODE
LOWzerver/lib/digest.py45logger = logging.getLogger(__name__)CODE
LOWzerver/lib/fix_unreads.py25def update_unread_flags(cursor: CursorWrapper, user_message_ids: list[int]) -> None:CODE
LOWzerver/lib/zstd_level9.py4__all__ = ["compress", "decompress"]CODE
LOWzerver/lib/rate_limiter.py30logger = logging.getLogger(__name__)CODE
LOWzerver/lib/message.py1392def update_first_visible_message_id(realm: Realm) -> None:CODE
LOWzerver/lib/avatar.py25logger = logging.getLogger(__name__)CODE
LOWzerver/lib/notes.py49 def set_notes(cls, key: _KeyT, notes: _DataT) -> None:CODE
LOWzerver/lib/bot_storage.py36def set_bot_storage(bot_profile: UserProfile, entries: list[tuple[str, str]]) -> None:CODE
LOWzerver/lib/import_realm.py329def update_id_map(table: TableName, old_id: int, new_id: int) -> None:CODE
43 more matches not shown…
Excessive Try-Catch Wrapping73 hits · 74 pts
SeverityFileLineSnippetContext
LOWcorporate/lib/stripe.py1363 except Exception as e:CODE
LOWcorporate/lib/stripe.py1667 except Exception as e: # nocoverageCODE
LOWcorporate/lib/stripe.py1694 except Exception as e:CODE
LOWcorporate/lib/stripe.py1729 except Exception as e: # nocoverageCODE
LOWcorporate/lib/stripe.py5998 except Exception as e:CODE
LOWcorporate/lib/stripe_event_handler.py67 except Exception:CODE
LOWcorporate/views/webhook.py47 except Exception:CODE
LOWcorporate/views/remote_billing_page.py221 except Exception: # nocoverageCODE
LOWcorporate/views/upgrade.py72 except Exception:CODE
LOWcorporate/views/upgrade.py122 except Exception: # nocoverageCODE
LOWcorporate/views/upgrade.py172 except Exception: # nocoverageCODE
LOWcorporate/views/installation_activity.py329 except Exception:CODE
LOWtools/lib/provision_inner.py258 except Exception:CODE
LOWzilencer/views.py469 except Exception: # nocoverageCODE
MEDIUM…t/commands/manage_push_registration_encryption_keys.py39 print("Error: Please provide either --add or --remove-key <public-key>.")STRING
MEDIUM…t/commands/manage_push_registration_encryption_keys.py66 print("Error: No key pair found for the given public key.")STRING
LOWzerver/decorator.py400 except Exception as err:CODE
LOWzerver/decorator.py829 except Exception as err:CODE
LOWzerver/forms.py408 except Exception:CODE
MEDIUMzerver/tests/test_docs.py42 print("Error processing URL:", url)CODE
LOWzerver/tests/test_openapi.py481 except Exception: # nocoverageSTRING
LOWzerver/tests/test_queue.py74 except Exception:CODE
LOWzerver/management/commands/register_server.py230 except Exception:CODE
LOWzerver/management/commands/sync_ldap_user_data.py59 except Exception:CODE
LOWzerver/management/commands/process_queue.py28 except Exception:CODE
LOWzerver/tornado/handlers.py80 except Exception as e:CODE
LOWzerver/tornado/event_queue.py1861 except Exception:CODE
LOWzerver/tornado/event_queue.py237 except Exception:CODE
LOWzerver/tornado/event_queue.py716 except Exception:CODE
LOWzerver/data_import/microsoft_teams.py596 except Exception: # nocoverageSTRING
LOWzerver/data_import/slack.py1217 except Exception:CODE
LOWzerver/actions/scheduled_messages.py459 except Exception as e:CODE
LOWzerver/actions/data_import.py192 except Exception as e:CODE
LOWzerver/lib/event_schema.py152 except Exception: # nocoverageCODE
LOWzerver/lib/widget.py142 except Exception:CODE
LOWzerver/lib/widget.py147 except Exception:CODE
LOWzerver/lib/export.py829 except Exception:CODE
LOWzerver/lib/export.py3158 except Exception:STRING
LOWzerver/lib/logging_util.py64 except Exception:CODE
LOWzerver/lib/import_realm.py647 except Exception:STRING
LOWzerver/lib/attachments.py49 except Exception:CODE
LOWzerver/lib/zulip_update_announcements.py812 except Exception: # nocoverageSTRING
LOWzerver/lib/mobile_auth_otp.py50 except Exception:CODE
LOWzerver/lib/soft_deactivation.py391 except Exception: # nocoverageCODE
LOWzerver/lib/email_notifications.py235 except Exception as e:CODE
LOWzerver/lib/parallel.py38 except Exception:CODE
LOWzerver/lib/send_email.py477 except Exception:CODE
LOWzerver/lib/markdown/__init__.py2683 except Exception:CODE
LOWzerver/lib/markdown/fenced_code.py515 except Exception:CODE
LOWzerver/worker/missedmessage_emails.py143 except Exception:CODE
LOWzerver/worker/missedmessage_emails.py266 except Exception:CODE
LOWzerver/worker/deferred_work.py133 except Exception:CODE
LOWzerver/worker/base.py85 except Exception:CODE
LOWzerver/worker/base.py213 except Exception as e:CODE
MEDIUMzerver/worker/base.py80def check_and_send_restart_signal() -> None:CODE
LOWzerver/webhooks/librato/view.py179 except Exception as e:CODE
LOWzerver/webhooks/sentry/tests.py139 except Exception as e:CODE
LOWzerver/webhooks/sentry/tests.py75 except Exception as e:CODE
LOWzerver/views/home.py149 except Exception:CODE
LOWzerver/views/health.py21 except Exception: # nocoverageCODE
13 more matches not shown…
Structural Annotation Overuse47 hits · 73 pts
SeverityFileLineSnippetContext
LOWtools/droplets/README.md13## Step 1: Join Zulip DigitalOcean teamCOMMENT
LOWtools/droplets/README.md19## Step 2: Create your DigitalOcean API tokenCOMMENT
LOWtools/droplets/README.md30## Step 3: Configure create.pyCOMMENT
LOWweb/src/sidebar_ui.ts554 // NOTE: This function is designed to be used for keyboard navigation purposes.COMMENT
LOWweb/src/dropdown_widget.ts794 // NOTE: This function needs to be explicitly called when you want to update theCOMMENT
LOWweb/src/message_list_data.ts280 // NOTE: This function returns the first unread that was fetched and is notCOMMENT
LOW.claude/skills/debug-node-coverage/SKILL.md24## Step 1: Read the uncovered linesCOMMENT
LOW.claude/skills/debug-node-coverage/SKILL.md37## Step 2: Find the test fileCOMMENT
LOW.claude/skills/debug-node-coverage/SKILL.md50## Step 3: Add tests for testable codeCOMMENT
LOW.claude/skills/debug-node-coverage/SKILL.md57## Step 4: Handle unreachable assertionsCOMMENT
LOW.claude/skills/debug-node-coverage/SKILL.md62## Step 5: VerifyCOMMENT
LOWdocs/development/setup-recommended.md90### Step 0: Set up Git & GitHubCOMMENT
LOWdocs/development/setup-recommended.md101### Step 1: Install prerequisitesCOMMENT
LOWdocs/development/setup-recommended.md273### Step 2: Get Zulip codeCOMMENT
LOWdocs/development/setup-recommended.md307### Step 3: Start the development environmentCOMMENT
LOWdocs/development/setup-recommended.md438### Step 4: DevelopingCOMMENT
LOWdocs/development/request-remote.md14## Step 1: Join GitHub and create SSH keysCOMMENT
LOWdocs/development/request-remote.md23## Step 2: Create a fork of zulip/zulipCOMMENT
LOWdocs/development/request-remote.md38## Step 3: Make request via chat.zulip.orgCOMMENT
LOWdocs/subsystems/onboarding-steps.md14### Step 1: Add the Onboarding Step NameCOMMENT
LOWdocs/subsystems/onboarding-steps.md28### Step 2: Display the Onboarding StepCOMMENT
LOWdocs/subsystems/onboarding-steps.md35### Step 3: Mark the Onboarding Step as ReadCOMMENT
LOWdocs/production/install.md36## Step 0: Set up a base serverCOMMENT
LOWdocs/production/install.md42## Step 1: Download the latest releaseCOMMENT
LOWdocs/production/install.md57## Step 2: Install ZulipCOMMENT
LOWdocs/production/install.md165## Step 3: Create a Zulip organization, and log inCOMMENT
LOWdocs/production/postgresql.md41#### Step 1: Choose database name and usernameCOMMENT
LOWdocs/production/postgresql.md47#### Step 1: Set up ZulipCOMMENT
LOWdocs/production/postgresql.md62#### Step 3: Create the PostgreSQL databaseCOMMENT
LOWdocs/production/postgresql.md78#### Step 4: Configure Zulip to use the PostgreSQL databaseCOMMENT
LOWdocs/production/postgresql.md113#### Step 1: Set up ZulipCOMMENT
LOWdocs/production/postgresql.md124#### Step 2: Create the PostgreSQL database serverCOMMENT
LOWdocs/production/postgresql.md143#### Step 3: Configure Zulip to use the PostgreSQL databaseCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md15## Step 0: Create fixturesCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md57## Step 1: Initialize the python packageCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md65## Step 2: Write the main webhook codeCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md175## Step 3: Create an API endpoint for the webhookCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md215## Step 4: Manually test the webhookCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md295## Step 5: Create automated testsCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md387## Step 6: Document the integrationCOMMENT
LOWdocs/webhooks/incoming-webhooks-walkthrough.md421## Step 7: Prepare a pull requestCOMMENT
LOWdocs/git/pull-requests.md28### Step 0: Make sure you're on a feature branch (not `main`)COMMENT
LOWdocs/git/pull-requests.md40### Step 1: Update your branch with git rebaseCOMMENT
LOWdocs/git/pull-requests.md66### Step 2: Push your updated branch to your remote forkCOMMENT
LOWdocs/git/pull-requests.md103### Step 3: Open the pull requestCOMMENT
LOWdocs/git/cloning.md95## Step 2: Set up the Zulip development environmentCOMMENT
LOWdocs/git/cloning.md102## Step 3: Configure continuous integration for your forkCOMMENT
Redundant / Tautological Comments48 hits · 64 pts
SeverityFileLineSnippetContext
LOWcorporate/tests/test_remote_billing.py812 # Check if zephyr and lear were deactivatedCOMMENT
LOWcorporate/lib/stripe.py807 # Check if customer has any $0 invoices.COMMENT
LOWcorporate/lib/stripe.py1984 # Check if the customer is scheduled for an upgrade.COMMENT
LOWcorporate/lib/stripe.py2508 # Check if user has already paid for the plan by invoice.COMMENT
LOWcorporate/lib/stripe.py2960 # Check if user was successful in adding a card and we are rendering the page again.COMMENT
LOWzilencer/views.py259 # Check if the domain has an MX recordCOMMENT
LOWzilencer/views.py269 # Check if the A/AAAA exist, for better error reportingCOMMENT
LOWscripts/lib/puppet_cache.py40 # Check if a cached version already existsCOMMENT
LOWzerver/context_processors.py102 # Check if view function is in corporate app.COMMENT
LOWzerver/tests/test_user_status.py143 # Set Hamlet to in a meeting.COMMENT
LOWzerver/tests/test_realm_playgrounds.py21 # Check if the actual object existsCOMMENT
LOWzerver/tests/test_audit_log.py1994 # Set workplace_users_group to an anonymous group containing the groupCOMMENT
LOWzerver/tests/test_audit_log.py2163 # Set workplace_users_group to an anonymous group containing the groupCOMMENT
LOWzerver/tests/test_user_topics.py356 # Verify if events are sent properlyCOMMENT
LOWzerver/tests/test_user_topics.py424 # Verify if events are sent properlyCOMMENT
LOWzerver/tests/test_user_topics.py575 # Verify if events are sent properlyCOMMENT
LOWzerver/tests/test_user_topics.py643 # Verify if events are sent properlyCOMMENT
LOWzerver/tests/test_tutorial.py191 # Check if Welcome bot still replies for bot commandsCOMMENT
LOWzerver/tests/test_user_groups.py2647 # Check if members of a NamedUserGroup are allowed to create user groups.COMMENT
LOWzerver/tests/test_user_groups.py2658 # Check if members of an anonymous group are allowed to create user groups.COMMENT
LOWzerver/tests/test_user_groups.py2996 # Check if members of a NamedUserGroup are allowed to add/remove members.COMMENT
LOWzerver/tests/test_user_groups.py3012 # Check if members of an anonymous group are allowed to add/remove members.COMMENT
LOWzerver/tests/test_user_groups.py3311 # Set permissions to manage the group and adding others to groupCOMMENT
LOWzerver/tests/test_scheduled_messages.py650 # Check if another user can access these scheduled messages.COMMENT
LOWzerver/tests/test_queue_worker.py297 # Set ourself to stop at the top of the next loop, butCOMMENT
LOWzerver/tests/test_signup.py1896 # Check if user is subscribed to the streams of defaultCOMMENT
LOWzerver/tests/test_signup.py2035 # Check if user is subscribed to the streams of defaultCOMMENT
LOWzerver/tests/test_message_fetch.py4518 # Check if the anchor value in response is correct for differentCOMMENT
LOWzerver/tests/test_slack_importer.py2812 # Check if we cannot find the realm, preregistration_realm is revoked.STRING
LOWzerver/tests/test_slack_importer.py2838 # Check if we render a form for user to select a user if thereSTRING
LOWzerver/tests/test_auth_backends.py370 # Verify if a realm has password auth disabled, correct password is rejectedCOMMENT
LOWzerver/tests/test_example.py528 # Set limit to edit message content.COMMENT
LOWzerver/openapi/test_curl_examples.py94 # Set AUTHENTICATION_LINE to default_authentication_line.COMMENT
LOWzerver/data_import/slack_message_conversion.py162 # Check if there's a pipe with text after itSTRING
LOWzerver/actions/message_send.py1306 # Check if this is a 1:1 DM between a user and the Welcome Bot,COMMENT
LOWzerver/actions/presence.py260 # Check if the row was actually created or if weSTRING
LOWzerver/lib/narrow.py1634 # Check if channel exists.COMMENT
LOWzerver/lib/import_realm.py2270 # Set it to the latest level to avoid receiving older update messages.STRING
LOWzerver/lib/test_runner.py314 # Check if we are in serial mode to avoid unnecessarily making a directory.COMMENT
LOWzerver/lib/markdown/__init__.py1210 # Set text to initial input, so simple clients translatingCOMMENT
LOWzerver/webhooks/teamcity/view.py113 # Check if this is a personal build, and if so try to direct message the user who triggered it.STRING
LOWzerver/views/auth.py554 # Check if the mobile URL is overridden in settings, if so, replace itCOMMENT
LOWzerver/views/upload.py296 # Check if this is something that we thumbnail at allCOMMENT
LOWzerver/views/tusd.py335 # Check if unauthenticated requests are for realm creationCOMMENT
LOWzproject/default_settings.py100# Set this to True to enforce that any configured IdP needs to specifyCOMMENT
LOWzproject/default_settings.py778# Set it to None to disable it.COMMENT
LOWzproject/backends.py645 # Check if the email ends with LDAP_APPEND_DOMAINCOMMENT
LOWzproject/dev_settings.py24# Check if test_settings.py set EXTERNAL_HOST.COMMENT
AI Structural Patterns80 hits · 62 pts
SeverityFileLineSnippetContext
LOWcorporate/views/support.py159CODE
LOWcorporate/views/support.py206CODE
LOWcorporate/views/support.py259CODE
LOWcorporate/views/support.py413CODE
LOWcorporate/views/support.py768CODE
LOWcorporate/views/upgrade.py223CODE
LOWcorporate/views/upgrade.py258CODE
LOWcorporate/views/upgrade.py293CODE
LOWconfirmation/models.py200CODE
LOWzerver/forms.py517CODE
LOWzerver/tests/test_scheduled_messages.py59CODE
LOWzerver/tests/test_auth_backends.py815CODE
LOWzerver/tests/test_auth_backends.py872CODE
LOWzerver/tests/test_auth_backends.py882CODE
LOWzerver/tests/test_auth_backends.py3075CODE
LOWzerver/tests/test_auth_backends.py4680CODE
LOWzerver/tests/test_auth_backends.py4795CODE
LOWzerver/tests/test_auth_backends.py4839CODE
LOWzerver/tests/test_reminders.py44CODE
LOWzerver/tests/test_events.py345CODE
LOWzerver/tests/test_message_delete.py398CODE
LOWzerver/tests/test_message_delete.py403CODE
LOWzerver/tests/test_message_delete.py408CODE
LOWzerver/tests/test_message_delete.py413CODE
LOWzerver/tests/test_message_delete.py576CODE
LOWzerver/tests/test_message_delete.py580CODE
LOWzerver/tests/test_message_delete.py584CODE
LOWzerver/tests/test_message_delete.py588CODE
LOWzerver/tests/test_invite.py213CODE
LOWzerver/tests/test_email_change.py55CODE
LOWzerver/tests/test_settings.py529CODE
LOWzerver/tests/test_reactions.py701CODE
LOWzerver/tests/test_reactions.py709CODE
LOWzerver/tests/test_reactions.py717CODE
LOWzerver/tornado/django_api.py85CODE
LOWzerver/tornado/views.py140CODE
LOWzerver/actions/create_user.py504CODE
LOWzerver/actions/message_send.py647CODE
LOWzerver/actions/message_send.py1463CODE
LOWzerver/actions/message_send.py1737CODE
LOWzerver/actions/message_send.py1943CODE
LOWzerver/actions/create_realm.py190CODE
LOWzerver/lib/create_user.py150CODE
LOWzerver/lib/streams.py369CODE
LOWzerver/lib/streams.py2048CODE
LOWzerver/lib/events.py167CODE
LOWzerver/lib/events.py2103CODE
LOWzerver/lib/export.py570CODE
LOWzerver/lib/test_helpers.py378CODE
LOWzerver/lib/send_email.py88CODE
LOWzerver/lib/send_email.py272CODE
LOWzerver/lib/send_email.py360CODE
LOWzerver/lib/integrations.py151CODE
LOWzerver/lib/integrations.py284CODE
LOWzerver/lib/integrations.py326CODE
LOWzerver/lib/test_classes.py572CODE
LOWzerver/lib/test_classes.py888CODE
LOWzerver/lib/test_classes.py1347CODE
LOWzerver/lib/markdown/__init__.py2547CODE
LOWzerver/lib/markdown/__init__.py2718CODE
20 more matches not shown…
Cross-File Repetition6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHzerver/tests/test_submessage.py0tests that `send_event_rollback_unsafe` is hooked to `transaction.on_commit`. this is important, because we don't want tSTRING
HIGHzerver/tests/test_message_delete.py0tests that `send_event_rollback_unsafe` is hooked to `transaction.on_commit`. this is important, because we don't want tSTRING
HIGHzerver/tests/test_reactions.py0tests that `send_event_rollback_unsafe` is hooked to `transaction.on_commit`. this is important, because we don't want tSTRING
HIGHzerver/webhooks/freshstatus/view.py0hi there! your bot {bot_name} just received a uptimerobot payload that is missing some data that zulip requires. this usSTRING
HIGHzerver/webhooks/zabbix/view.py0hi there! your bot {bot_name} just received a uptimerobot payload that is missing some data that zulip requires. this usSTRING
HIGHzerver/webhooks/uptimerobot/view.py0hi there! your bot {bot_name} just received a uptimerobot payload that is missing some data that zulip requires. this usSTRING
Verbosity Indicators13 hits · 16 pts
SeverityFileLineSnippetContext
LOWweb/src/message_list_tooltips.ts155 // Thus, we need to check if the date string contains a digit or not using regex,COMMENT
LOWweb/src/popover_menus.ts394 // For other browsers, we need to check if the focused element is an text field andCOMMENT
LOWweb/src/message_view.ts517 // we need to check if the narrow is allowed for spectator here too.COMMENT
LOWweb/src/message_parser.ts6// We need to check if the message content contains the specified HTMLCOMMENT
LOWweb/src/inbox_ui.ts345 // Before we set the filter, we need to check if the inbox view is already visible.COMMENT
LOWweb/src/message_util.ts140 // If not, we need to check if the current filter matches the DM view weCOMMENT
LOWweb/src/message_notifications.ts322 // And then we need to check if the message is a direct message,COMMENT
LOWweb/src/message_notifications.ts394 // And then we need to check if the message is a direct message,COMMENT
LOWweb/src/message_list.ts189 // TODO: For supporting other narrows, we need to check if we have fetched the firstCOMMENT
LOWzerver/lib/message.py1647 # Now we need to check if the user initiated the topic.COMMENT
LOWzerver/lib/send_email.py842 The purpose of this function is to log (potential) config errors,STRING
LOWzproject/backends.py1573 The purpose of this function is to take a UserProfile meant for syncing with LDAP,STRING
LOWzproject/backends.py3487 to note this detail. The purpose of this function is merely as a helper to figure out whichSTRING
Slop Phrases8 hits · 13 pts
SeverityFileLineSnippetContext
LOWtools/screenshots/for-events.json15 "content": "Welcome everyone! Here are the slides for the keynote talk: [keynote-slides.ppt](#). Don't fCODE
LOWzerver/tornado/event_queue.py146 # If you add a new key to this dict, make sure you add appropriateCOMMENT
LOWzerver/tornado/event_queue.py370 # If you add a new key to this dict, make sure you add appropriateCOMMENT
LOWzerver/tornado/django_api.py109 # We make sure to pre-fill the narrow user cache, to saveCOMMENT
MEDIUMzerver/lib/export.py388 # you can add your new table to `ALL_ZULIP_TABLES` andCOMMENT
LOWzerver/lib/import_realm.py152# make sure to reload related tables AFTER we re-map the ids.COMMENT
LOWpuppet/kandra/files/nagios4/nagios.cfg717# patches to Nagios. Nagios is critical to you - make sure you keep it inCOMMENT
LOWpuppet/kandra/files/nagios4/nagios.cfg994# rescheduled, make sure you have orphaned service checks enabled.COMMENT
TODO Padding8 hits · 12 pts
SeverityFileLineSnippetContext
LOWcorporate/tests/test_stripe.py7210 # TODO: Add test for invoice generation once that's implemented.COMMENT
LOWcorporate/tests/test_stripe.py9393 # TODO: Add test for invoice generation once that's implemented.COMMENT
LOWcorporate/tests/test_remote_billing.py612 # TODO: Add test for the case when redirected to error page (not yet implemented)COMMENT
LOWcorporate/tests/test_remote_billing.py1443 # TODO: Add test for the case when redirected to error page (not yet implemented)COMMENT
LOWcorporate/tests/test_remote_billing.py1565 # TODO: Add test for the case when redirected to error page (Not yet implemented)COMMENT
LOWcorporate/models/stripe_state.py130 # TODO: Add test for this case. Not sure how to trigger naturally.COMMENT
LOWcorporate/models/stripe_state.py165 # TODO: Add test for this case. Not sure how to trigger naturally.COMMENT
LOWcorporate/lib/stripe.py3149 # TODO: Add test coverage. Right now, this logic is usedCOMMENT
Cross-Language Confusion (JS/TS)2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHweb/src/info_overlay.ts175 print("Zulip")CODE
HIGHweb/src/info_overlay.ts183 print("Zulip")CODE
Synthetic Comment Markers1 hit · 8 pts
SeverityFileLineSnippetContext
HIGHanalytics/lib/counts.py1012 # mobile devices, as requested by the remote server. ThereforeCOMMENT
Overly Generic Function Names3 hits · 4 pts
SeverityFileLineSnippetContext
LOWzerver/tests/test_decorators.py1395 def test_function(request: HttpRequest) -> HttpResponse:CODE
LOWzerver/tests/test_decorators.py1411 def test_function(request: HttpRequest) -> HttpResponse:CODE
LOWzerver/tests/test_outgoing_webhook_system.py255 def helper(side_effect: Any, error_text: str) -> None:CODE
Decorative Section Separators1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMzerver/lib/markdown/__init__.py2282 # ---------------------------------------------------COMMENT