{"id":"634b3a8c-eca9-42d2-be68-43052b27ee4a","timestamp":1775246780430,"matcher":{"static":{"/schedule-demo":{"redirect":"/contact/sales"},"/contact/enterprise-trial":{"redirect":"/contact/sales"},"/code-analysis":{"redirect":"/platform/code-quality"},"/code-quality":{"redirect":"/platform/code-quality"},"/code-review":{"redirect":"/platform/code-quality"},"/enterprise":{"redirect":"/platform/self-hosted"},"/platform/autofix":{"redirect":"/platform/ai"},"/platform/ide":{"redirect":"/platform/ai"},"/platform/static-analysis":{"redirect":"/platform/code-quality"},"/sca":{"redirect":"/platform/sca"},"/ai":{"redirect":"/platform/ai"},"/security":{"redirect":"https://trust.deepsource.com"},"/login":{"redirect":"https://app.deepsource.io/login"},"/signup":{"redirect":"https://app.deepsource.io/signup"},"/gh-education":{"redirect":"/"},"/blog/notes-on-ai-code-review-benchmarks":{"redirect":"/blog/ai-code-review-benchmarks"}},"wildcard":{},"dynamic":{}},"prerendered":["/schedule/discovery","/","/customers","/benchmarks","/pricing","/blog/deepsource-next","/platform/sast","/platform/sca","/platform/code-quality","/platform/iac-security","/platform/code-coverage","/directory","/blog","/platform/ai","/changelog","/glossary","/legal/terms","/legal/privacy","/product-demo","/legal/acceptable-use","/legal/pilot-evaluation","/sonarqube-alternatives","/checkmarx-alternatives","/veracode-alternatives","/snyk-alternatives","/semgrep-alternatives","/codeclimate-alternatives","/codacy-alternatives","/about","/contact/sales","/customers/ancestry","/customers/babbel","/jobs","/customers/omnigo","/customers/code-exitos","/customers/dgraph","/customers/dvc","/customers/grid-ai","/customers/masonite","/customers/nasa","/customers/okteto","/customers/qubole","/changelog/2026-02-23","/directory/java","/directory/go","/directory/ansible","/directory/cfn-lint","/directory/csharp","/directory/python","/directory/javascript","/directory/cxx","/directory/docker","/directory/kotlin","/directory/ruby","/directory/kube-linter","/directory/dart-analyze","/blog/litellm-supply-chain-attack","/directory/php","/blog/byok","/blog/deepsource-cli-with-agents","/blog/ai-code-review-benchmarks","/blog/secrets-detection-hybrid-ai-agent","/blog/vanta-sca","/blog/autofix-ai","/blog/deepsource-sca","/blog/sca-pricing","/blog/why-deepsource-sca","/blog/from-zero-to-secure","/blog/support-for-bitbucket-data-center","/blog/community-analyzers","/blog/introducing-runner","/blog/introducing-deepsource-for-kotlin","/blog/monorepos","/blog/deepsource-vanta-integration-soc2","/blog/swift-static-analysis","/blog/pinned-reports","/blog/azure-devops-services","/blog/ruby-wasi-support","/blog/improve-security-posture-with-sast","/blog/reports","/blog/custom-marshalers-in-go","/blog/balancing-code-quality-dev-productivity","/blog/guide-to-sast","/blog/software-development-business-strategy","/blog/debugging-heisenbugs","/blog/ruby-percent-notation","/blog/go-1-18-generics-implementation","/blog/problems-and-pains-in-parsing","/blog/engineering-manager-guide-to-static-analysis","/blog/reintroducing-deepsource","/blog/roslyn-clr-implementation","/blog/integration-with-gitlab-pipelines","/blog/jvm-method-invocation-control-flow","/blog/monadic-parser-combinators","/blog/python-3-11-whats-new","/blog/lightweight-linting","/blog/soc2","/blog/nodejs-worker-threads","/blog/dont-use-math-random","/blog/release-csharp-beta","/blog/dynamic-values","/blog/rust-remove-dir-all-vulnerability","/blog/python-asts-by-building-your-own-linter","/blog/deepsource-hack-n-camp-21","/blog/deepsource-2021-in-review","/blog/apache-log4j-log4shell-vulnerability","/blog/release-php-beta","/blog/hacktoberfest-21","/blog/release-rust-beta","/blog/python-3-10-whats-new","/blog/tailscale-at-deepsource","/blog/python-3-9-whats-new","/blog/release-scala-beta","/blog/announcing-deepsource-next-21","/blog/announcing-deepsource-startup-program","/blog/javascript-code-quality-best-practices","/blog/java-code-review-guidelines","/blog/python-code-review-checklist","/blog/common-antipatterns-in-go","/blog/conversation-on-code-quality-with-badri","/blog/common-mistakes-in-go","/blog/auto-code-formatting-python","/blog/static-analysis-ci-ruby","/blog/python-security-pitfalls","/blog/release-java-beta","/blog/ruby-dev-best-practices-for-beginners","/blog/static-analysis-javascript","/blog/ruby-security-pitfalls","/blog/using-state-machine-to-write-bug-free-code","/blog/python-code-formatters","/blog/ruby-general-availability-release","/blog/hacktoberfest-2020-with-deepsource-discover","/blog/zero-downtime-deployment","/blog/setup-static-analysis-python","/blog/good-code-podcast-episode-4","/blog/django-async-support","/blog/release-js-beta","/blog/code-formatting-on-autopilot","/blog/release-transformers","/blog/release-bitbucket","/blog/glob-file-patterns","/blog/docker-analyzer","/blog/seed-investment","/blog/how-deepsource-ensures-less-false-positives","/blog/good-code-podcast-episode-3","/blog/key-attribute-vue-js","/blog/actionable-issue-reporting","/blog/managing-different-git-profiles","/blog/team-plan-free-private-repos","/blog/git-branch-naming-conventions","/blog/introduction-static-code-analysis","/blog/python-gotchas-to-look-out-for","/blog/reactivity-in-vue","/blog/demystifying-python-descriptor-protocol","/blog/distributed-tracing","/blog/deepsource-discuss","/blog/autofix-future-of-code-reviews","/blog/redis-diskless-replication","/blog/release-terraform-static-analysis","/blog/release-repo-onboarding","/blog/ruby-beta-release","/blog/setup-vault-kubernetes","/blog/deepsource-gh-education","/blog/release-improved-issues-interface","/blog/self-referential","/blog/pyconf-hyderabad-2019-report","/blog/go-web-frameworks","/blog/release-go-packages-new-issues","/blog/release-dockerfile-static-analysis","/blog/owasp-top-ten-sensitive-data-exposure","/blog/new-python-web-frameworks","/blog/release-mypy","/blog/pycon-india-2019-report","/blog/release-gitlab","/blog/good-code-podcast-episode-2","/blog/pycon-india-2019-sponsor","/blog/python-performance-three-easy-tips","/blog/go-beta-release","/blog/test-coverage-release","/blog/go-modules","/blog/python-positional-only-arguments","/blog/good-code-podcast-episode-1","/blog/owasp-top-ten-broken-auth","/blog/python-walrus-operator","/blog/good-first-issue-aug-2019","/blog/release-ignore-issues-in-test-files","/blog/masonite-q-and-a-joe","/blog/releases-silence-issues-in-code","/blog/owasp-top-ten-injection","/blog/python-3-8-whats-new","/blog/python-common-mistakes","/blog/release-granular-diffs","/blog/releases-issue-actions","/blog/release-march-2019","/blog/8-new-python-antipatterns","/blog/events-bangalore-march-2019","/blog/code-review-best-practices","/blog/git-best-practices","/blog/exponential-cost-of-fixing-bugs","/blog/6-benefits-continuous-quality","/blog/importance-of-software-documentation","/blog/what-is-technical-debt","/changelog/2026-03-31","/changelog/2026-03-27","/changelog/2026-03-20","/changelog/2026-03-06","/changelog/2026-01-22","/changelog/2025-12-15","/changelog/2025-11-03","/changelog/2025-06-25","/changelog/2025-05-27","/changelog/2025-04-07","/changelog/2025-02-21","/changelog/2025-01-29","/changelog/jan-25-2025","/changelog/aug-5-2024","/changelog/may-13-2024","/changelog/jan-17-2024","/changelog/nov-14-2023","/changelog/sep-26-2023","/changelog/aug-21-2023","/changelog/jun-28-2023","/changelog/jun-1-2023","/changelog/may-13-2023","/changelog/apr-27-2023","/changelog/apr-21-2023","/changelog/mar-30-2023","/changelog/mar-16-2023","/changelog/feb-22-2023","/changelog/feb-13-2023","/changelog/jan-25-2023","/changelog/jan-17-2023","/changelog/dec-23-2022","/changelog/dec-16-2022","/changelog/dec-9-2022","/changelog/dec-2-2022","/changelog/nov-25-2022","/changelog/nov-18-2022","/changelog/may-24-2022","/changelog/may-9-2024","/changelog/apr-26-2022","/changelog/apr-11-2022","/changelog/mar-28-2022","/changelog/apr-5-2022","/changelog/jan-24-2022","/changelog/jan-10-2022","/glossary/ast","/glossary/agile-software-development","/glossary/ai-code-review","/glossary/alpha-testing","/glossary/application-programming-interface","/glossary/backtracking","/glossary/asynchronous-programming","/glossary/bdd","/glossary/beta-testing","/glossary/blackbox-testing","/glossary/code-refactoring","/glossary/code-smell","/glossary/command-line-interface","/glossary/container-security","/glossary/continuous-delivery","/glossary/continuous-integration","/glossary/continuous-quality","/glossary/cross-browser-testing","/glossary/cve","/glossary/cwe","/glossary/cyclomatic-complexity","/glossary/data-abstraction","/glossary/dast","/glossary/dependency-graph","/glossary/dependency-hell","/glossary/dns","/glossary/dynamic-analysis","/glossary/dynamic-programming","/glossary/exception-handling","/glossary/false-positive-rate","/glossary/functional-programming","/glossary/git","/glossary/hybrid-code-analysis","/glossary/ide","/glossary/incremental-development","/glossary/infrastructure-as-code-security","/glossary/integration-testing","/glossary/iterative-development","/glossary/json","/glossary/machine-learning","/glossary/mcp","/glossary/memory-safety","/glossary/object-oriented-programming","/glossary/owasp-top-10","/glossary/pair-programming","/glossary/performance-testing","/glossary/pr-report-card","/glossary/procedural-programming","/glossary/pseudocode","/glossary/rapid-prototyping","/glossary/reachability-analysis","/glossary/reactive-programming","/glossary/regression-testing","/glossary/sans-top-25","/glossary/sast","/glossary/sast-vs-dast","/glossary/sca","/glossary/shift-left-security","/glossary/smoke-testing","/glossary/software-rot","/glossary/static-analysis","/glossary/spaghetti-code","/glossary/structured-programming","/glossary/supply-chain-security","/glossary/synchronous-programming","/glossary/taint-analysis","/glossary/technical-debt","/glossary/test-coverage","/glossary/unit-testing","/glossary/test-driven-development","/glossary/usability-testing","/glossary/user-acceptance-testing","/glossary/vulnerability-management","/glossary/version-control-system","/glossary/waterfall-methodology","/glossary/web-framework","/glossary/whitebox-testing","/glossary/xml","/glossary/yaml","/glossary/zero-trust-security","/legal/msa","/coderabbit-alternatives","/greptile-alternatives"]}