UNPKG

mcp-server-semgrep

Version:

MCP Server for Semgrep Integration - static code analysis with AI

42 lines (41 loc) 1.81 kB
rules: - id: no-null-string-field patterns: - pattern-inside: | class $M(...): ... - pattern-not: $F = django.db.models.CharField(..., null=True, unique=True, blank=True, ...) - pattern-not: $F = django.db.models.TextField(..., null=True, unique=True, blank=True, ...) - pattern-either: - pattern: $F = django.db.models.CharField(..., null=True, ...) - pattern: $F = django.db.models.TextField(..., null=True, ...) message: >- Avoid using null on string-based fields such as CharField and TextField. If a string-based field has null=True, that means it has two possible values for "no data": NULL, and the empty string. In most cases, it's redundant to have two possible values for "no data;" the Django convention is to use the empty string, not NULL. languages: [python] severity: WARNING metadata: category: correctness technology: - django - id: string-field-must-set-null-true patterns: - pattern-inside: | class $M(...): ... - pattern-not: $F = django.db.models.CharField(..., unique=True, blank=True, null=True, ...) - pattern-not: $F = django.db.models.TextField(..., unique=True, blank=True, null=True, ...) - pattern-either: - pattern: $F = django.db.models.CharField(..., unique=True, blank=True, ...) - pattern: $F = django.db.models.TextField(..., unique=True, blank=True, ...) message: If a text field declares unique=True and blank=True, null=True must also be set to avoid unique constraint violations when saving multiple objects with blank values. languages: [python] severity: ERROR metadata: category: correctness technology: - django