{
  "repository": "getsentry/sentry",
  "ref": "4ae857064e19900c757163602268f236a5d16153",
  "methods": [
    {
      "slug": "formal",
      "title": "Formal verification and model checking"
    },
    {
      "slug": "static_analysis",
      "title": "Static analysis"
    },
    {
      "slug": "testing",
      "title": "Testing"
    },
    {
      "slug": "formatting",
      "title": "Formatting and hygiene"
    },
    {
      "slug": "supply_chain",
      "title": "Supply chain"
    },
    {
      "slug": "unclassified",
      "title": "Unclassified"
    }
  ],
  "verifications": [
    {
      "tool": "codeql",
      "method": "static_analysis",
      "commands": [
        "uses github/codeql-action/analyze"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeql.yml",
          "locator": "jobs.analyze.steps[2] (Perform CodeQL Analysis)"
        }
      ],
      "upstream": "https://github.com/github/codeql",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "flake8",
      "method": "static_analysis",
      "commands": [
        "flake8 --select=S"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.flake8-sentry"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: flake8"
        }
      ],
      "upstream": "https://github.com/PyCQA/flake8",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "mypy",
      "method": "static_analysis",
      "commands": [
        "mypy"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.typing.steps[4]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.mypy]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: mypy"
        }
      ],
      "upstream": "https://github.com/python/mypy",
      "docs": "https://mypy.readthedocs.io/en/stable/command_line.html",
      "exit_codes": {
        "0": "no type errors",
        "1": "type errors found",
        "2": "crash or invalid invocation"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "ruff check --force-exclude --fix --quiet"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff-check"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.ruff]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[dependency-groups] dev: ruff"
        }
      ],
      "upstream": "https://github.com/astral-sh/ruff",
      "docs": "https://docs.astral.sh/ruff/linter/#exit-codes",
      "exit_codes": {
        "0": "no violations",
        "1": "violations found",
        "2": "invalid configuration, CLI options or internal error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "shellcheck",
      "method": "static_analysis",
      "commands": [
        "pre-commit hook shellcheck"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.shellcheck"
        }
      ],
      "upstream": "https://github.com/koalaman/shellcheck",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc --build tsconfig.json static/app/serviceWorker/worker/tsconfig.json --builders 2"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.typescript.steps[3] (tsc)"
        },
        {
          "path": "package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "eslint",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "package.json",
          "locator": "devDependencies: eslint"
        }
      ],
      "upstream": "https://github.com/eslint/eslint",
      "docs": "https://eslint.org/docs/latest/use/command-line-interface#exit-codes",
      "exit_codes": {
        "0": "no errors",
        "1": "linting errors found",
        "2": "configuration problem or internal error"
      },
      "autofix": true,
      "declared_only": true
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "analyze (language: 2)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeql.yml",
          "locator": "jobs.analyze.strategy.matrix"
        }
      ],
      "upstream": "https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "node-test",
      "method": "testing",
      "commands": [
        "node --test .github/workflows/scripts/*.test.{js,ts}",
        "node --test scripts/testCi.test.ts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/development-environment.yml",
          "locator": "jobs.test.steps[2] (Test workflow scripts)"
        },
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.jest-config.steps[2] (Test workspace CI runner)"
        },
        {
          "path": ".github/workflows/jest-balance.yml",
          "locator": "jobs.jest-config.steps[2] (Test workspace CI runner)"
        }
      ],
      "upstream": "https://github.com/nodejs/node",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pytest",
      "method": "testing",
      "commands": [
        "pytest tests/apidocs --reuse-db",
        "pytest $$(find tests -type d -name migrations) -m migrations --migrations --reruns 0 --fail-slow=150s --reuse-db --json-report --json-report-file=.artifacts/pytest.json --json-report-omit=log --junit-xml=.artifacts/pytest.junit.xml -o junit_suite_name=pytest",
        "pytest tests/sentry/backup/test_exhaustive.py tests/sentry/backup/test_exports.py tests/sentry/backup/test_imports.py tests/sentry/runner/commands/test_backup.py --reuse-db --json-report --json-report-file=.artifacts/pytest.monolith-dbs.json --json-report-omit=log --junit-xml=.artifacts/monolith-dbs.junit.xml -o junit_suite_name=monolith-dbs",
        "pytest -c setup.cfg --confcutdir tests/tools tests/tools .github/workflows/scripts --reuse-db -vv --junit-xml=.artifacts/tools.junit.xml -o junit_suite_name=tools",
        "pytest tests/acceptance --reuse-db --json-report --json-report-file=.artifacts/pytest.acceptance.json --json-report-omit=log --junit-xml=.artifacts/acceptance.junit.xml -o junit_suite_name=acceptance"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.api-docs.steps[6] (Run API docs tests)"
        },
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.backend-migration-tests.steps[4] (run tests)"
        },
        {
          "path": "Makefile",
          "locator": "target test-migrations-ci (line 129)"
        },
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.monolith-dbs.steps[2] (Run test)"
        },
        {
          "path": "Makefile",
          "locator": "target test-monolith-dbs (line 153)"
        },
        {
          "path": ".github/workflows/development-environment.yml",
          "locator": "jobs.test.steps[5] (test-tools)"
        },
        {
          "path": "Makefile",
          "locator": "target test-tools (line 158)"
        },
        {
          "path": "Makefile",
          "locator": "target run-acceptance (line 92)"
        },
        {
          "path": "Makefile",
          "locator": "target test-backend-ci-with-coverage (line 134)"
        },
        {
          "path": "Makefile",
          "locator": "target test-symbolicator (line 166)"
        },
        {
          "path": "Makefile",
          "locator": "target test-acceptance (line 171)"
        },
        {
          "path": "Makefile",
          "locator": "target test-relay-integration (line 177)"
        }
      ],
      "upstream": "https://github.com/pytest-dev/pytest",
      "docs": "https://docs.pytest.org/en/stable/reference/exit-codes.html",
      "exit_codes": {
        "0": "all tests passed",
        "1": "some tests failed",
        "2": "interrupted by the user",
        "3": "internal error",
        "4": "command line usage error",
        "5": "no tests were collected"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "jest",
      "method": "testing",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/app/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/gsAdmin/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/gsApp/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/oxlint/eslintPluginScraps/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/oxlint/eslintPluginSentry/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/packages/icons/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/packages/scraps/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "static/packages/search-syntax/jest.config.mjs",
          "locator": "config file"
        },
        {
          "path": "tests/js/jest.config.mjs",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/jestjs/jest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "pre-commit-hooks",
      "method": "formatting",
      "commands": [
        "pre-commit hook check-case-conflict",
        "pre-commit hook check-executables-have-shebangs",
        "pre-commit hook check-merge-conflict",
        "pre-commit hook check-yaml",
        "pre-commit hook end-of-file-fixer"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-case-conflict"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-executables-have-shebangs"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-merge-conflict"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-yaml"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.end-of-file-fixer"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.trailing-whitespace"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.debug-statements"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-added-large-files"
        }
      ],
      "upstream": "https://github.com/pre-commit/pre-commit-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "ruff-format",
      "method": "formatting",
      "commands": [
        "ruff format --force-exclude --quiet"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff-format"
        }
      ],
      "upstream": "https://github.com/astral-sh/ruff",
      "docs": "https://docs.astral.sh/ruff/formatter/#exit-codes",
      "exit_codes": {
        "0": "already formatted",
        "1": "files would be reformatted (--check)",
        "2": "error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bash -c test \"$PRE_COMMIT_REMOTE_BRANCH\" != \"refs/heads/master\""
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.prevent-push"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "bno_type_checkb"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-mypy-bypass"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "codeowners-coverage check --allow-dirty-baseline"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeowners-coverage.yml",
          "locator": "jobs.check-coverage.steps[3] (Run CODEOWNERS coverage check)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "decision-model-linter --config decisionModelLinter.config.ts --base HEAD^1 --format markdown > $report"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/decision-model-lint.yml",
          "locator": "jobs.lint.steps[2] (lint)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "inspect postgres-postgres-1 --format {{.Config.Image}})"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.backend-test.steps[4] (Reconnect postgres via Unix socket)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node --input-type=module <<NODE"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/prune-oxlint-suppressions.yml",
          "locator": "jobs.prune.steps[3] (Bundle suppression budgets)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node ./watch.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target watch-api-docs (line 54)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node .github/workflows/scripts/format-type-coverage-comment.ts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/type-coverage-diff.yml",
          "locator": "jobs.type-coverage-diff.steps[4] (Format comment)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node api-docs/index.ts .artifacts/investigation-api-docs/openapi.json .artifacts/investigation-api-docs/openapi-derefed.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target build-investigation-api-docs (line 43)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node api-docs/index.ts api-docs/openapi.json tests/apidocs/openapi-deprecated.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target build-deprecated-docs (line 34)"
        },
        {
          "path": "package.json",
          "locator": "scripts.build-deprecated-docs"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node api-docs/index.ts tests/apidocs/openapi-spectacular.json tests/apidocs/openapi-derefed.json"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/openapi-diff.yml",
          "locator": "jobs.check-diff.steps[5] (Build OpenAPI Derefed JSON)"
        },
        {
          "path": "Makefile",
          "locator": "target build-api-docs (line 38)"
        },
        {
          "path": "package.json",
          "locator": "scripts.deref-api-docs"
        },
        {
          "path": ".github/workflows/openapi.yml",
          "locator": "jobs.build_and_deref_json.steps[6] (Build OpenAPI Derefed JSON)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node api-docs/openapi-diff.ts"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target diff-api-docs (line 57)"
        },
        {
          "path": "package.json",
          "locator": "scripts.diff-docs"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/lint.ts css"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.oxlint.steps[8] (stylelint (workspace packages))"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:css"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/lint.ts css --quiet"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.stylelint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/lint.ts js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.oxlint.steps[6] (oxlint (all files))"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:js"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix:oxlint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/lint.ts js --quiet --fix --no-error-on-unmatched-pattern"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.oxlint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/oxlint-suppressions.ts"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.oxlint.steps[3] (Verify lint ratchet)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:suppressions"
        },
        {
          "path": ".github/workflows/pre-commit.yml",
          "locator": "jobs.lint.steps[9] (Prune suppression budgets)"
        },
        {
          "path": ".github/workflows/prune-oxlint-suppressions.yml",
          "locator": "jobs.prune.steps[2] (Prune suppression budgets)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:js:root"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/testCi.js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.jest-tests.steps[3] (jest)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test-ci"
        },
        {
          "path": ".github/workflows/jest-balance.yml",
          "locator": "jobs.jest-balance.steps[4] (jest balancer (shard ${{ matrix.index }}/${{ matrix.total }}))"
        },
        {
          "path": "Makefile",
          "locator": "target test-js-ci (line 119)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/type-coverage-diff.ts"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/type-coverage-diff.yml",
          "locator": "jobs.type-coverage-diff.steps[3] (Run type-coverage-diff)"
        },
        {
          "path": "package.json",
          "locator": "scripts.type-coverage-diff"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node scripts/type-coverage.ts -p tsconfig.json"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.type-coverage"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "node tests/js/test-balancer/combine.ts artifacts"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/jest-balance.yml",
          "locator": "jobs.combine-balance.steps[3] (Combine balance files)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "oxfmt"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.fix"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix:format"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "oxfmt --check"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:format"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook check-github-actions"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-github-actions"
        }
      ],
      "upstream": "https://github.com/python-jsonschema/check-jsonschema",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook check-github-workflows"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-github-workflows"
        }
      ],
      "upstream": "https://github.com/python-jsonschema/check-jsonschema",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook check-symlinks"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-symlinks"
        }
      ],
      "upstream": "https://github.com/pre-commit/pre-commit-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook name-tests-test"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.name-tests-test"
        }
      ],
      "upstream": "https://github.com/pre-commit/pre-commit-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook python-check-blanket-type-ignore"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.python-check-blanket-type-ignore"
        }
      ],
      "upstream": "https://github.com/pre-commit/pygrep-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook python-use-type-annotations"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.python-use-type-annotations"
        }
      ],
      "upstream": "https://github.com/pre-commit/pygrep-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python -b .github/workflows/scripts/pytest-selected.py -n3 tests --reuse-db --ignore tests/acceptance --ignore tests/apidocs --ignore tests/js --ignore tests/tools --quiet"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test-selective (line 139)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python -b .github/workflows/scripts/pytest-selected.py tests --reuse-db --ignore tests/acceptance --ignore tests/apidocs --ignore tests/js --ignore tests/tools --json-report --json-report-file=.artifacts/pytest.json --json-report-omit=log --junit-xml=.artifacts/pytest.junit.xml -o junit_suite_name=pytest"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.backend-test.steps[9] (Run backend test (${{ steps.setup.outputs.matrix-instance-number }} of ${{ steps.setup.outputs.matrix-instance-total }}))"
        },
        {
          "path": "Makefile",
          "locator": "target test-python-ci (line 124)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python .github/workflows/scripts/backend-test-durations.py extract .artifacts/pytest.json .artifacts/test-durations.json"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.backend-test.steps[11] (Extract test durations)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python .github/workflows/scripts/calculate-backend-test-shards.py"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.calculate-shards.steps[3] (Calculate test shards)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python .github/workflows/scripts/compute-sentry-selected-tests.py --coverage-db $COVERAGE_DB --changed-files $CHANGED_FILES --previous-filenames $PREVIOUS_FILENAMES --output .artifacts/selected-tests.txt --github-output"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.select-tests.steps[5] (Compute selected tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python .github/workflows/scripts/compute-sentry-selected-tests.py --coverage-db .cache/coverage.db --changed-files $$(git diff --name-only $$(git merge-base origin/master HEAD)) --output .cache/selected-tests.txt"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test-selective (line 139)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python .github/workflows/scripts/selective-testing/confirm-test-selection.py .cache/selected-tests.txt"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test-selective (line 139)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python .github/workflows/scripts/selective-testing/fetch-coverage.py --output .cache/coverage.db"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test-selective (line 139)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "run-on-changed"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend.yml",
          "locator": "jobs.oxlint.steps[7] (oxlint (impacted files))"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:js:changed"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry --config=test_conf export --help"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.cli.steps[2] (Run test)"
        },
        {
          "path": "Makefile",
          "locator": "target test-cli (line 97)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry --config=test_conf help"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.cli.steps[2] (Run test)"
        },
        {
          "path": "Makefile",
          "locator": "target test-cli (line 97)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry --config=test_conf upgrade --traceback --noinput"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.cli.steps[2] (Run test)"
        },
        {
          "path": "Makefile",
          "locator": "target test-cli (line 97)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry django spectacular --custom-settings sentry.investigations.apidocs.PRIVATE_SCHEMA_SETTINGS --file .artifacts/investigation-api-docs/openapi.json --format openapi-json --validate --fail-on-warn"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target build-investigation-api-docs (line 43)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry django spectacular --file tests/apidocs/openapi-spectacular.json --format openapi-json --validate --fail-on-warn"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target build-spectacular-docs (line 30)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry init test_conf"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.cli.steps[2] (Run test)"
        },
        {
          "path": "Makefile",
          "locator": "target test-cli (line 97)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry-test --bail --findRelatedTests -u"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test-precommit"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry-test --config tests/js/jest.config.snapshots.ts"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/frontend-snapshots.yml",
          "locator": "jobs.snapshots.steps[9] (Run snapshot tests)"
        },
        {
          "path": "package.json",
          "locator": "scripts.snapshots"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry-test --findRelatedTests $(git diff --name-only --cached)"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test-staged"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry-test --runInBand"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.test-debug"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sentry-test --watch"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test-js (line 114)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        },
        {
          "path": "package.json",
          "locator": "scripts.test-all"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sherif --ignore-rule root-package-dependencies"
      ],
      "triggers": [
        "pre_commit",
        "local"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.sherif"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:deps"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "stylelint --config stylelint.config.js --allow-empty-input"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.lint:css:root"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tools.api_urls_to_typescript"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/backend.yml",
          "locator": "jobs.api-url-typescript.steps[3] (Sync API Urls to TypeScript)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tools.lint_requirements"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.lint-requirements"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "tools.mypy_helpers.check_stronglist pyproject.toml"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-mypy-weaklist"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
