🔥🔥🔥 Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.
This report presents the forensic synthetic code analysis of makeplane/plane, a TypeScript project with 54,428 GitHub stars. SynthScan v2.0 examined 547,152 lines of code across 4704 source files, recording 3490 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 8.3 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).
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.
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.
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.
The scanner identified 3490 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/ui/src/popovers/popover-menu.stories.tsx | 27 | { id: 1, name: "John Doe" }, | CODE |
| LOW | packages/ui/src/popovers/popover-menu.stories.tsx | 28 | { id: 2, name: "Jane Doe" }, | CODE |
| LOW | packages/ui/src/avatar/avatar.stories.tsx | 19 | args: { name: "John Doe" }, | CODE |
| LOW | packages/ui/src/avatar/avatar.stories.tsx | 23 | args: { name: "John Doe" }, | CODE |
| LOW | packages/ui/src/sortable/sortable.stories.tsx | 18 | { id: "1", name: "John Doe" }, | CODE |
| LOW | packages/utils/src/validation.ts | 128 | * validateCompanyName("Acme Corp") // returns true | COMMENT |
| LOW | packages/utils/src/validation.ts | 162 | * validateWorkspaceName("Acme Corp") // returns true | COMMENT |
| LOW | packages/utils/src/string.ts | 86 | * getFirstCharacters("John Doe") // returns "JD" | COMMENT |
| LOW | packages/utils/src/common.ts | 27 | "placeholder", | CODE |
| LOW | packages/utils/src/editor/common.ts | 87 | PLACEHOLDER = "placeholder", | CODE |
| LOW | packages/propel/src/utils/classname.tsx | 27 | "placeholder", | CODE |
| LOW | packages/propel/src/scrollarea/scrollarea.stories.tsx | 39 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | packages/propel/src/scrollarea/scrollarea.stories.tsx | 39 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et | CODE |
| LOW | packages/propel/src/dialog/dialog.stories.tsx | 362 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut | CODE |
| LOW | packages/propel/src/dialog/dialog.stories.tsx | 362 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut | CODE |
| LOW | packages/propel/src/avatar/avatar.stories.tsx | 18 | name: "John Doe", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace.json | 8 | "placeholder": "Tanıdık ve tanınabilir bir şey her zaman iyidir." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace.json | 12 | "placeholder": "URL yazın veya yapıştırın", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/workspace.json | 17 | "placeholder": "Bir aralık seçin" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 27 | "placeholder": "Tip seçin" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 71 | "placeholder": "Sayı ekle" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 93 | "placeholder": "Seçenek ekle", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 103 | "placeholder": { | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 163 | "placeholder": "Başlık" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 166 | "placeholder": "Açıklama" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 191 | "placeholder": "Formülü yazın", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 332 | "placeholder": "Bu iş öğesi tipine benzersiz bir isim verin" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 335 | "placeholder": "Bu iş öğesi tipinin ne için olduğunu ve ne zaman kullanılacağını açıklayın." | CODE |
| LOW | packages/i18n/src/locales/tr-TR/work-item-type.json | 448 | "placeholder": "onayla" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/settings.json | 14 | "placeholder": "E-postanızı girin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/settings.json | 24 | "placeholder": "123456", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 45 | "placeholder": "Proje şablonunuzu adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 52 | "placeholder": "Bu şablonun ne zaman ve nasıl kullanılacağını açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 56 | "placeholder": "Projenizi adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 63 | "placeholder": "Bu projenin amacını ve hedeflerini açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 73 | "placeholder": "İş-öğesi şablonunuzu adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 80 | "placeholder": "Bu şablonun ne zaman ve nasıl kullanılacağını açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 84 | "placeholder": "Bu iş öğesine bir başlık verin.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 91 | "placeholder": "Bu iş öğesini, tamamladığınızda ne başaracağınız açık olacak şekilde açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 101 | "placeholder": "Sayfa şablonunuzu adlandırın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 108 | "placeholder": "Bu şablonun ne zaman ve nasıl kullanılacağını açıklayın." | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 112 | "placeholder": "Başlıksız sayfa", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 128 | "placeholder": "Şablonunuzu adlandırın", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 136 | "placeholder": "Bu şablon, aynı anda birden fazla projeyi yöneten Proje Yöneticileri için mükemmeldir.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 143 | "placeholder": "Konuşma-Metin entegrasyonumuzla üretkenliği artırın ve iletişimi kolaylaştırın.\n• Gerçek za | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 150 | "placeholder": "En uygun olduğunu düşündüğünüz yeri seçin. Birden fazla seçim yapabilirsiniz.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 157 | "placeholder": "Kullanıcılarınızın bu şablonu ararken arayacağını düşündüğünüz terimleri kullanın.", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 165 | "placeholder": "https://plane.so", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 173 | "placeholder": "Plane", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 181 | "placeholder": "help@plane.so", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 189 | "placeholder": "https://planes.so/privacy-policy", | CODE |
| LOW⚡ | packages/i18n/src/locales/tr-TR/template.json | 197 | "placeholder": "https://planes.so/terms-of-use", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/project-settings.json | 264 | "placeholder": "Benzersiz bir ad ekleyin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/project-settings.json | 272 | "placeholder": "Kısa bir açıklama ekleyin", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/project-settings.json | 450 | "placeholder": "Başlık", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/common.json | 410 | "placeholder": "URL yazın veya yapıştırın" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/common.json | 414 | "placeholder": "Bu bağlantıyı nasıl görmek istersiniz" | CODE |
| LOW | packages/i18n/src/locales/tr-TR/common.json | 595 | "placeholder": "Aramak için yazın", | CODE |
| LOW | packages/i18n/src/locales/tr-TR/editor.json | 33 | "placeholder": { | CODE |
| LOW | packages/i18n/src/locales/tr-TR/editor.json | 47 | "placeholder": "Bu bloğun içeriğini açıklayın", | CODE |
| 1321 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/ui/src/progress/circular-progress-indicator.tsx | 17 | export function CircularProgressIndicator(props: ICircularProgressIndicator) { | CODE |
| LOW | packages/ui/src/form-fields/password/indicator.tsx | 19 | export function PasswordStrengthIndicator({ | CODE |
| LOW | packages/ui/src/breadcrumbs/navigation-dropdown.tsx | 24 | export function BreadcrumbNavigationDropdown(props: TBreadcrumbNavigationDropdownProps) { | CODE |
| LOW | …ages/ui/src/breadcrumbs/navigation-search-dropdown.tsx | 28 | export function BreadcrumbNavigationSearchDropdown(props: TBreadcrumbNavigationSearchDropdownProps) { | CODE |
| LOW | packages/decorators/src/rest.ts | 30 | function createHttpMethodDecorator(method: RestMethod): (route: string) => MethodDecorator { | CODE |
| LOW | packages/decorators/src/controller.ts | 79 | function registerWebSocketController( | CODE |
| LOW | packages/utils/src/theme/color-validation.ts | 47 | export function validateAndAdjustOKLCH(oklch: { l: number; c: number; h: number }): { | CODE |
| LOW | packages/utils/src/theme/color-validation.ts | 79 | export function adjustLightnessForDarkMode(lightness: number, offset: number): number { | CODE |
| LOW | packages/utils/src/theme/palette-generator.ts | 73 | export function calculateDynamicValueStop(oklch: OKLCH): number { | CODE |
| LOW | packages/propel/src/utils/placement.ts | 48 | export function convertPlacementToSideAndAlign(placement: TPlacement): { | CODE |
| LOW | …el/src/empty-state/assets/vertical-stack/dashboard.tsx | 10 | export function DashboardVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …/propel/src/empty-state/assets/vertical-stack/epic.tsx | 10 | export function EpicVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …src/empty-state/assets/vertical-stack/invalid-link.tsx | 10 | export function InvalidLinkVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …/propel/src/empty-state/assets/vertical-stack/view.tsx | 10 | export function ViewVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …c/empty-state/assets/vertical-stack/archived-cycle.tsx | 10 | export function ArchivedCycleVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …opel/src/empty-state/assets/vertical-stack/project.tsx | 10 | export function ProjectVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …pel/src/empty-state/assets/vertical-stack/customer.tsx | 10 | export function CustomerVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/vertical-stack/no-access.tsx | 10 | export function NoAccessVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …ropel/src/empty-state/assets/vertical-stack/module.tsx | 10 | export function ModuleVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …/empty-state/assets/vertical-stack/archived-module.tsx | 10 | export function ArchivedModuleVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …src/empty-state/assets/vertical-stack/server-error.tsx | 10 | export function ServerErrorVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …propel/src/empty-state/assets/vertical-stack/draft.tsx | 10 | export function DraftVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …l/src/empty-state/assets/vertical-stack/initiative.tsx | 10 | export function InitiativeVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/vertical-stack/changelog.tsx | 10 | export function ChangelogVerticalStackIllustration({ className, ...rest }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/vertical-stack/teamspace.tsx | 10 | export function TeamspaceVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …pty-state/assets/vertical-stack/archived-work-item.tsx | 10 | export function ArchivedWorkItemVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …/propel/src/empty-state/assets/vertical-stack/page.tsx | 10 | export function PageVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/vertical-stack/work-item.tsx | 10 | export function WorkItemVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …propel/src/empty-state/assets/vertical-stack/cycle.tsx | 10 | export function CycleVerticalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …l/src/empty-state/assets/horizontal-stack/settings.tsx | 10 | export function SettingsHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …opel/src/empty-state/assets/horizontal-stack/token.tsx | 10 | export function TokenHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …ropel/src/empty-state/assets/horizontal-stack/note.tsx | 10 | export function NoteHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …ropel/src/empty-state/assets/horizontal-stack/link.tsx | 10 | export function LinkHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …l/src/empty-state/assets/horizontal-stack/priority.tsx | 10 | export function PriorityHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …pel/src/empty-state/assets/horizontal-stack/update.tsx | 10 | export function UpdateHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …l/src/empty-state/assets/horizontal-stack/estimate.tsx | 10 | export function EstimateHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/horizontal-stack/worklog.tsx | 10 | export function WorklogHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …ropel/src/empty-state/assets/horizontal-stack/epic.tsx | 10 | export function EpicHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …opel/src/empty-state/assets/horizontal-stack/label.tsx | 10 | export function LabelHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/horizontal-stack/members.tsx | 10 | export function MembersHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …pel/src/empty-state/assets/horizontal-stack/export.tsx | 10 | export function ExportHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/horizontal-stack/unknown.tsx | 10 | export function UnknownHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/horizontal-stack/project.tsx | 10 | export function ProjectHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …l/src/empty-state/assets/horizontal-stack/customer.tsx | 10 | export function CustomerHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …opel/src/empty-state/assets/horizontal-stack/state.tsx | 10 | export function StateHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …el/src/empty-state/assets/horizontal-stack/webhook.tsx | 10 | export function WebhookHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …/src/empty-state/assets/horizontal-stack/work-item.tsx | 10 | export function WorkItemHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …pel/src/empty-state/assets/horizontal-stack/intake.tsx | 10 | export function IntakeHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | …l/src/empty-state/assets/horizontal-stack/template.tsx | 10 | export function TemplateHorizontalStackIllustration({ className }: TIllustrationAssetProps) { | CODE |
| LOW | packages/propel/src/context-menu/context-menu.tsx | 114 | const ContextMenuSubmenuTrigger = React.forwardRef(function ContextMenuSubmenuTrigger( | CODE |
| LOW | …s/custom-image/components/toolbar/full-screen/root.tsx | 26 | export function ImageFullScreenActionRoot(props: Props) { | CODE |
| LOW | …/custom-image/components/toolbar/full-screen/modal.tsx | 29 | function ImageFullScreenModalWithoutPortal(props: Props) { | CODE |
| LOW | …/extensions/code/utils/replace-code-block-with-text.ts | 55 | function transformCodeBlockToParagraphs({ | CODE |
| LOW | …/editor/src/core/extensions/callout/color-selector.tsx | 21 | export function CalloutBlockColorSelector(props: Props) { | CODE |
| LOW | …tensions/table/plugins/drag-handles/color-selector.tsx | 44 | export function TableDragHandleDropdownColorSelector(props: Props) { | CODE |
| LOW | …e/components/editors/document/collaborative-editor.tsx | 24 | function CollaborativeDocumentEditorInner(props: ICollaborativeDocumentEditorProps) { | CODE |
| LOW | …e/components/editors/document/collaborative-editor.tsx | 141 | function CollaborativeDocumentEditor(props: ICollaborativeDocumentEditorProps) { | CODE |
| LOW | …e/components/editors/document/collaborative-editor.tsx | 158 | const CollaborativeDocumentEditorWithRef = React.forwardRef(function CollaborativeDocumentEditorWithRef( | CODE |
| LOW | packages/editor/src/core/helpers/scroll-to-node.ts | 36 | export function scrollToNodeViaDOMCoordinates(editor: Editor, pos: number, behavior?: ScrollBehavior): void { | CODE |
| LOW | …kages/editor/src/core/helpers/find-suggestion-match.ts | 10 | export function customFindSuggestionMatch(config: Trigger): SuggestionMatch | null { | CODE |
| 641 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/settings/local.py | 9 | CODE | |
| LOW | apps/api/plane/settings/test.py | 7 | CODE | |
| LOW | apps/api/plane/settings/common.py | 570 | CODE | |
| LOW | apps/api/plane/settings/production.py | 9 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 14 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 21 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 21 | CODE | |
| LOW | apps/api/plane/app/permissions/__init__.py | 22 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 5 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 6 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 17 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 32 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 48 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 48 | CODE | |
| LOW | apps/api/plane/app/serializers/__init__.py | 49 | CODE | |
| 708 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | packages/editor/src/core/extensions/code/code-block.ts | 295 | const codeMark = view.state.schema.marks.code.create(); | CODE |
| CRITICAL | apps/web/core/store/issue/project/issue.store.ts | 86 | projectId && this.rootIssueStore.rootStore.projectRoot.project.fetchProjectDetails(workspaceSlug, projectId); | CODE |
| CRITICAL | apps/web/core/store/issue/issue-details/issue.store.ts | 137 | this.rootIssueDetailStore.rootIssueStore.rootStore.state.fetchProjectStates(workspaceSlug, projectId); | CODE |
| CRITICAL | …web/core/store/issue/issue-details/sub_issues.store.ts | 240 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(oldIssue.state_id); | CODE |
| CRITICAL | …web/core/store/issue/issue-details/sub_issues.store.ts | 245 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(issueData.state_id); | CODE |
| CRITICAL | …web/core/store/issue/issue-details/sub_issues.store.ts | 277 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(issue.state_id); | CODE |
| CRITICAL | …web/core/store/issue/issue-details/sub_issues.store.ts | 310 | const state = this.rootIssueDetailStore.rootIssueStore.rootStore.state.getStateById(issue.state_id); | CODE |
| CRITICAL⚡ | …web/core/store/issue/issue-details/sub_issues.store.ts | 341 | this.rootIssueDetailStore.rootIssueStore.rootStore.state.fetchProjectStates(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | …web/core/store/issue/issue-details/sub_issues.store.ts | 343 | this.rootIssueDetailStore.rootIssueStore.rootStore.memberRoot.project.fetchProjectMembers( | CODE |
| CRITICAL⚡ | …web/core/store/issue/issue-details/sub_issues.store.ts | 348 | this.rootIssueDetailStore.rootIssueStore.rootStore.label.fetchProjectLabels(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | …web/core/store/issue/issue-details/sub_issues.store.ts | 350 | this.rootIssueDetailStore.rootIssueStore.rootStore.cycle.fetchAllCycles(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | …web/core/store/issue/issue-details/sub_issues.store.ts | 352 | this.rootIssueDetailStore.rootIssueStore.rootStore.module.fetchModules(workspaceSlug, projectId); | CODE |
| CRITICAL⚡ | …web/core/store/issue/issue-details/sub_issues.store.ts | 354 | this.rootIssueDetailStore.rootIssueStore.rootStore.projectEstimate.getProjectEstimates( | CODE |
| CRITICAL | …e/store/issue/issue-details/sub_issues_filter.store.ts | 127 | const workItems = this.subIssueStore.rootIssueDetailStore.rootIssueStore.issues.getIssuesByIds( | CODE |
| CRITICAL | apps/web/core/store/issue/archived/issue.store.ts | 80 | projectId && this.rootIssueStore.rootStore.projectRoot.project.fetchProjectDetails(workspaceSlug, projectId); | CODE |
| CRITICAL | apps/api/plane/app/serializers/module.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/serializers/workspace.py | 39 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/serializers/issue.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/views/workspace/invite.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/app/views/project/invite.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/license/api/views/admin.py | 14 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …ps/api/plane/tests/contract/app/test_authentication.py | 13 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/asset.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/webhook.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/workspace.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/db/models/issue.py | 11 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/api/serializers/invite.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/api/serializers/issue.py | 42 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/adapter/base.py | 12 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/app/check.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …/plane/authentication/views/app/password_management.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/app/email.py | 6 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/space/check.py | 10 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | …lane/authentication/views/space/password_management.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | apps/api/plane/authentication/views/space/email.py | 6 | from django.core.exceptions import ValidationError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/api/bin/docker-entrypoint-api-local.sh | 7 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/bin/docker-entrypoint-api-local.sh | 28 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/bin/docker-entrypoint-api.sh | 7 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/bin/docker-entrypoint-api.sh | 29 | # Create the default bucket | COMMENT |
| MEDIUM | apps/api/plane/settings/storage.py | 45 | # Create an S3 client for MinIO | COMMENT |
| MEDIUM | apps/api/plane/settings/storage.py | 55 | # Create an S3 client | COMMENT |
| MEDIUM | apps/api/plane/app/serializers/page.py | 72 | # Create the page | COMMENT |
| MEDIUM | apps/api/plane/app/serializers/page.py | 82 | # Create the project page | COMMENT |
| MEDIUM | apps/api/plane/app/serializers/base.py | 44 | # Create a list to store allowed fields. | COMMENT |
| MEDIUM | apps/api/plane/app/views/asset/v2.py | 147 | # Create a File Asset | COMMENT |
| MEDIUM | apps/api/plane/app/views/asset/v2.py | 367 | # Create a File Asset | COMMENT |
| MEDIUM | apps/api/plane/app/views/asset/v2.py | 578 | # Create a File Asset | COMMENT |
| MEDIUM⚡ | apps/api/plane/app/views/workspace/invite.py | 212 | # Create a Workspace | COMMENT |
| MEDIUM | apps/api/plane/app/views/intake/base.py | 279 | # Create an Issue Activity | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/invite.py | 257 | # Create a Project Member | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/member.py | 65 | # Create a dictionary of the member_id and their roles | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/member.py | 114 | # Create a new project member | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/member.py | 123 | # Create a new issue property | COMMENT |
| MEDIUM | apps/api/plane/app/views/project/base.py | 299 | # Create the model activity | COMMENT |
| MEDIUM | apps/api/plane/app/views/issue/attachment.py | 120 | # Create a File Asset | COMMENT |
| MEDIUM | apps/api/plane/app/views/analytic/project_analytics.py | 234 | # Create a dictionary of existing stats with summed counts | COMMENT |
| MEDIUM | apps/api/plane/license/bgtasks/telemetry_metrics.py | 105 | # Create a new MeterProvider per execution. Gauges use callbacks that capture | COMMENT |
| MEDIUM | apps/api/plane/license/api/views/admin.py | 49 | # Create an instance admin | COMMENT |
| MEDIUM⚡ | apps/api/plane/bgtasks/storage_metadata_task.py | 19 | # Create an instance of the S3 storage | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/page_version_task.py | 32 | # Create a version if description_html is updated | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/page_version_task.py | 59 | # Create a new page version | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/workspace_seed_task.py | 522 | # Create a bot user for creating all the workspace data | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/workspace_seed_task.py | 543 | # Create a project with the same name as workspace | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/email_notification_task.py | 51 | # Create the below format for each of the issues | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/webhook_task.py | 219 | # Create the email message | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/dummy_data_task.py | 503 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/conftest.py | 131 | # Create the workspace using the model | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/middleware/test_db_routing.py | 400 | # Create a view class that raises AttributeError on access | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/middleware/test_db_routing.py | 243 | # Create a real object to avoid Mock issues | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/middleware/test_db_routing.py | 291 | # Create a real object to test the attribute handling | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/utils/test_url.py | 88 | # Create a string over 1000 characters with a URL | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/utils/test_uuid.py | 30 | # Create a known UUID | COMMENT |
| MEDIUM | …ps/api/plane/tests/unit/models/test_workspace_model.py | 18 | # Create a workspace | COMMENT |
| MEDIUM⚡ | …ps/api/plane/tests/unit/models/test_workspace_model.py | 32 | # Create a workspace | COMMENT |
| MEDIUM⚡ | …ps/api/plane/tests/unit/models/test_workspace_model.py | 37 | # Create a workspace member | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 43 | # Create a user to be the owner | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 46 | # Create a workspace with explicit ID to test serialization | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 64 | # Create a user to be the owner | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/serializers/test_workspace.py | 67 | # Create a workspace | COMMENT |
| MEDIUM | …ps/api/plane/tests/contract/app/test_authentication.py | 345 | # Create a user that already exists | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 291 | # Create a project | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 346 | # Create an archived project | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 403 | # Create a project | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/contract/app/test_project_app.py | 406 | # Create a member user (not admin) | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 239 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 257 | # Create a guest user | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 314 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 370 | # Create a project | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_project_app.py | 499 | # Create a member user (not admin) | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/app/test_api_token.py | 113 | # Create a service token (should be excluded) | COMMENT |
| MEDIUM | apps/api/plane/utils/paginator.py | 316 | # Create a field dictionary | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 536 | # Create a dictionary of group and sub group | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 540 | # Create a dictionary of sub group | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 544 | # Create a nested dictionary of group and sub group | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/paginator.py | 550 | # Create a field dictionary | COMMENT |
| 20 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/middleware/logger.py | 49 | # Check if logging is required | COMMENT |
| LOW | apps/api/plane/middleware/logger.py | 107 | # Check if content is binary by looking for common binary file signatures | COMMENT |
| LOW | apps/api/plane/app/serializers/intake.py | 49 | # Check if status is being updated to accepted | COMMENT |
| LOW | apps/api/plane/app/serializers/intake.py | 54 | # Check if issue is in TRIAGE state | COMMENT |
| LOW | apps/api/plane/app/serializers/workspace.py | 49 | # Check if the name contains a URL | COMMENT |
| LOW | apps/api/plane/app/serializers/workspace.py | 62 | # Check if the slug is restricted | COMMENT |
| LOW | apps/api/plane/app/serializers/base.py | 172 | # Check if field in expansion then expand the field | COMMENT |
| LOW | apps/api/plane/app/serializers/base.py | 183 | # Check if issue_attachments is in fields or expand | COMMENT |
| LOW | apps/api/plane/app/views/page/version.py | 20 | # Check if pk is provided | COMMENT |
| LOW⚡ | apps/api/plane/app/views/asset/v2.py | 117 | # Check if the file size is within the limit | COMMENT |
| LOW⚡ | apps/api/plane/app/views/asset/v2.py | 120 | # Check if the entity type is allowed | COMMENT |
| LOW⚡ | apps/api/plane/app/views/asset/v2.py | 127 | # Check if the file type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 239 | # Check if the asset exists | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 323 | # Check if the entity type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 341 | # Check if the file type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 429 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 457 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 464 | # Check if the entity type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 545 | # Check if the entity type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 552 | # Check if the file type is allowed | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 636 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 665 | # Check if the asset ids are provided | COMMENT |
| LOW | apps/api/plane/app/views/asset/v2.py | 681 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/cycle/base.py | 538 | # Check if any cycle intersects in the given interval | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 56 | # Check if email is provided | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 63 | # Check if any invited user has an higher role | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 73 | # Check if user is already a member of workspace | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 198 | # Check if the user created account after invitation | COMMENT |
| LOW⚡ | apps/api/plane/app/views/workspace/invite.py | 203 | # Check if the user was already a member of workspace then activate the user | COMMENT |
| LOW | apps/api/plane/app/views/workspace/member.py | 164 | # Check if the leaving user is the only admin of the workspace | COMMENT |
| LOW⚡ | apps/api/plane/app/views/user/base.py | 121 | # Check if email is the same as current email | COMMENT |
| LOW⚡ | apps/api/plane/app/views/user/base.py | 128 | # Check if email already exists in the User model | COMMENT |
| LOW | apps/api/plane/app/views/intake/base.py | 436 | # Check if the update is a migration description update | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 60 | # Check if email is provided | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 140 | # Check if user has permission to join each project | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 238 | # Check if user is a part of workspace | COMMENT |
| LOW | apps/api/plane/app/views/project/invite.py | 252 | # Check if the user was already a member of project then activate the user | COMMENT |
| LOW | apps/api/plane/app/views/project/member.py | 54 | # Check if the members array is empty | COMMENT |
| LOW | apps/api/plane/app/views/project/member.py | 219 | # Check if the user is not editing their own role if they are not an admin | COMMENT |
| LOW | apps/api/plane/app/views/project/member.py | 332 | # Check if the leaving user is the only admin of the project | COMMENT |
| LOW | apps/api/plane/app/views/issue/attachment.py | 178 | # Check if the asset is uploaded | COMMENT |
| LOW | apps/api/plane/app/views/issue/label.py | 60 | # Check if the label name is unique within the project | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 671 | # Check if the update is a migration description update | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 1196 | # Check if the issue identifier is a valid integer | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 1208 | # Check if the user is a member of the project | COMMENT |
| LOW | apps/api/plane/app/views/issue/base.py | 1317 | # Check if the issue exists | COMMENT |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 73 | # Check if the instance is registered | COMMENT |
| LOW | …plane/license/management/commands/register_instance.py | 54 | # Check if the instance is registered | COMMENT |
| LOW | apps/api/plane/license/api/serializers/workspace.py | 24 | # Check if the name contains a URL (kept consistent with the app-level | COMMENT |
| LOW | apps/api/plane/license/api/serializers/workspace.py | 38 | # Check if the slug is restricted | COMMENT |
| LOW | apps/api/plane/license/api/views/admin.py | 175 | # Check if already a user exists or not | COMMENT |
| LOW | apps/api/plane/license/api/views/admin.py | 380 | # Check if the user is an instance admin | COMMENT |
| LOW | apps/api/plane/bgtasks/recent_visited_task.py | 30 | # Check if the database is available | COMMENT |
| LOW | apps/api/plane/bgtasks/deletion_task.py | 188 | # Check if the model has a 'deleted_at' field | COMMENT |
| LOW | apps/api/plane/bgtasks/notification_task.py | 330 | # Check if the value should be sent or not | COMMENT |
| LOW | apps/api/plane/bgtasks/webhook_task.py | 502 | # Check if key is present in current instance or not | COMMENT |
| LOW | …ps/api/plane/bgtasks/issue_description_version_task.py | 52 | # Check if description has changed | COMMENT |
| LOW | apps/api/plane/bgtasks/event_tracking_task.py | 48 | # Check if the current user is the workspace owner | COMMENT |
| LOW | apps/api/plane/bgtasks/work_item_link_task.py | 192 | # Check if fallback exists (pinned to the validated IP). | COMMENT |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 56 | # Check if Issues | COMMENT |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/api/plane/settings/openapi.py | 12 | # ======================================================================== | COMMENT |
| MEDIUM | apps/api/plane/settings/openapi.py | 14 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 31 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 33 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 37 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 39 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 43 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 45 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 50 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 52 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 261 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 263 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 267 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | apps/api/plane/settings/openapi.py | 269 | # ======================================================================== | COMMENT |
| MEDIUM | apps/api/plane/bgtasks/notification_task.py | 279 | # --------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 235 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 237 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 298 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 300 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 317 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 319 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 330 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 332 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 91 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 93 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 134 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 162 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 165 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 188 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 192 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 220 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 224 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 246 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 250 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 63 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/api/plane/tests/unit/bg_tasks/test_ssrf_advisories.py | 66 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 11 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 17 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | apps/api/plane/utils/order_queryset.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/openapi/examples.py | 94 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | apps/api/plane/utils/openapi/examples.py | 96 | # ============================================================================ | COMMENT |
| MEDIUM | apps/api/plane/utils/openapi/examples.py | 385 | # ============================================================================ | COMMENT |
| MEDIUM | apps/api/plane/utils/openapi/examples.py | 387 | # ============================================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/middleware/logger.py | 160 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/settings/storage.py | 96 | print(f"Error generating presigned POST URL: {e}") | CODE |
| LOW | apps/api/plane/app/serializers/page.py | 195 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 66 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 78 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 121 | except Exception as exc: | CODE |
| LOW | apps/api/plane/app/views/base.py | 175 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/base.py | 216 | except Exception as exc: | CODE |
| MEDIUM | apps/api/plane/app/views/base.py | 63 | def get_queryset(self): | CODE |
| MEDIUM | apps/api/plane/app/views/base.py | 111 | def dispatch(self, request, *args, **kwargs): | CODE |
| MEDIUM | apps/api/plane/app/views/base.py | 206 | def dispatch(self, request, *args, **kwargs): | CODE |
| LOW⚡ | apps/api/plane/app/views/user/base.py | 115 | except Exception: | CODE |
| LOW | apps/api/plane/app/views/user/base.py | 169 | except Exception as e: | CODE |
| LOW | apps/api/plane/app/views/user/base.py | 218 | except Exception: | CODE |
| LOW | apps/api/plane/app/views/external/base.py | 137 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 360 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 380 | except Exception as e: | CODE |
| LOW | …plane/license/management/commands/register_instance.py | 36 | except Exception: | CODE |
| LOW | …plane/license/management/commands/register_instance.py | 49 | except Exception: | CODE |
| MEDIUM | …plane/license/management/commands/register_instance.py | 40 | def check_for_latest_version(self, fallback_version): | CODE |
| LOW | apps/api/plane/license/utils/encryption.py | 28 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/utils/encryption.py | 42 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/license/utils/encryption.py | 20 | def encrypt_data(data): | CODE |
| MEDIUM | apps/api/plane/license/utils/encryption.py | 34 | def decrypt_data(encrypted_data): | CODE |
| LOW | apps/api/plane/license/api/views/configuration.py | 81 | except Exception: | CODE |
| LOW | apps/api/plane/license/api/views/configuration.py | 167 | except Exception: | CODE |
| MEDIUM | apps/api/plane/license/api/views/configuration.py | 66 | def delete(self, request): | CODE |
| LOW | apps/api/plane/license/api/views/admin.py | 442 | except Exception: | CODE |
| LOW | apps/api/plane/license/api/views/base.py | 66 | except Exception as e: | CODE |
| LOW | apps/api/plane/license/api/views/base.py | 107 | except Exception as exc: | CODE |
| MEDIUM | apps/api/plane/license/api/views/base.py | 97 | def dispatch(self, request, *args, **kwargs): | CODE |
| LOW⚡ | apps/api/plane/bgtasks/storage_metadata_task.py | 28 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/storage_metadata_task.py | 15 | def get_asset_object_metadata(asset_id): | CODE |
| LOW | apps/api/plane/bgtasks/project_invitation_task.py | 84 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/project_invitation_task.py | 24 | def project_invitation(email, project_id, token, current_site, invitor): | CODE |
| LOW | apps/api/plane/bgtasks/page_version_task.py | 79 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/page_version_task.py | 22 | def track_page_version(page_id, existing_instance, user_id): | CODE |
| LOW | apps/api/plane/bgtasks/recent_visited_task.py | 59 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/recent_visited_task.py | 18 | def recent_visited_task(entity_name, entity_identifier, user_id, project_id, slu | CODE |
| LOW | apps/api/plane/bgtasks/user_activation_email_task.py | 67 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/user_activation_email_task.py | 23 | def user_activation_email(current_site, user_id): | CODE |
| LOW | apps/api/plane/bgtasks/user_deactivation_email_task.py | 69 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/user_deactivation_email_task.py | 23 | def user_deactivation_email(current_site, user_id): | CODE |
| LOW | apps/api/plane/bgtasks/user_email_update_task.py | 61 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/user_email_update_task.py | 112 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/user_email_update_task.py | 22 | def send_email_update_magic_code(email, token): | CODE |
| LOW | apps/api/plane/bgtasks/analytic_plot_export.py | 404 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/analytic_plot_export.py | 433 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/analytic_plot_export.py | 350 | def analytic_export_task(email, data, slug): | CODE |
| MEDIUM | apps/api/plane/bgtasks/analytic_plot_export.py | 410 | def export_analytics_to_csv_email(data, headers, keys, email, slug): | CODE |
| LOW | apps/api/plane/bgtasks/forgot_password_task.py | 70 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/forgot_password_task.py | 23 | def forgot_password(first_name, email, uidb64, token, current_site): | CODE |
| LOW | apps/api/plane/bgtasks/deletion_task.py | 97 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/deletion_task.py | 99 | print(f"Error handling relation {related_name}: {str(e)}") | CODE |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 41 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 54 | except Exception as e: | CODE |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 153 | except Exception as e: | CODE |
| MEDIUM | apps/api/plane/bgtasks/copy_s3_object.py | 37 | def extract_asset_ids(html, tag): | CODE |
| MEDIUM | apps/api/plane/bgtasks/copy_s3_object.py | 46 | def replace_asset_ids(html, tag, duplicated_assets): | CODE |
| MEDIUM | apps/api/plane/bgtasks/copy_s3_object.py | 67 | def sync_with_external_service(entity_name, description_html): | CODE |
| 92 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/app/serializers/base.py | 0 | adjust the serializer's fields based on the provided 'fields' list. :param fields: list or dictionary specifying which f | STRING |
| HIGH | apps/api/plane/api/serializers/base.py | 0 | adjust the serializer's fields based on the provided 'fields' list. :param fields: list or dictionary specifying which f | STRING |
| HIGH | apps/api/plane/space/serializer/base.py | 0 | adjust the serializer's fields based on the provided 'fields' list. :param fields: list or dictionary specifying which f | STRING |
| HIGH | apps/api/plane/app/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/license/api/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/api/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/space/views/base.py | 0 | this enables timezone conversion according to the user set timezone | STRING |
| HIGH | apps/api/plane/app/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/license/api/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/api/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/space/views/base.py | 0 | handle any exception that occurs, by returning an appropriate response, or re-raising the error. | STRING |
| HIGH | apps/api/plane/app/views/page/base.py | 0 | if the role is guest and guest_view_all_features is false and owned by is not the requesting user then dont show the vie | STRING |
| HIGH | apps/api/plane/app/views/issue/base.py | 0 | if the role is guest and guest_view_all_features is false and owned by is not the requesting user then dont show the vie | STRING |
| HIGH | apps/api/plane/app/views/view/base.py | 0 | if the role is guest and guest_view_all_features is false and owned by is not the requesting user then dont show the vie | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-test.yml | 1 | # Docker Compose for running the API pytest suite in a contained environment. | COMMENT |
| LOW | packages/types/src/users.ts | 201 | // export interface ICurrentUser { | COMMENT |
| LOW | packages/types/src/users.ts | 221 | // sidebarText: string; | COMMENT |
| LOW | packages/constants/src/auth/index.ts | 21 | { | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 41 | COMMENT | |
| LOW | packages/shared-state/src/store/user.store.ts | 61 | // this.user = user; | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 81 | COMMENT | |
| LOW | packages/shared-state/src/store/user.store.ts | 101 | // } | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 121 | // runInAction(() => { | COMMENT |
| LOW | packages/shared-state/src/store/user.store.ts | 141 | // } | COMMENT |
| LOW | packages/i18n/src/core/instance.ts | 41 | returnEmptyString: false, | COMMENT |
| LOW | packages/codemods/tests/function-declaration.spec.ts | 361 | const result = await applyTransform( | COMMENT |
| LOW | packages/codemods/tests/function-declaration.spec.ts | 401 | // ReactDOM.preload(url, { as: "fetch", crossOrigin: "use-credentials" }); | COMMENT |
| LOW | .github/workflows/react-doctor.yml | 21 | # `actions/checkout` needs this to read the repo source. | COMMENT |
| LOW | .github/workflows/react-doctor.yml | 61 | # directory: apps/web # Scan a sub-directory (default: ".") | COMMENT |
| LOW | …core/components/workspace/billing/comparison/plans.tsx | 621 | business: true, | COMMENT |
| LOW | …core/components/workspace/billing/comparison/plans.tsx | 641 | // <span className="bg-[#3f76ff] text-on-color font-semibold text-9 p-0.5 w-fit whitespace-nowrap rounded- | COMMENT |
| LOW | …mponents/power-k/ui/pages/work-item-selection-page.tsx | 1 | /** | COMMENT |
| LOW | apps/web/core/components/exporter/export-form.tsx | 41 | multiple: boolean; | COMMENT |
| LOW | apps/web/core/services/issue_filter.service.ts | 21 | // .then((response) => response?.data) | COMMENT |
| LOW | apps/web/core/store/dashboard.store.ts | 21 | // plane web store | COMMENT |
| LOW | apps/web/app/(all)/layout.preload.tsx | 1 | /** | COMMENT |
| LOW | apps/web/app/routes/core.ts | 41 | // Workspace Invitations | COMMENT |
| LOW | apps/api/requirements.txt | 1 | # This file is here because many Platforms as a Service look for | COMMENT |
| LOW | apps/api/requirements/base.txt | 41 | # apm | COMMENT |
| LOW | apps/api/plane/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/settings/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/app/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/app/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/bgtasks/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/management/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/management/commands/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/utils/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/license/api/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/bgtasks/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/web/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/smoke/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/settings/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/utils/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/models/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/serializers/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/unit/views/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/contract/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/contract/app/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/tests/contract/api/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/utils/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/utils/email.py | 1 | # SPDX-FileCopyrightText: 2023-present Plane Software, Inc. | COMMENT |
| LOW | apps/api/plane/utils/order_queryset.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/db/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/db/management/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/db/management/commands/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/api/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/api/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/space/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/authentication/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| LOW | apps/api/plane/authentication/middleware/__init__.py | 1 | # Copyright (c) 2023-present Plane Software, Inc. and contributors | COMMENT |
| 7 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/app/serializers/issue.py | 841 | CODE | |
| LOW | apps/api/plane/app/serializers/base.py | 26 | CODE | |
| LOW | apps/api/plane/app/serializers/base.py | 122 | CODE | |
| LOW | apps/api/plane/app/views/workspace/invite.py | 164 | CODE | |
| LOW | apps/api/plane/app/views/search/base.py | 83 | CODE | |
| LOW | apps/api/plane/app/views/search/base.py | 234 | CODE | |
| LOW | apps/api/plane/app/views/search/base.py | 308 | CODE | |
| LOW | apps/api/plane/app/views/issue/sub_issue.py | 37 | CODE | |
| LOW | …lane/license/management/commands/configure_instance.py | 19 | CODE | |
| LOW | apps/api/plane/license/utils/instance_value.py | 17 | CODE | |
| LOW | apps/api/plane/bgtasks/deletion_task.py | 18 | CODE | |
| LOW | apps/api/plane/bgtasks/copy_s3_object.py | 46 | CODE | |
| LOW | apps/api/plane/bgtasks/page_transaction_task.py | 85 | CODE | |
| LOW | apps/api/plane/bgtasks/email_notification_task.py | 87 | CODE | |
| LOW | apps/api/plane/bgtasks/email_notification_task.py | 153 | CODE | |
| LOW | apps/api/plane/bgtasks/notification_task.py | 191 | CODE | |
| LOW | …ps/api/plane/bgtasks/issue_description_version_sync.py | 40 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_activities_task.py | 1504 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_version_sync.py | 34 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_version_sync.py | 181 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 28 | CODE | |
| LOW | apps/api/plane/bgtasks/issue_automation_task.py | 89 | CODE | |
| LOW | apps/api/plane/tests/smoke/test_auth_smoke.py | 15 | CODE | |
| LOW | apps/api/plane/utils/issue_filters.py | 55 | CODE | |
| LOW | apps/api/plane/utils/date_utils.py | 12 | CODE | |
| LOW | apps/api/plane/utils/content_validator.py | 162 | CODE | |
| LOW | apps/api/plane/utils/paginator.py | 655 | CODE | |
| LOW | apps/api/plane/utils/order_queryset.py | 125 | CODE | |
| LOW | apps/api/plane/utils/filters/filterset.py | 44 | CODE | |
| LOW | apps/api/plane/utils/filters/filter_backend.py | 142 | CODE | |
| LOW | apps/api/plane/utils/filters/filter_backend.py | 313 | CODE | |
| LOW | apps/api/plane/utils/filters/filter_backend.py | 411 | CODE | |
| LOW | apps/api/plane/utils/filters/converters.py | 241 | CODE | |
| LOW | apps/api/plane/utils/porters/formatters.py | 89 | CODE | |
| LOW | apps/api/plane/utils/porters/formatters.py | 233 | CODE | |
| LOW | …lane/db/management/commands/fix_duplicate_sequences.py | 27 | CODE | |
| LOW | apps/api/plane/db/models/base.py | 23 | CODE | |
| LOW | apps/api/plane/api/serializers/base.py | 32 | CODE | |
| LOW | apps/api/plane/api/serializers/base.py | 72 | CODE | |
| LOW | apps/api/plane/api/views/issue.py | 2356 | CODE | |
| LOW | apps/api/plane/api/views/project.py | 222 | CODE | |
| LOW | apps/api/plane/api/views/project.py | 456 | CODE | |
| LOW | apps/api/plane/space/serializer/base.py | 25 | CODE | |
| LOW | apps/api/plane/authentication/middleware/session.py | 29 | CODE | |
| LOW | …lane/authentication/provider/credentials/magic_code.py | 121 | CODE | |
| LOW | apps/api/plane/authentication/adapter/base.py | 139 | CODE | |
| LOW | apps/api/plane/authentication/adapter/oauth.py | 49 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/bgtasks/webhook_task.py | 126 | Retrieve and serialize model data based on the event type. Args: event (str): The type of event/model | STRING |
| HIGH | apps/api/plane/bgtasks/work_item_link_task.py | 79 | Perform a GET request that resolves, validates and pins every hop to its validated IP. Prevents SSRF via privat | STRING |
| HIGH | apps/api/plane/utils/ip_address.py | 106 | Resolve ``hostname`` and (when ``require_safe``) ensure every resolved address is a safe outbound target, retur | STRING |
| HIGH | apps/api/plane/utils/filters/converters.py | 320 | Convert legacy filters to rich filters format with validation Args: legacy_filters: Dictio | STRING |
| HIGH | apps/api/plane/utils/porters/exporter.py | 70 | Export queryset to file with configured format. Args: filename: Base filename (without ext | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/utils/src/string.ts | 425 | // Create a dummy URL to leverage browser's URL normalization | COMMENT |
| MEDIUM | apps/live/src/controllers/document.controller.ts | 16 | // Define the schema with more robust validation | COMMENT |
| MEDIUM⚡ | apps/api/plane/tests/unit/bg_tasks/test_url_security.py | 42 | # Cluster A — robust IP classification (verified on Python 3.12 semantics) | COMMENT |
| MEDIUM | apps/api/plane/tests/contract/api/test_projects.py | 260 | # transaction.on_commit(robust=True). | COMMENT |
| MEDIUM | apps/api/plane/api/views/project.py | 276 | # robust=True so broker / dispatch failures are logged | COMMENT |
| MEDIUM | apps/api/plane/api/views/project.py | 281 | # used here because Django's robust on_commit logging | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …web/core/components/core/modals/change-email-modal.tsx | 72 | // Step 2: Verify the code and update email | COMMENT |
| LOW | …web/core/components/core/modals/change-email-modal.tsx | 95 | // Step 1: Check email and generate verification code | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 16 | // Step 1: Create a Map to track routes by file path | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 19 | // Step 2: Process core routes first | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 25 | // Step 3: Process extended routes | COMMENT |
| LOW | apps/web/app/routes/helper.ts | 54 | // Step 4: Build final array maintaining order (core first, then extended-only) | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 47 | // Step 1: Send force close message to ALL clients first | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 71 | // Step 2: Close connections | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …web/core/components/core/modals/change-email-modal.tsx | 72 | // Step 2: Verify the code and update email | COMMENT |
| LOW | …web/core/components/core/modals/change-email-modal.tsx | 95 | // Step 1: Check email and generate verification code | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 16 | // Step 1: Create a Map to track routes by file path | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 19 | // Step 2: Process core routes first | COMMENT |
| LOW⚡ | apps/web/app/routes/helper.ts | 25 | // Step 3: Process extended routes | COMMENT |
| LOW | apps/web/app/routes/helper.ts | 54 | // Step 4: Build final array maintaining order (core first, then extended-only) | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 47 | // Step 1: Send force close message to ALL clients first | COMMENT |
| LOW | apps/live/src/extensions/force-close-handler.ts | 71 | // Step 2: Close connections | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/app/serializers/webhook.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | apps/api/plane/license/bgtasks/telemetry_metrics.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ps/api/plane/bgtasks/issue_description_version_task.py | 25 | def update_existing_version(version: IssueDescriptionVersion, issue) -> None: | CODE |
| LOW | apps/api/plane/utils/filters/__init__.py | 14 | __all__ = ["ComplexFilterBackend", "LegacyToRichFiltersConverter", "BaseFilterSet", "IssueFilterSet"] | CODE |
| LOW | apps/api/plane/utils/core/request_scope.py | 16 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/core/request_scope.py | 28 | def set_use_read_replica(use_replica: bool) -> None: | CODE |
| LOW | apps/api/plane/utils/core/__init__.py | 19 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/core/mixins/__init__.py | 13 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/porters/__init__.py | 9 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/porters/serializers/__init__.py | 7 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/exporters/__init__.py | 22 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/exporters/schemas/__init__.py | 20 | __all__ = [ | CODE |
| LOW | apps/api/plane/utils/openapi/__init__.py | 186 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/web/core/store/issue/helpers/base-issues.store.ts | 1635 | // if value is not defined, return None value in array | COMMENT |
| HIGH | apps/web/public/workbox-9f2f79cf.js | 65 | print(method, args); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | apps/api/plane/utils/filters/filterset.py | 173 | Convenience filter: archived=true -> archived_at is not null, | STRING |
| HIGH | apps/api/plane/utils/filters/filter_backend.py | 453 | "message": (f"Value for '{key}' must be a scalar, null, or list/tuple of scalars"), | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-test.yml | 6 | # Usage: | COMMENT |
| LOW | packages/propel/src/scrollarea/scrollarea.stories.tsx | 222 | // Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/api/plane/app/serializers/view.py | 53 | CODE | |
| LOW | apps/api/plane/utils/paginator.py | 745 | CODE | |
| LOW | apps/api/plane/utils/paginator.py | 655 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | apps/api/plane/tests/contract/api/test_projects.py | 254 | # Project and its scaffolding are persisted (commit happened | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tensions/table/plugins/drag-handles/color-selector.tsx | 17 | // TODO: implement text color selector | COMMENT |