{
  "repository": "open-telemetry/opentelemetry-python",
  "ref": "9d1855448d93881823189a3a69fcb9fb660e473d",
  "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-analysis.yml",
          "locator": "jobs.CodeQL-Build.steps[3] (Perform CodeQL Analysis)"
        }
      ],
      "upstream": "https://github.com/github/codeql",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pylint",
      "method": "static_analysis",
      "commands": [
        "pylint {toxinidir}/opentelemetry-api",
        "pylint {toxinidir}/codegen/opentelemetry-codegen-json",
        "pylint {toxinidir}/opentelemetry-sdk",
        "pylint {toxinidir}/opentelemetry-configuration",
        "pylint {toxinidir}/opentelemetry-proto"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/benchmarks.yml",
          "locator": "jobs.sdk-benchmarks.steps[4] (Run tox)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv]"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-api.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-proto-gen-latest.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-protojson-gen-latest.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-codegen-json.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-sdk.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-configuration.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-semantic-conventions.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-getting-started.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-opentracing-shim.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-opencensus-shim.steps[3] (Run tests)"
        }
      ],
      "upstream": "https://github.com/pylint-dev/pylint",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pyright",
      "method": "static_analysis",
      "commands": [
        "pyright --version",
        "pyright"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.typecheck.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:typecheck]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.pyright]"
        }
      ],
      "upstream": "https://github.com/microsoft/pyright",
      "docs": "https://microsoft.github.io/pyright/#/command-line",
      "exit_codes": {
        "0": "no errors",
        "1": "errors reported",
        "2": "fatal error",
        "3": "config file could not be read or parsed",
        "4": "illegal command-line parameters"
      },
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-check",
      "method": "static_analysis",
      "commands": [
        "pre-commit hook ruff"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.ruff"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.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": "sphinx",
      "method": "static_analysis",
      "commands": [
        "sphinx-build -E -a -W -b html -T . _build/html"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docs.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:docs]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        }
      ],
      "upstream": "https://github.com/sphinx-doc/sphinx",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "pytest",
      "method": "testing",
      "commands": [
        "pytest {toxinidir}/opentelemetry-api/tests {posargs}",
        "pytest {toxinidir}/codegen/opentelemetry-codegen-json/tests {posargs}",
        "pytest {toxinidir}/opentelemetry-sdk/tests {posargs}",
        "pytest {toxinidir}/opentelemetry-sdk/benchmarks --benchmark-json={toxinidir}/opentelemetry-sdk/sdk-benchmark.json {posargs}",
        "pytest {toxinidir}/opentelemetry-configuration/tests {posargs}"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/benchmarks.yml",
          "locator": "jobs.sdk-benchmarks.steps[4] (Run tox)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv]"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-api.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-proto-gen-latest.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-protojson-gen-latest.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-codegen-json.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-sdk.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-configuration.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-semantic-conventions.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-getting-started.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-opentracing-shim.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-opencensus-shim.steps[3] (Run tests)"
        }
      ],
      "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": "codespell",
      "method": "formatting",
      "commands": [
        "codespell"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.spellcheck.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:spellcheck]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        },
        {
          "path": ".codespellrc",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/codespell-project/codespell",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ruff-format",
      "method": "formatting",
      "commands": [
        "pre-commit hook ruff-format"
      ],
      "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": "uv-lock",
      "method": "supply_chain",
      "commands": [
        "pre-commit hook uv-lock"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.uv-lock"
        }
      ],
      "upstream": "https://github.com/astral-sh/uv",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "markdown-link-check --verbose --config .github/workflows/check_links_config.json ${changed_files[@]}"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/check-links.yml",
          "locator": "jobs.check-links.steps[3] (Check links on push to main)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "markdown-link-check --verbose --config .github/workflows/check_links_config.json /tmp/new_links.md"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/check-links.yml",
          "locator": "jobs.check-links.steps[4] (Check new links only on pull requests and merge groups)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook rstcheck"
      ],
      "triggers": [
        "pre_commit"
      ],
      "evidence": [
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.rstcheck"
        }
      ],
      "upstream": "https://github.com/rstcheck/rstcheck",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python {toxinidir}/scripts/check_license_header.py"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-license-header-check.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:lint-license-header-check]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python {toxinidir}/scripts/griffe_check.py"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:public-symbols-check]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.public-symbols-check.steps[6] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python {toxinidir}/scripts/public_symbols_checker.py"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:public-symbols-check]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.public-symbols-check.steps[6] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sh -c \"cd tests"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint.yml",
          "locator": "jobs.lint-opentelemetry-test-utils.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:lint-opentelemetry-test-utils]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sh -c \"find {toxinidir} -name \\*.sh"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:shellcheck]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.shellcheck.steps[3] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "type one of added, changed, deprecated, removed, fixed)\")"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/changelog.yml",
          "locator": "jobs.changelog.steps[5] (Validate fragment filenames)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "xargs shellcheck --severity=warning\""
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-otlpexporter.steps[3] (Run tests)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:shellcheck]"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.docker-tests-opencensus.steps[3] (Run tests)"
        },
        {
          "path": ".github/workflows/misc.yml",
          "locator": "jobs.shellcheck.steps[3] (Run tests)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
