AI Slop Code RIsk Monitor

modoboa/modoboa

Mail hosting made simple

11.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for modoboa/modoboa, a Python project with 3,543 GitHub stars. SynthScan examined 112,461 lines of code across 843 source files, recording 984 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 11.9 (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.

11.9
Adjusted Signal
11.9
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
3.5K
Stars
Python
Language
112.5K
Lines of Code
843
Files
984
Pattern Hits
2026-10-12
Scan Date
0.07
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 32.4/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 831 finding(s).

Hallucinated Dependency & Supply Chain Risk 9.5/100 · LOW

Are imports declared and package/API names verified? 90 finding(s).

Agent Over-Engineering Ratio 37.1/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 829 finding(s).

PR Review Velocity Impact 44.8/100 · MEDIUM

Which changes need focused human review? 984 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 14HIGH 44MEDIUM 4LOW 922

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 984 distinct pattern matches across 14 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.

Hyper-Verbose Identifiers763 hits · 803 pts
SeverityFileLineSnippetContext
LOWmodoboa/ldapsync/lib.py192def import_accounts_from_ldap(config):CODE
LOWmodoboa/ldapsync/lib.py257def _check_dovecot_conf_value(name, value):CODE
LOWmodoboa/ldapsync/lib.py265def update_dovecot_config_file(config):CODE
LOWmodoboa/ldapsync/tests.py37 def test_username_with_dn_metacharacters_is_escaped(self):CODE
LOWmodoboa/ldapsync/tests.py97 def test_invalid_conf_file_path(self):CODE
LOWmodoboa/rspamd/tests.py85 def test_job_domain_without_key(self):CODE
LOWmodoboa/rspamd/api/v2/serializers.py45 def validate_selector_map_path(self, value):CODE
LOWmodoboa/calendars/rights.py30def get_effective_access_rules():CODE
LOW⚡modoboa/calendars/tests.py1505 def test_events_do_not_expose_share_url(self):CODE
LOW⚡modoboa/calendars/tests.py1514 def test_get_events_of_calendar_no_longer_shared(self):CODE
LOW⚡modoboa/calendars/tests.py1520 def test_get_events_of_calendar_of_inactive_owner(self):CODE
LOW⚡modoboa/calendars/tests.py1527 def test_write_events_of_read_only_shared_calendar(self):CODE
LOW⚡modoboa/calendars/tests.py1760 def test_shared_calendar_of_inactive_owner(self):CODE
LOW⚡modoboa/calendars/tests.py1766 def test_shared_calendar_of_disabled_domain(self):CODE
LOW⚡modoboa/calendars/tests.py1771 def test_calendars_of_other_users_are_not_returned(self):CODE
LOWmodoboa/calendars/tests.py89 def test_rights_file_generation(self):CODE
LOWmodoboa/calendars/tests.py129 def test_rights_file_rule_deletion(self):CODE
LOWmodoboa/calendars/tests.py149 def test_rights_file_calendar_creation(self):CODE
LOWmodoboa/calendars/tests.py163 def test_rights_file_shares_match_api(self):CODE
LOWmodoboa/calendars/tests.py204 def test_rights_file_ignores_inactive_grantee(self):CODE
LOWmodoboa/calendars/tests.py225 def test_rights_file_sections_are_unique(self):CODE
LOWmodoboa/calendars/tests.py262 def test_rights_file_not_rewritten_when_unchanged(self):CODE
LOWmodoboa/calendars/tests.py274 def test_rights_file_generation_with_admin(self):CODE
LOWmodoboa/calendars/tests.py350 def test_shared_with_me_write_access(self):CODE
LOWmodoboa/calendars/tests.py359 def test_shared_with_me_ignores_rules_without_read_access(self):CODE
LOWmodoboa/calendars/tests.py372 def test_shared_with_me_ignores_inactive_owner(self):CODE
LOWmodoboa/calendars/tests.py382 def test_calendar_shared_with_me_display_settings(self):CODE
LOWmodoboa/calendars/tests.py408 def test_calendar_shared_with_me_invalid_color(self):CODE
LOWmodoboa/calendars/tests.py420 def test_calendar_shared_with_me_write_access_is_read_only(self):CODE
LOWmodoboa/calendars/tests.py432 def test_calendar_not_shared_with_me_display_settings(self):CODE
LOWmodoboa/calendars/tests.py459 def test_create_calendar_rejects_rights_injection(self, client_mock):CODE
LOWmodoboa/calendars/tests.py481 def test_create_calendar_rejects_radicale_forbidden_characters(self, client_mock):CODE
LOWmodoboa/calendars/tests.py491 def test_create_calendar_with_existing_name(self, client_mock):CODE
LOWmodoboa/calendars/tests.py511 def test_rename_calendar_with_existing_name(self, cal_mock, client_mock):CODE
LOWmodoboa/calendars/tests.py528 def test_create_calendar_invalid_color(self, client_mock):CODE
LOWmodoboa/calendars/tests.py539 def test_new_calendar_does_not_reuse_path_of_renamed_one(self):CODE
LOWmodoboa/calendars/tests.py552 def test_calendar_name_validator(self):CODE
LOWmodoboa/calendars/tests.py651 def test_create_calendar_with_existing_name(self, client_mock):CODE
LOWmodoboa/calendars/tests.py670 def test_create_calendar_rejects_unowned_domain(self, client_mock):CODE
LOWmodoboa/calendars/tests.py763 def test_get_accessrules_scoped_to_calendar(self):CODE
LOWmodoboa/calendars/tests.py778 def test_get_accessrules_calendar_not_owned(self):CODE
LOWmodoboa/calendars/tests.py798 def test_create_accessrule_simple_user(self):CODE
LOWmodoboa/calendars/tests.py811 def test_create_accessrule_read_write(self):CODE
LOWmodoboa/calendars/tests.py824 def test_create_accessrule_without_access(self):CODE
LOWmodoboa/calendars/tests.py838 def test_create_accessrule_write_only(self):CODE
LOWmodoboa/calendars/tests.py852 def test_create_accessrule_own_mailbox(self):CODE
LOWmodoboa/calendars/tests.py861 def test_create_accessrule_inactive_account(self):CODE
LOWmodoboa/calendars/tests.py872 def test_create_accessrule_admin_other_domain(self):CODE
LOWmodoboa/calendars/tests.py885 def test_create_accessrule_duplicate(self):CODE
LOWmodoboa/calendars/tests.py894 def test_create_accessrule_denied_mailbox(self):CODE
LOWmodoboa/calendars/tests.py905 def test_create_accessrule_mailbox_not_found(self):CODE
LOWmodoboa/calendars/tests.py919 def test_create_accessrule_denied_calendar(self):CODE
LOWmodoboa/calendars/tests.py933 def test_create_accessrule_calendar_in_body_ignored(self):CODE
LOWmodoboa/calendars/tests.py949 def test_update_accessrule_denied_calendar(self):CODE
LOWmodoboa/calendars/tests.py969 def test_rights_generation_excludes_forged_rule(self):CODE
LOWmodoboa/calendars/tests.py1016 def test_update_accessrule_remove_read(self):CODE
LOWmodoboa/calendars/tests.py1033 def test_partial_update_accessrule(self):CODE
LOWmodoboa/calendars/tests.py1046 def test_update_existing_write_only_rule(self):CODE
LOWmodoboa/calendars/tests.py1070 def test_update_accessrule_permission(self):CODE
LOWmodoboa/calendars/tests.py1086 def test_update_accessrule_display_settings_ignored(self):CODE
703 more matches not shown…
Empty Error Handlers39 hits · 195 pts
SeverityFileLineSnippetContext
HIGHmodoboa/ldapsync/tests.py132except ldap.NO_SUCH_OBJECT:CODE
HIGHmodoboa/rspamd/jobs.py54except FileNotFoundError:CODE
HIGHmodoboa/policyd/core.py247except asyncio.IncompleteReadError:CODE
HIGHmodoboa/policyd/tests.py98except FileNotFoundError:CODE
HIGHmodoboa/imap_migration/auth_backends.py116except core_models.User.DoesNotExist:CODE
HIGHmodoboa/transport/backends.py25except forms.ValidationError:CODE
HIGHmodoboa/core/models.py258except ObjectAccess.DoesNotExist:CODE
HIGHmodoboa/core/models.py391except User.DoesNotExist:CODE
HIGHmodoboa/core/extensions.py219except ImportError:CODE
HIGHmodoboa/core/tests/test_ldap.py45except exceptions.InternalError:CODE
HIGH…oboa/core/management/commands/generate_postfix_maps.py161except OSError:CODE
HIGHmodoboa/amavis/lib.py332except Users.DoesNotExist:CODE
HIGHmodoboa/amavis/utils.py68except (TypeError, UnicodeDecodeError):CODE
HIGHmodoboa/contacts/lib/carddav.py140except ImportError:CODE
HIGH…doboa/admin/management/commands/subcommands/_repair.py183except ImportError:CODE
HIGHmodoboa/admin/api/v2/serializers.py169except core_models.User.DoesNotExist:CODE
HIGHmodoboa/webmail/models.py153except FileNotFoundError:CODE
HIGHmodoboa/webmail/models.py98except dovecot.DoveadmError:CODE
HIGHmodoboa/webmail/viewsets.py728except (ImapError, WebmailInternalError):CODE
HIGHmodoboa/webmail/viewsets.py740except ImapError:CODE
HIGHmodoboa/webmail/viewsets.py630except forms.ValidationError:CODE
HIGH…bmail/management/commands/purge_webmail_legacy_data.py60except OSError:CODE
HIGHmodoboa/webmail/lib/fetch_parser.py276except UnicodeDecodeError:CODE
HIGHmodoboa/webmail/lib/attachments.py225except OSError:CODE
HIGHmodoboa/webmail/lib/imapheader.py58except UnicodeDecodeError:CODE
HIGHmodoboa/webmail/lib/sendmail.py145except WebmailInternalError:CODE
HIGHmodoboa/webmail/lib/imaputils.py1543except (ImapError, OSError):CODE
HIGHmodoboa/webmail/lib/imaputils.py575except (ImapError, OSError):CODE
HIGHmodoboa/webmail/lib/imaputils.py580except (IMAP4Error, OSError):CODE
HIGHmodoboa/webmail/lib/imapemail.py82except Exception:CODE
HIGHmodoboa/webmail/lib/imapemail.py158except AttributeError:CODE
HIGHmodoboa/webmail/lib/imapemail.py484except AttributeError:CODE
HIGHmodoboa/dnstools/models.py74except AttributeError:CODE
HIGHmodoboa/lib/authbackends.py146except ImportError:CODE
HIGHmodoboa/lib/authbackends.py56except User.DoesNotExist:CODE
HIGHmodoboa/lib/authbackends.py118except User.DoesNotExist:CODE
HIGHmodoboa/lib/permissions.py263except ObjectAccess.DoesNotExist:CODE
HIGHmodoboa/maillog/management/commands/logparser.py629except OSError:CODE
HIGHtest_project/test_project/settings.py131except ImportError:CODE
Hallucination Indicators14 hits · 145 pts
SeverityFileLineSnippetContext
CRITICALmodoboa/calendars/models.py8from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/calendars/tests.py16from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/core/password_validation.py3from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/core/api/v1/serializers.py6from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/admin/lib.py14from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/admin/models/alias.py7from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/admin/models/domain.py7from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/admin/api/v1/serializers.py6from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/admin/api/v2/serializers.py7from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/webmail/lib/utils.py20from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/lib/validators.py5from django.core.exceptions import ValidationErrorCODE
CRITICAL⚡modoboa/lib/tests/test_validators.py3from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/relaydomains/lib.py3from django.core.exceptions import ValidationErrorCODE
CRITICALmodoboa/relaydomains/api/v1/serializers.py5from django.core.exceptions import ValidationErrorCODE
Unused Imports69 hits · 69 pts
SeverityFileLineSnippetContext
LOWmodoboa/ldapsync/apps.py8CODE
LOWmodoboa/rspamd/apps.py29CODE
LOWmodoboa/calendars/apps.py13CODE
LOWmodoboa/policyd/apps.py13CODE
LOWmodoboa/imap_migration/apps.py34CODE
LOWmodoboa/transport/apps.py8CODE
LOWmodoboa/core/apps.py37CODE
LOWmodoboa/core/password_hashers/__init__.py3CODE
LOWmodoboa/core/password_hashers/__init__.py3CODE
LOWmodoboa/core/password_hashers/__init__.py3CODE
LOWmodoboa/core/password_hashers/__init__.py3CODE
LOWmodoboa/core/password_hashers/__init__.py3CODE
LOWmodoboa/core/password_hashers/__init__.py3CODE
LOWmodoboa/core/password_hashers/__init__.py11CODE
LOWmodoboa/core/password_hashers/__init__.py11CODE
LOWmodoboa/core/password_hashers/base.py10CODE
LOWmodoboa/core/password_hashers/base.py11CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/core/views/__init__.py3CODE
LOWmodoboa/amavis/apps.py14CODE
LOWmodoboa/amavis/apps.py15CODE
LOWmodoboa/amavis/checks/__init__.py2CODE
LOWmodoboa/contacts/apps.py10CODE
LOWmodoboa/admin/apps.py17CODE
LOWmodoboa/admin/apps.py17CODE
LOWmodoboa/admin/models/__init__.py3CODE
LOWmodoboa/admin/models/__init__.py4CODE
LOWmodoboa/admin/models/__init__.py4CODE
LOWmodoboa/admin/models/__init__.py4CODE
LOWmodoboa/admin/models/__init__.py5CODE
LOWmodoboa/admin/models/__init__.py6CODE
LOWmodoboa/admin/models/__init__.py7CODE
LOWmodoboa/admin/models/__init__.py8CODE
LOWmodoboa/admin/models/__init__.py8CODE
LOWmodoboa/admin/models/__init__.py8CODE
LOWmodoboa/admin/models/__init__.py8CODE
LOWmodoboa/admin/models/__init__.py9CODE
LOWmodoboa/admin/models/__init__.py9CODE
LOWmodoboa/limits/apps.py31CODE
LOWmodoboa/webmail/apps.py18CODE
LOWmodoboa/webmail/lib/__init__.py1CODE
LOWmodoboa/webmail/lib/__init__.py1CODE
LOWmodoboa/webmail/lib/__init__.py1CODE
LOWmodoboa/webmail/lib/__init__.py6CODE
LOWmodoboa/webmail/lib/__init__.py6CODE
LOWmodoboa/webmail/lib/__init__.py6CODE
LOWmodoboa/webmail/lib/__init__.py6CODE
LOWmodoboa/webmail/lib/__init__.py7CODE
LOWmodoboa/webmail/lib/__init__.py7CODE
LOWmodoboa/webmail/lib/__init__.py7CODE
LOWmodoboa/webmail/lib/__init__.py7CODE
LOWmodoboa/webmail/lib/__init__.py7CODE
LOWmodoboa/webmail/lib/__init__.py14CODE
LOWmodoboa/webmail/lib/__init__.py15CODE
9 more matches not shown…
Deep Nesting44 hits · 44 pts
SeverityFileLineSnippetContext
LOWmodoboa/ldapsync/lib.py192CODE
LOWmodoboa/rspamd/jobs.py36CODE
LOWmodoboa/rspamd/api/v2/serializers.py10CODE
LOWmodoboa/imap_migration/api/v2/serializers.py109CODE
LOWmodoboa/transport/backends.py31CODE
LOWmodoboa/core/password_hashers/utils.py17CODE
LOWmodoboa/core/api/v2/serializers.py205CODE
LOWmodoboa/amavis/lib.py182CODE
LOWmodoboa/amavis/sql_connector.py82CODE
LOWmodoboa/amavis/viewsets.py157CODE
LOWmodoboa/amavis/serializers.py36CODE
LOWmodoboa/contacts/lib/carddav.py346CODE
LOWmodoboa/contacts/lib/carddav.py382CODE
LOWmodoboa/admin/dns_checker.py123CODE
LOWmodoboa/admin/lib.py219CODE
LOWmodoboa/admin/lib.py288CODE
LOWmodoboa/admin/lib.py375CODE
LOWmodoboa/admin/handlers.py312CODE
LOW…doboa/admin/management/commands/subcommands/_import.py45CODE
LOW…doboa/admin/management/commands/subcommands/_import.py84CODE
LOW…doboa/admin/management/commands/subcommands/_repair.py42CODE
LOWmodoboa/admin/models/alias.py184CODE
LOWmodoboa/sievefilters/rfc6266.py57CODE
LOWmodoboa/sievefilters/api/v2/serializers.py69CODE
LOWmodoboa/sievefilters/api/v2/serializers.py127CODE
LOWmodoboa/webmail/mocks.py18CODE
LOWmodoboa/webmail/mocks.py63CODE
LOWmodoboa/webmail/tests/test_fetch_parser.py11CODE
LOWmodoboa/webmail/lib/fetch_parser.py179CODE
LOWmodoboa/webmail/lib/fetch_parser.py284CODE
LOWmodoboa/webmail/lib/rfc6266.py57CODE
LOWmodoboa/webmail/lib/utils.py135CODE
LOWmodoboa/webmail/lib/imaputils.py113CODE
LOWmodoboa/webmail/lib/imaputils.py314CODE
LOWmodoboa/webmail/lib/imapemail.py199CODE
LOWmodoboa/parameters/tools.py104CODE
LOWmodoboa/lib/email_utils.py132CODE
LOWmodoboa/lib/imap_utf7.py96CODE
LOWmodoboa/pdfcredentials/api/v2/serializers.py72CODE
LOWmodoboa/pdfcredentials/api/v2/tests.py49CODE
LOWmodoboa/pdfcredentials/api/v2/tests.py68CODE
LOWmodoboa/dmarc/lib.py169CODE
LOWmodoboa/dmarc/lib.py295CODE
LOWmodoboa/maillog/management/commands/logparser.py365CODE
Cross-File Repetition4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHmodoboa/rspamd/apps.py0load core settings. this function must be manually called (see :file:`urls.py`) in order to load base settings.STRING
HIGHmodoboa/imap_migration/apps.py0load core settings. this function must be manually called (see :file:`urls.py`) in order to load base settings.STRING
HIGHmodoboa/core/apps.py0load core settings. this function must be manually called (see :file:`urls.py`) in order to load base settings.STRING
HIGHmodoboa/pdfcredentials/apps.py0load core settings. this function must be manually called (see :file:`urls.py`) in order to load base settings.STRING
Redundant / Tautological Comments12 hits · 18 pts
SeverityFileLineSnippetContext
LOWmodoboa/imap_migration/auth_backends.py77 # Check if old addresses must be convertedCOMMENT
LOWmodoboa/core/tests/test_core.py223 # Check if same hostname is not added more than onceCOMMENT
LOWmodoboa/admin/tests/test_alias_targets.py48 # Check if local domain is still allowedCOMMENT
LOWmodoboa/admin/models/domain.py288 # Check if domain's limit for domain admins is not reached yetCOMMENT
LOWmodoboa/admin/api/v2/tests.py490 # Check if self alias has been createdCOMMENT
LOWmodoboa/admin/api/v2/tests.py617 # Check if self alias has been deletedCOMMENT
LOWmodoboa/admin/api/v2/tests.py700 # Check if self aliases have been deletedCOMMENT
LOWmodoboa/admin/api/v2/tests.py834 # Check if self alias has been updatedCOMMENT
LOWmodoboa/limits/tests/test_domain_limits.py112 # Check if defined limit can't be exceededCOMMENT
LOWmodoboa/webmail/lib/fetch_parser.py200 # Check if we are parsing a list of mime part or aCOMMENT
LOWmodoboa/webmail/lib/fetch_parser.py221 # Check if previous element was a mime part. If so, we areCOMMENT
LOWmodoboa/pdfcredentials/api/v2/tests.py75 # Check if link is present in listing pageCOMMENT
Modern Structural Boilerplate11 hits · 11 pts
SeverityFileLineSnippetContext
LOWmodoboa/rspamd/jobs.py116def update_rspamd_maps(domain_ids: list[int]) -> None:CODE
LOWmodoboa/core/models.py134 def set_password(self, raw_value: str, curvalue: str | None = None) -> None:CODE
LOWmodoboa/core/views/__init__.py14__all__ = [CODE
LOWmodoboa/admin/models/__init__.py11__all__ = [CODE
LOWmodoboa/webmail/lib/__init__.py17__all__ = [CODE
LOWmodoboa/webmail/lib/imapheader.py14__all__ = [CODE
LOWmodoboa/webmail/lib/utils.py405def _set_flowed(msg) -> None:CODE
LOWmodoboa/webmail/lib/sendmail.py42def set_send_error(sched_msg: models.ScheduledMessage, error: str) -> None:CODE
LOWmodoboa/webmail/lib/imaputils.py1030 def _set_unseen_counters(self, mailboxes: list, compute: bool = True) -> None:CODE
LOWmodoboa/parameters/tools.py237 def set_values(self, values: dict, app: str | None = None) -> None:CODE
LOWmodoboa/lib/imap_utf7.py169__all__ = [CODE
Excessive Try-Catch Wrapping9 hits · 11 pts
SeverityFileLineSnippetContext
LOWmodoboa/policyd/core.py275 except Exception:CODE
LOWmodoboa/policyd/core.py330 except Exception:CODE
LOWmodoboa/core/context_processors.py17 except Exception:CODE
LOWmodoboa/core/management/commands/load_initial_data.py98 except Exception as e:CODE
LOWmodoboa/webmail/jobs.py27 except Exception:CODE
LOWmodoboa/webmail/lib/imapemail.py82 except Exception:CODE
LOW…tials/management/commands/reencrypt_pdf_credentials.py40 except Exception as exc:CODE
MEDIUMmodoboa/dmarc/lib.py228 print("Error: the attachment does not match the mimetype")CODE
MEDIUMmodoboa/maillog/lib.py20 print("Error: failed to convert date and time", file=sys.stderr)CODE
Over-Commented Block7 hits · 7 pts
SeverityFileLineSnippetContext
LOWmodoboa/core/management/commands/load_initial_data.py201# policy = create_user_and_policy("@{0}".format(dom.name))COMMENT
LOWmodoboa/amavis/models.py1# This is an auto-generated Django model module.COMMENT
LOWmodoboa/contacts/lib/carddav.py1# vim: set ts=4 sw=4 expandtab sts=4:COMMENT
LOWmodoboa/admin/tests/test_export.py101COMMENT
LOWmodoboa/admin/tests/test_export.py121COMMENT
LOWmodoboa/admin/tests/test_export.py141COMMENT
LOWfrontend/vite.config.js1// PluginsCOMMENT
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWmodoboa/autoconfig/tests.py37 resp = self.client.post(url, {"EmailAddress": "test@test.com"})CODE
LOWmodoboa/sievefilters/mocks.py31if anyof (header :contains "From" "user@example.com") {CODE
LOWmodoboa/sievefilters/api/v2/tests.py261 email_filter = "user@example.com"CODE
LOWmodoboa/webmail/tests/test_modifiers.py13 b'From: "John Doe" <john@example.test>\r\n'CODE
LOWmodoboa/webmail/tests/test_recipients.py20 ("John Doe <john@example.test>", '"John Doe" <john@example.test>'),CODE
LOWfrontend/src/components/webmail/ComposeEmailForm.vue558 // Without the quotes of the name: "John Doe" <john@example.com>COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMmodoboa/amavis/tests/test_handlers.py33 # Create a domain aliasCOMMENT
MEDIUMmodoboa/admin/api/v2/tests.py905 # Create an alias for another userCOMMENT
Magic Placeholder Names1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdoc-ng/rest_api.md42 Authorization: Token <YOUR_TOKEN>CODE
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWmodoboa/calendars/mocks.py111CODE
LOWmodoboa/webmail/tests/test_fetch_parser.py29CODE
LOWmodoboa/parameters/tools.py71CODE