Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.
35 of your 102 findings came from Repobility's proprietary detections. ✓ Repobility tags below mark them.
Upstream (GitHub) caused delay on this scan — not Repobility.
  • GitHub API rate-limited (HTTP 403) — preflight skipped, fell back to direct git clone.
  • Clone from GitHub took 98.59s for a 104.4 MB repo slow.
  • Repobility's analysis ran in 12.55s after the clone landed.

polaris-react

https://github.com/Shopify/polaris-react.git · scanned 2026-05-24 01:23 UTC (1 week, 5 days ago) · 10 languages

1326 findings (89 legacy + 1237 scanner) 11/13 scanners ran 91st percentile · Typescript · large (100-500K LoC) Scanner says 76 (higher by 9)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 1 week, 5 days ago · v4 · last Δ -5.4 (diff) · 305 findings from 3 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.

JSON
Score breakdown â 2026-05-18-v5
Component Sub-score Weight Contribution
structure_score 60.0 0.15 9.00
security_score 100.0 0.25 25.00
testing_score 95.0 0.20 19.00
documentation_score 61.0 0.15 9.15
practices_score 100.0 0.15 15.00
code_quality 80.0 0.10 8.00
Overall 1.00 85.2
security_score may be inflated — optional security scanners were skipped on this fast scan
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Scan summary Repository scanned at 76.4/100 with 100.0% coverage. It contains 2998 nodes across 30 cross-layer flows, written primarily in mixed languages. Engine surfaced 215 findings — concentrated in quality (93), security (50), api (50). Risk profile is high: 5 critical, 5 high, 54 medium. Recommended next step: open the quality layer findings first — that's where the highest-impact wins live.

Showing 249 of 305 findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

critical Legacy quality quality conf 1.00 ✓ Repobility [MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLoader) / unmarshal of network/file data — RCE.
Review and fix per the pattern semantics. See CWE-502 / A08:2021 for context.
polaris.shopify.com/src/utils/markdown.mjs:9 qualitylegacy
critical Legacy quality quality conf 1.00 ✓ Repobility [MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLoader) / unmarshal of network/file data — RCE.
Review and fix per the pattern semantics. See CWE-502 / A08:2021 for context.
.eslintrc.js:6 qualitylegacy
critical Legacy software dependency conf 0.90 ✓ Repobility [MINED116] Workflow uses `secrets.CHROMATIC_PROJECT_TOKEN` on a `pull_request` trigger: This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.CHROMATIC_PROJECT_TOKEN }` lets a PR from any fork exfiltrate the secret (modify a script, log the value, etc.). Use `pull_request_target` ONLY with strict checkout discipline (no fork code in the trusted context).
Either remove the secret reference, or switch the trigger to `pull_request_target` AND ensure no fork-controlled code runs before the secret is consumed.
.github/workflows/ci-a11y-vrt.yml:166 dependencylegacy
critical Legacy quality quality conf 1.00 [SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader can execute arbitrary Python objects (CVE-2017-18342). Ported from bandit B506 / dlint DUO109 (Apache-2.0 / BSD-3).
Use `yaml.safe_load(data)` or `yaml.load(data, Loader=yaml.SafeLoader)`.
polaris.shopify.com/src/utils/markdown.mjs:9 qualitylegacy
critical Legacy quality quality conf 1.00 [SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader can execute arbitrary Python objects (CVE-2017-18342). Ported from bandit B506 / dlint DUO109 (Apache-2.0 / BSD-3).
Use `yaml.safe_load(data)` or `yaml.load(data, Loader=yaml.SafeLoader)`.
.eslintrc.js:6 qualitylegacy
critical Legacy security deserialization conf 1.00 [SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Marshal.load` instantiate arbitrary Ruby classes — direct RCE on untrusted input. `unsafe_load` is even more dangerous.
Use `YAML.safe_load(input, permitted_classes: [Date])` — explicit class allowlist. Never use `Marshal.load` on untrusted data; serialize as JSON instead.
polaris.shopify.com/src/utils/markdown.mjs:9 deserializationlegacy
critical Legacy security deserialization conf 1.00 [SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Marshal.load` instantiate arbitrary Ruby classes — direct RCE on untrusted input. `unsafe_load` is even more dangerous.
Use `YAML.safe_load(input, permitted_classes: [Date])` — explicit class allowlist. Never use `Marshal.load` on untrusted data; serialize as JSON instead.
.eslintrc.js:6 deserializationlegacy
critical 9-layer security secrets conf 1.00 Possible secret in repos/monitoring_tasks.py
Detected pattern matching password_literal. Rotate the credential and move to a secret manager.
repos/monitoring_tasks.py:269 secrets
critical 9-layer security secrets conf 1.00 Possible secret in repos/threat_engine.py
Detected pattern matching password_literal. Rotate the credential and move to a secret manager.
repos/threat_engine.py:110 secrets
critical 9-layer security secrets conf 1.00 Possible secret in scanner/engine/ai/client.py
Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager.
scanner/engine/ai/client.py:106 secrets
low Legacy quality quality conf 1.00 ✓ Repobility [MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
Review and fix per the pattern semantics. See CWE-327 / A02:2021 for context.
polaris.shopify.com/pages/api/tokens/v0/[tokens].tsx:92 qualitylegacy
high Legacy software dependency conf 0.90 ✓ Repobility [MINED115] Action `Shopify/shopify-cla-action` pinned to mutable ref `@v1`: `uses: Shopify/shopify-cla-action@v1` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate.
Replace with: `uses: Shopify/shopify-cla-action@<40-char-sha> # v1` and let Dependabot bump it on a scheduled cadence.
.github/workflows/cla.yml:19 dependencylegacy
high Legacy software dependency conf 0.90 ✓ Repobility [MINED115] Action `Shopify/snapit` pinned to mutable ref `@v0.0.14`: `uses: Shopify/[email protected]` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions/changed-files compromise (2025) instantly affect ~23K repos. Pin to a 40-char commit SHA + lock with Dependabot or renovate.
Replace with: `uses: Shopify/snapit@<40-char-sha> # v0.0.14` and let Dependabot bump it on a scheduled cadence.
.github/workflows/snapit.yml:22 dependencylegacy
low Legacy software xss conf 1.00 [SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflected XSS vector. The browser parses the HTML and executes any <script> or event-handler attributes in the data. CWE-79. Especially dangerous when the data comes from a CV parser, profile field, or any user-input pipeline.
For plain text: use el.textContent = data.value (auto-escapes). For HTML you need to render: el.innerHTML = DOMPurify.sanitize(html). For React/Vue/Svelte: stop using innerHTML; use the framework's binding. When data comes from CV/PDF parsers, sanitize at the parser boundary too.
polaris-tokens/scripts/toStyleSheet.ts:53 xsslegacy
low Legacy software xss conf 1.00 [SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflected XSS vector. The browser parses the HTML and executes any <script> or event-handler attributes in the data. CWE-79. Especially dangerous when the data comes from a CV parser, profile field, or any user-input pipeline.
For plain text: use el.textContent = data.value (auto-escapes). For HTML you need to render: el.innerHTML = DOMPurify.sanitize(html). For React/Vue/Svelte: stop using innerHTML; use the framework's binding. When data comes from CV/PDF parsers, sanitize at the parser boundary too.
polaris-react/src/components/Image/Image.tsx:25 xsslegacy
low Legacy software xss conf 1.00 [SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflected XSS vector. The browser parses the HTML and executes any <script> or event-handler attributes in the data. CWE-79. Especially dangerous when the data comes from a CV parser, profile field, or any user-input pipeline.
For plain text: use el.textContent = data.value (auto-escapes). For HTML you need to render: el.innerHTML = DOMPurify.sanitize(html). For React/Vue/Svelte: stop using innerHTML; use the framework's binding. When data comes from CV/PDF parsers, sanitize at the parser boundary too.
polaris-migrator/src/cli.ts:73 xsslegacy
low Legacy quality quality conf 1.00 [SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can craft a ReDoS pattern. Ported from eslint-plugin-security detect-non-literal-regexp (Apache-2.0).
Use a literal RegExp or whitelist-validate user input before constructing patterns.
polaris-react/src/components/Picker/Picker.tsx:53 qualitylegacy
low Legacy quality quality conf 1.00 [SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can craft a ReDoS pattern. Ported from eslint-plugin-security detect-non-literal-regexp (Apache-2.0).
Use a literal RegExp or whitelist-validate user input before constructing patterns.
polaris-migrator/src/utilities/matches.ts:69 qualitylegacy
low Legacy quality quality conf 1.00 [SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can craft a ReDoS pattern. Ported from eslint-plugin-security detect-non-literal-regexp (Apache-2.0).
Use a literal RegExp or whitelist-validate user input before constructing patterns.
polaris-migrator/src/utilities/imports.ts:32 qualitylegacy
low Legacy quality quality conf 1.00 [SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived input enables command injection. Ported from eslint-plugin-security detect-child-process (Apache-2.0).
Use execFile / spawn with separate args array; never pass shell strings.
polaris-react/src/components/Picker/Picker.tsx:164 qualitylegacy
low Legacy quality quality conf 1.00 [SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived input enables command injection. Ported from eslint-plugin-security detect-child-process (Apache-2.0).
Use execFile / spawn with separate args array; never pass shell strings.
polaris-react/config/rollup/plugin-styles.js:182 qualitylegacy
low Legacy quality quality conf 1.00 [SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived input enables command injection. Ported from eslint-plugin-security detect-child-process (Apache-2.0).
Use execFile / spawn with separate args array; never pass shell strings.
polaris-react/config/rollup/namespaced-classname.mjs:16 qualitylegacy
high Legacy security path_traversal conf 1.00 [SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../etc/passwd` resolves cleanly.
After joining, re-check containment: `if !strings.HasPrefix(filepath.Clean(joined), filepath.Clean(baseDir)+string(os.PathSeparator)) { error }`. In Node: `path.resolve(base, x); if (!resolved.startsWith(base + path.sep)) throw`.
polaris-migrator/src/utilities/check.ts:51 path_traversallegacy
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in repos/supply_chain_scanner.py:323
Found a known-risky pattern (eval_used). Review and replace if possible.
repos/supply_chain_scanner.py:323 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'eval_used' in repos/threat_engine.py:1732
Found a known-risky pattern (eval_used). Review and replace if possible.
repos/threat_engine.py:1732 owaspeval_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in repos/supply_chain_scanner.py:323
Found a known-risky pattern (exec_used). Review and replace if possible.
repos/supply_chain_scanner.py:323 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'exec_used' in repos/threat_engine.py:1732
Found a known-risky pattern (exec_used). Review and replace if possible.
repos/threat_engine.py:1732 owaspexec_used
high 9-layer security owasp conf 1.00 Insecure pattern 'tls_verify_false' in repos/threat_engine.py:3682
Found a known-risky pattern (tls_verify_false). Review and replace if possible.
repos/threat_engine.py:3682 owasptls_verify_false
medium Legacy security auth conf 0.92 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
Add .repobility/access.yml mapping routes to anonymous, authenticated, owner, admin, and super_admin. Keep business-specific rules in the repo so CI can enforce them.
authlegacy
medium Legacy quality error_handling conf 1.00 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
Log the error or rethrow it. Use console.error() at minimum.
polaris.shopify.com/pages/_app.tsx:30 error_handlinglegacy
low Legacy security deserialization conf 1.00 [SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.
Use yaml.safe_load() instead of yaml.load(). Avoid pickle for untrusted data.
polaris.shopify.com/src/utils/markdown.mjs:9 deserializationlegacy
low Legacy security deserialization conf 1.00 [SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.
Use yaml.safe_load() instead of yaml.load(). Avoid pickle for untrusted data.
polaris-icons/rollup.config.mjs:28 deserializationlegacy
low Legacy security deserialization conf 1.00 [SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.
Use yaml.safe_load() instead of yaml.load(). Avoid pickle for untrusted data.
.eslintrc.js:6 deserializationlegacy
low Legacy security security conf 1.00 [SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blank"> without rel="noopener noreferrer" leaks window.opener to the opened page. The opened page can then run window.opener.location = 'phishing-site' and the parent tab quietly navigates to attacker-controlled content (reverse tabnabbing). OWASP-classic; modern browsers default rel='noopener' for new windows but explicit attribute is still required for compatibility.
Add rel="noopener noreferrer" to every <a target="_blank">: <a href="..." target="_blank" rel="noopener noreferrer">link</a> For dynamically generated links from JS, set rel on the element before appending. Even safe-looking subdomains should harden — costs nothing.
polaris-react/src/components/IndexTable/components/Row/Row.tsx:177 securitylegacy
medium Legacy software open_redirect conf 1.00 [SEC046] Client-side open redirect — window.location = server-supplied URL: Assigning window.location from a server-supplied URL trusts the server endpoint to never return a hostile destination. If that endpoint is ever subverted (compromised admin, JSON injection, MITM on a webhook), users get redirected to a phishing site they trust because the original page is yours. CWE-601 (server-side OR client-side). Complement to server-side SEC030.
Validate the URL is same-origin or on an explicit allowlist before assignment: const u = new URL(serverUrl, location.href); if (u.origin !== location.origin && !ALLOWED.includes(u.host)) return; location.assign(u); Even better: have the server return a path (/checkout/done) instead of a full …
polaris.shopify.com/src/components/InterstitialModal/InterstitialModal.tsx:199 open_redirectlegacy
medium Legacy quality quality conf 1.00 [SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't know real values; the human then forgets to swap them. In production, these break demo flows, send mail to a real example.com host (it's owned by IANA), and leak that the codebase had an AI scaffolding pass.
Move dummy values to fixtures / seed files. In application code, require these to come from config or fail closed. Add a CI grep that rejects 'lorem ipsum' and 'example.com' outside test files.
polaris.shopify.com/pages/examples/data-table-with-fixed-first-columns.tsx:15 qualitylegacy
medium Legacy quality quality conf 1.00 [SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't know real values; the human then forgets to swap them. In production, these break demo flows, send mail to a real example.com host (it's owned by IANA), and leak that the codebase had an AI scaffolding pass.
Move dummy values to fixtures / seed files. In application code, require these to come from config or fail closed. Add a CI grep that rejects 'lorem ipsum' and 'example.com' outside test files.
polaris.shopify.com/pages/examples/data-table-with-all-of-its-elements.tsx:12 qualitylegacy
medium Legacy quality quality conf 1.00 [SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't know real values; the human then forgets to swap them. In production, these break demo flows, send mail to a real example.com host (it's owned by IANA), and leak that the codebase had an AI scaffolding pass.
Move dummy values to fixtures / seed files. In application code, require these to come from config or fail closed. Add a CI grep that rejects 'lorem ipsum' and 'example.com' outside test files.
polaris-react/src/components/Tag/Tag.stories.tsx:68 qualitylegacy
medium Legacy quality quality conf 1.00 [SEC136] AI-typical over-broad exception handler swallowing all errors: Catch-all exception block that silently returns success or no-ops. AI agents reach for this pattern when a flaky test or an unfamiliar API throws — wrap, swallow, return success. Real bugs are masked, observability is destroyed, and callers think the operation worked. CWE-396 (improperly-generalized exception). Distinct from intentional fallback because there's no log line and the success value is fabricated.
Catch the specific exception type, log at error level with full exception info, and return a failure-shaped result. If the operation is genuinely best-effort, log at warning and document why in a comment so the next reader (or scanner) knows.
polaris.shopify.com/playroom/FrameComponent.tsx:44 qualitylegacy
medium 9-layer security auth conf 1.00 Django view `ai_audit_landing` may be unauthenticated — landing/views.py:216
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:216 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `api_cve_feed` may be unauthenticated — repos/alert_views.py:88
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/alert_views.py:88 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `api_stats` may be unauthenticated — repos/roast_views.py:186
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/roast_views.py:186 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `api_webhook_deliveries` may be unauthenticated — repos/webhook_views.py:64
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/webhook_views.py:64 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `api_webhooks` may be unauthenticated — repos/webhook_views.py:53
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/webhook_views.py:53 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `badge_svg` may be unauthenticated — repos/roast_views.py:127
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/roast_views.py:127 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `blog_category` may be unauthenticated — blog/views.py:82
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
blog/views.py:82 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `blog_post` may be unauthenticated — blog/views.py:55
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
blog/views.py:55 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `changelog` may be unauthenticated — landing/views.py:210
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:210 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `cors_preflight` may be unauthenticated — repos/unified_views.py:2236
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/unified_views.py:2236 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `cve_feed` may be unauthenticated — repos/alert_views.py:57
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/alert_views.py:57 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `dataset_detail` may be unauthenticated — blog/views.py:141
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
blog/views.py:141 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `docs` may be unauthenticated — landing/views.py:190
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:190 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `features` may be unauthenticated — landing/views.py:182
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:182 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `file_issue_preview` may be unauthenticated — repos/file_issue/views.py:119
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/file_issue/views.py:119 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `humans_txt` may be unauthenticated — landing/views.py:370
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:370 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `install_callback` may be unauthenticated — repos/github_app/views.py:48
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/github_app/views.py:48 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `install_page` may be unauthenticated — repos/github_app/views.py:39
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/github_app/views.py:39 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `integrate_page` may be unauthenticated — landing/views.py:396
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:396 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `llms_txt` may be unauthenticated — landing/views.py:293
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:293 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `pricing` may be unauthenticated — landing/views.py:176
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:176 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `privacy_policy` may be unauthenticated — landing/views.py:198
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:198 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `quality_badge` may be unauthenticated — repos/badge_views.py:65
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/badge_views.py:65 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `repobility_badge` may be unauthenticated — repos/badge_views.py:194
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/badge_views.py:194 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `roast_api_status` may be unauthenticated — repos/roast_views.py:60
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/roast_views.py:60 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `roast_page` may be unauthenticated — repos/roast_views.py:25
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/roast_views.py:25 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `roast_result_page` may be unauthenticated — repos/roast_views.py:68
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/roast_views.py:68 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `scan_detail_v2_json` may be unauthenticated — rp/views.py:69
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
rp/views.py:69 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `scan_detail_v2` may be unauthenticated — rp/views.py:19
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
rp/views.py:19 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `security_badge` may be unauthenticated — repos/badge_views.py:102
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/badge_views.py:102 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `security_page` may be unauthenticated — landing/views.py:206
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:206 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `security_txt` may be unauthenticated — landing/views.py:358
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:358 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `service_api_key` may be unauthenticated — repos/api_views.py:80
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/api_views.py:80 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `terms_of_service` may be unauthenticated — landing/views.py:202
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
landing/views.py:202 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `trend_ingest` may be unauthenticated — repos/trend_views.py:12
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/trend_views.py:12 authowaspauth.django.unauth_view
medium 9-layer security auth conf 1.00 Django view `trend_list` may be unauthenticated — repos/trend_views.py:8
Function-view with `request` parameter has no `@login_required` or equivalent auth decorator within 5 lines above. If auth is enforced by middleware (`AUTHENTICATION_BACKENDS`), this is a false positive — dismiss with reason `by_design`.
repos/trend_views.py:8 authowaspauth.django.unauth_view
medium 9-layer security owasp conf 1.00 Insecure pattern 'cors_wildcard' in repos/threat_engine.py:2475
Found a known-risky pattern (cors_wildcard). Review and replace if possible.
repos/threat_engine.py:2475 owaspcors_wildcard
medium 9-layer security owasp conf 1.00 Insecure pattern 'dangerous_innerhtml' in repos/threat_engine.py:4164
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
repos/threat_engine.py:4164 owaspdangerous_innerhtml
medium 9-layer security owasp conf 1.00 Insecure pattern 'subprocess_shell_true' in repos/threat_engine.py:3902
Found a known-risky pattern (subprocess_shell_true). Review and replace if possible.
repos/threat_engine.py:3902 owaspsubprocess_shell_true
medium 9-layer security owasp conf 1.00 Insecure pattern 'weak_hash' in repos/threat_engine.py:3570
Found a known-risky pattern (weak_hash). Review and replace if possible.
repos/threat_engine.py:3570 owaspweak_hash
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for a in …` triggers a query per row — repos/unified.py:762
The loop iterates a Django queryset and accesses `a.registered_at.isoformat` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 qu…
repos/unified.py:762 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for cr in …` triggers a query per row — repos/unified.py:796
The loop iterates a Django queryset and accesses `cr.created_at.strftime` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queri…
repos/unified.py:796 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for fb in …` triggers a query per row — repos/unified.py:344
The loop iterates a Django queryset and accesses `fb.created_at.strftime` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queri…
repos/unified.py:344 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for fb in …` triggers a query per row — repos/unified.py:778
The loop iterates a Django queryset and accesses `fb.created_at.strftime` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queri…
repos/unified.py:778 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for fi in …` triggers a query per row — repos/monitoring_tasks.py:1355
The loop iterates a Django queryset and accesses `fi.repo_full_name.partition` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 …
repos/monitoring_tasks.py:1355 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for fi in …` triggers a query per row — repos/unified_views.py:2890
The loop iterates a Django queryset and accesses `fi.filed_at.isoformat` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 querie…
repos/unified_views.py:2890 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for r in …` triggers a query per row — scanner/templatetags/scanner_panel.py:155
The loop iterates a Django queryset and accesses `r.languages.get` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries inst…
scanner/templatetags/scanner_panel.py:155 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for rc in …` triggers a query per row — repos/unified_views.py:1866
The loop iterates a Django queryset and accesses `rc.last_updated_at.isoformat` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2…
repos/unified_views.py:1866 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for repo in …` triggers a query per row — repos/management/commands/backfill_remediation_tasks.py:22
The loop iterates a Django queryset and accesses `repo.findings.filter` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries…
repos/management/commands/backfill_remediation_tasks.py:22 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for repo in …` triggers a query per row — repos/management/commands/cleanup_duplicate_structural_findings.py:33
The loop iterates a Django queryset and accesses `repo.findings.filter` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries…
repos/management/commands/cleanup_duplicate_structural_findings.py:33 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for repo in …` triggers a query per row — repos/monitoring_tasks.py:1555
The loop iterates a Django queryset and accesses `repo.full_name.partition` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 que…
repos/monitoring_tasks.py:1555 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Likely N+1 query: `for s in …` triggers a query per row — repos/unified_views.py:3787
The loop iterates a Django queryset and accesses `s.taken_at.isoformat` per row, which fires an additional database query each iteration. Add `.select_related('<fk_field>')` for FK / O2O relations or `.prefetch_related('<m2m_or_reverse>')` for many-related lookups, to load everything in 1-2 queries…
repos/unified_views.py:3787 integrityn-plus-oneperformance
medium 9-layer quality integrity conf 1.00 Network/subprocess call without timeout or try/except — repos/monitoring_tasks.py:295
`requests.get(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
integrityfragile-runtimerobustness
medium 9-layer quality integrity conf 1.00 Network/subprocess call without timeout or try/except — repos/threat_engine.py:4661
`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries.
integrityfragile-runtimerobustness
low Legacy security auth conf 0.76 [AUC005] No authorization-focused tests detected: No test files with common authorization, ownership, 403, admin, or super_admin assertions were found.
Add regression tests for anonymous denial, cross-user object denial, admin role limits, and super_admin-only behavior.
authlegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/VideoThumbnail/VideoThumbnail.stories.tsx:34 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/VideoThumbnail/VideoThumbnail.stories.tsx:7 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/UnstyledButton/UnstyledButton.tsx:21 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/TopBar/TopBar.tsx:86 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Toast/Toast.stories.tsx:221 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/utilities.ts:4 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/components/TabMeasurer/TabMeasurer.tsx:15 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/components/Tab/components/RenameModal/RenameModal.tsx:100 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/components/Tab/components/RenameModal/RenameModal.tsx:48 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/components/Tab/components/DuplicateModal/DuplicateModal.tsx:101 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/components/Panel/Panel.tsx:4 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/components/List/List.tsx:11 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Tabs/Tabs.tsx:306 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Sheet/Sheet.stories.tsx:322 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Sheet/Sheet.stories.tsx:166 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/SelectAllActions/SelectAllActions.tsx:41 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Popover/Popover.stories.tsx:407 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Picker/components/SearchField/SearchField.tsx:26 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Picker/Picker.tsx:99 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Modal/Modal.stories.tsx:36 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/LegacyCard/LegacyCard.stories.tsx:373 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/Combobox/Combobox.stories.tsx:17 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/ColorPicker/components/HuePicker/HuePicker.tsx:15 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/BulkActions/components/BulkActionsMeasurer/BulkActionsMeasurer.tsx:61 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-react/src/components/BulkActions/components/BulkActionsMeasurer/BulkActionsMeasurer.tsx:32 qualitylegacy
high Legacy quality quality conf 0.86 Duplicated implementation block across source files
Extract the shared behavior into one function/module or delete the inactive duplicate after proving which path is used.
polaris-migrator/jest.config.js:1 qualitylegacy
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: blog/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: dashboard/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: landing/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repobility/celery.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repobility/settings.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repobility/settings_dev.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repobility/settings_test.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repobility/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repobility/wsgi.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repos/api_urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repos/confidence.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repos/scoring_config.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: repos/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: rp/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer software dead-code-candidate conf 1.00 File has no detected symbols: scanner/urls.py
Source file with no class/function declarations — possible config, dead code, or scratch file.
dead-code-candidate
low 9-layer cicd supply-chain conf 1.00 GitHub Action is tag-pinned rather than SHA-pinned
actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA.
.github/workflows/ci.yml:16 supply-chaingithub-actionspinned-dependencies
low 9-layer cicd supply-chain conf 1.00 GitHub Action is tag-pinned rather than SHA-pinned
actions/setup-python@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA.
.github/workflows/ci.yml:36 supply-chaingithub-actionspinned-dependencies
low 9-layer quality integrity conf 1.00 Legacy-named symbol `_from_legacy` in repos/rp_read.py:62
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `_queue_legacy` in repos/tasks.py:132
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `_queue_legacy` in repos/unified_views.py:67
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `action_queue_v1` in tests/test_agent_runtime_scanner.py:42
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `broad_copy` in repos/docker_scanner.py:1005
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `eslint_unused` in repos/ai_code_scanner.py:19
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `file_issue_v1` in repos/file_issue/views.py:136
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `get_user_old` in scanner/engine/analyzers/integrity.py:50
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `home_stats_live_v2` in landing/corpus_intelligence_helpers.py:27
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `imported_legacy` in rp/models.py:82
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `r71_build_percentile_cache_v2` in repos/monitoring_tasks.py:2951
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `scan_detail_v2` in rp/urls.py:2
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `scan_detail_v2` in rp/views.py:19
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `test_repo_list_disambiguates_duplicate_names_and_uses_neutral_issue_copy` in tests/test_views.py:79
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `use_copy` in repos/migrate_phase2.py:32
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality integrity conf 1.00 Legacy-named symbol `wiring_unused` in repos/unified.py:133
Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version.
integritylegacy-markerdead-code
low 9-layer quality tests conf 1.00 Low test-to-source ratio
31 tests / 250 src (ratio 0.12).
tests
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: repos/tasks.py:mark_repository_analysis_failed, repos/tasks.py:mark_repository_not_scannable This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separa…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: repos/admin.py:has_delete_permission, repos/admin.py:has_delete_permission This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: blog/views.py:items, blog/views.py:items This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: blog/models.py:save, blog/models.py:save This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: scanner/engine/storage_iface.py:get_scan_cache, scanner/engine/storage_iface.py:get_scan_cache This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're sepa…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: scanner/engine/storage_iface.py:save_scan_cache, scanner/engine/storage_iface.py:save_scan_cache This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're se…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: scanner/engine/storage_iface.py:fingerprint_set, scanner/engine/storage_iface.py:fingerprint_set This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're se…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 2 places
Functions with the same first-5-line body hash: scanner/engine/analyzers/_pyast.py:visit_FunctionDef, scanner/engine/analyzers/_pyast.py:visit_AsyncFunctionDef This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: repos/api_views.py:perform_create, repos/api_views.py:perform_create, repos/api_views.py:perform_create This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why the…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: repos/serializers.py:create, repos/serializers.py:create, repos/serializers.py:create This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate.
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 3 places
Functions with the same first-5-line body hash: blog/models.py:get_absolute_url, blog/models.py:get_absolute_url, blog/models.py:get_absolute_url This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're s…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 4 places
Functions with the same first-5-line body hash: repos/serializers.py:update, repos/serializers.py:update, repos/serializers.py:update, repos/serializers.py:update This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or docum…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 5 places
Functions with the same first-5-line body hash: repos/views.py:repo_task_update, repos/views.py:repo_finding_triage, repos/views.py:repo_automation_update, repos/views.py:repo_heartbeat_now This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hyg…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 5 places
Functions with the same first-5-line body hash: repos/api_views.py:has_object_permission, repos/api_views.py:has_object_permission, repos/api_views.py:has_object_permission, repos/api_views.py:has_object_permission This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see …
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 6 places
Functions with the same first-5-line body hash: repos/sitemaps.py:items, repos/sitemaps.py:items, repos/sitemaps.py:items, repos/sitemaps.py:items This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document why they're …
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 6 places
Functions with the same first-5-line body hash: repos/sitemaps.py:location, repos/sitemaps.py:location, repos/sitemaps.py:location, repos/sitemaps.py:location This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Consolidate or document …
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 6 places
Functions with the same first-5-line body hash: repos/api_views.py:required_scopes, repos/api_views.py:required_scopes, repos/api_views.py:required_scopes, repos/api_views.py:required_scopes This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hy…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 6 places
Functions with the same first-5-line body hash: repos/api_views.py:get_queryset, repos/api_views.py:get_queryset, repos/api_views.py:get_queryset, repos/api_views.py:get_queryset This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see https://jw.hn/ai-code-hygiene). Cons…
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 7 places
Functions with the same first-5-line body hash: repos/corpus_admin.py:has_add_permission, repos/corpus_admin.py:has_add_permission, repos/corpus_admin.py:has_add_permission, repos/corpus_admin.py:has_add_permission This is *the* AI-coder failure mode (4× more duplication in vibe-coded repos — see …
integrityduplicatedry
low 9-layer quality integrity conf 1.00 Near-duplicate function bodies in 7 places
Functions with the same first-5-line body hash: repos/corpus_admin.py:has_delete_permission, repos/corpus_admin.py:has_delete_permission, repos/corpus_admin.py:has_delete_permission, repos/corpus_admin.py:has_delete_permission This is *the* AI-coder failure mode (4× more duplication in vibe-coded …
integrityduplicatedry
low 9-layer software dead-code conf 1.00 Possibly dead Python function: is_actionable_raw_finding
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
repos/tracking.py:84 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: search_endpoints
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
repos/baseline.py:203 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: search_repos
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
repos/baseline.py:227 dead-code
low 9-layer software dead-code conf 1.00 Possibly dead Python function: search_symbols
No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler.
repos/baseline.py:178 dead-code
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /alerts/read/<int:alert_id>/
`repos/alert_views.py` declares `ANY /alerts/read/<int:alert_id>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /alerts/toggle/<int:repo_id>/
`repos/alert_views.py` declares `ANY /alerts/toggle/<int:repo_id>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /api/v1/cve/
`repos/alert_views.py` declares `ANY /api/v1/cve/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /api/v1/webhooks/
`repos/webhook_views.py` declares `ANY /api/v1/webhooks/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /api/v1/webhooks/<int:webhook_id>/deliveries/
`repos/webhook_views.py` declares `ANY /api/v1/webhooks/<int:webhook_id>/deliveries/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consu…
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /badge/<str:owner>/<str:repo>/quality.svg
`repos/badge_views.py` declares `ANY /badge/<str:owner>/<str:repo>/quality.svg` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /badge/<str:owner>/<str:repo>/repobility.svg
`repos/badge_views.py` declares `ANY /badge/<str:owner>/<str:repo>/repobility.svg` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes…
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /badge/<str:owner>/<str:repo>/security.svg
`repos/badge_views.py` declares `ANY /badge/<str:owner>/<str:repo>/security.svg` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes i…
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /dashboard/
`dashboard/urls.py` declares `ANY /dashboard/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /dashboard/alerts/
`repos/alert_views.py` declares `ANY /dashboard/alerts/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /dashboard/findings/
`dashboard/urls.py` declares `ANY /dashboard/findings/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /dashboard/settings/
`dashboard/urls.py` declares `ANY /dashboard/settings/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /dashboard/webhooks/
`repos/webhook_views.py` declares `ANY /dashboard/webhooks/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /dashboard/webhooks/<int:webhook_id>/
`repos/webhook_views.py` declares `ANY /dashboard/webhooks/<int:webhook_id>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /intel/cve-feed/
`repos/alert_views.py` declares `ANY /intel/cve-feed/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/
`repos/urls.py` declares `ANY /repos/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/
`repos/urls.py` declares `ANY /repos/<int:pk>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/automation/
`repos/urls.py` declares `ANY /repos/<int:pk>/automation/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/delete/
`repos/urls.py` declares `ANY /repos/<int:pk>/delete/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/findings/
`repos/urls.py` declares `ANY /repos/<int:pk>/findings/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/findings/<int:finding_id>/triage/
`repos/urls.py` declares `ANY /repos/<int:pk>/findings/<int:finding_id>/triage/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes i…
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/heartbeat/
`repos/urls.py` declares `ANY /repos/<int:pk>/heartbeat/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/onboarding-pr/
`repos/urls.py` declares `ANY /repos/<int:pk>/onboarding-pr/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/prompts/
`repos/urls.py` declares `ANY /repos/<int:pk>/prompts/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/reanalyze/
`repos/urls.py` declares `ANY /repos/<int:pk>/reanalyze/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/request-deep-scan/
`repos/urls.py` declares `ANY /repos/<int:pk>/request-deep-scan/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/run-all/
`repos/urls.py` declares `ANY /repos/<int:pk>/run-all/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/sarif/
`repos/urls.py` declares `ANY /repos/<int:pk>/sarif/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/tasks/<int:task_id>/update/
`repos/urls.py` declares `ANY /repos/<int:pk>/tasks/<int:task_id>/update/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/<int:pk>/toggle-share/
`repos/urls.py` declares `ANY /repos/<int:pk>/toggle-share/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/add/
`repos/urls.py` declares `ANY /repos/add/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/add/url/
`repos/urls.py` declares `ANY /repos/add/url/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/agents/voting/
`repos/urls.py` declares `ANY /repos/agents/voting/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/agents/feedback/
`repos/urls.py` declares `ANY /repos/api/v1/agents/feedback/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/agents/register/
`repos/urls.py` declares `ANY /repos/api/v1/agents/register/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/agents/report/
`repos/urls.py` declares `ANY /repos/api/v1/agents/report/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/cohort/
`repos/urls.py` declares `ANY /repos/api/v1/cohort/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/corpus/stats/
`repos/urls.py` declares `ANY /repos/api/v1/corpus/stats/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/digest/
`repos/urls.py` declares `ANY /repos/api/v1/digest/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/findings/<int:finding_id>/feedback/
`repos/urls.py` declares `ANY /repos/api/v1/findings/<int:finding_id>/feedback/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes i…
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/findings/queue/
`repos/urls.py` declares `ANY /repos/api/v1/findings/queue/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/findings/suggest/
`repos/urls.py` declares `ANY /repos/api/v1/findings/suggest/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/public/alert-signup/
`repos/urls.py` declares `ANY /repos/api/v1/public/alert-signup/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/public/scan/
`repos/urls.py` declares `ANY /repos/api/v1/public/scan/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/public/scan/<str:share_token>/
`repos/urls.py` declares `ANY /repos/api/v1/public/scan/<str:share_token>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/api/v1/rule_calibration/
`repos/urls.py` declares `ANY /repos/api/v1/rule_calibration/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/automation/sweep/
`repos/urls.py` declares `ANY /repos/automation/sweep/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/scan-submit/
`repos/urls.py` declares `ANY /repos/scan-submit/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/scan/<str:share_token>/
`repos/urls.py` declares `ANY /repos/scan/<str:share_token>/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer api wiring conf 1.00 Unused endpoint: ANY /repos/scan/<str:share_token>/report.png
`repos/urls.py` declares `ANY /repos/scan/<str:share_token>/report.png` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code — consider removing or documenting who consumes it.
wiringunused-endpoint
low 9-layer quality complexity conf 1.00 Very large file: blog/bulk_generators.py (2846 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/analyzer.py (2406 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/authz_dataset.py (1655 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/docker_scanner.py (1740 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/models.py (1315 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/monitoring_tasks.py (3025 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/supply_chain_scanner.py (1196 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/threat_engine.py (5673 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/unified_views.py (3867 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low 9-layer quality complexity conf 1.00 Very large file: repos/views.py (1427 lines)
Files with >800 lines often hide complexity hotspots and discourage tests.
complexity
low Legacy quality quality conf 1.00 ✓ Repobility [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
Review and fix per the pattern semantics. See CWE-319 / A02:2021 for context.
polaris.shopify.com/scripts/gen-site-map.ts:22 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
Review and fix per the pattern semantics. See CWE-319 / A02:2021 for context.
polaris.shopify.com/pages/examples/icon-with-custom-svg.tsx:7 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
Review and fix per the pattern semantics. See CWE-319 / A02:2021 for context.
polaris-react/src/components/Icon/Icon.stories.tsx:160 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
Review and fix per the pattern semantics. See CWE-476 / for context.
polaris-react/playground/KitchenSink.tsx:32 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
Review and fix per the pattern semantics. See CWE-476 / for context.
polaris-migrator/src/utilities/jsx.ts:178 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
Review and fix per the pattern semantics. See CWE-476 / for context.
polaris-migrator/src/utilities/imports.ts:51 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
Review and fix per the pattern semantics. See CWE-704 / for context.
polaris.shopify.com/src/components/CodesandboxButton/CodesandboxButton.tsx:55 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
Review and fix per the pattern semantics. See CWE-704 / for context.
polaris-react/src/utilities/merge.ts:33 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
Review and fix per the pattern semantics. See CWE-704 / for context.
polaris-react/src/components/ThemeProvider/ThemeProvider.tsx:22 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED058] React Dangerously Set Html: dangerouslySetInnerHTML bypasses Reacts JSX escaping. Pair with DOMPurify or never use with user data.
Review and fix per the pattern semantics. See CWE-79 / A03:2021 for context.
polaris.shopify.com/pages/_app.tsx:78 qualitylegacy
low Legacy quality quality conf 1.00 ✓ Repobility [MINED058] React Dangerously Set Html: dangerouslySetInnerHTML bypasses Reacts JSX escaping. Pair with DOMPurify or never use with user data.
Review and fix per the pattern semantics. See CWE-79 / A03:2021 for context.
polaris-react/src/components/TextField/components/Resizer/Resizer.tsx:42 qualitylegacy
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/35d5e407-be21-4f07-a11b-d74b3c497e35/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/35d5e407-be21-4f07-a11b-d74b3c497e35/

Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.