{
  "repository": "celery/celery",
  "ref": "5d83c46ebb3f7183998f55fa2e5af0ad0038b278",
  "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": "bandit",
      "method": "static_analysis",
      "commands": [
        "bandit -b bandit.json -r celery/"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.steps[4] (Run tox for \"${{ matrix.python-version }}-unit\"\n)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:bandit]"
        }
      ],
      "upstream": "https://github.com/PyCQA/bandit",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "codeql",
      "method": "static_analysis",
      "commands": [
        "uses github/codeql-action/analyze"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeql-analysis.yml",
          "locator": "jobs.analyze.steps[3] (Perform CodeQL Analysis)"
        }
      ],
      "upstream": "https://github.com/github/codeql",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "flake8",
      "method": "static_analysis",
      "commands": [
        "pre-commit hook flake8"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.flake8"
        }
      ],
      "upstream": "https://github.com/PyCQA/flake8",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "mypy",
      "method": "static_analysis",
      "commands": [
        "pre-commit hook mypy",
        "mypy --config-file pyproject.toml"
      ],
      "triggers": [
        "pre_commit",
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.mypy"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:mypy]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.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": "semgrep",
      "method": "static_analysis",
      "commands": [
        "semgrep ci"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/semgrep.yml",
          "locator": "jobs.semgrep.steps[1]"
        }
      ],
      "upstream": "https://github.com/semgrep/semgrep",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "sphinx",
      "method": "static_analysis",
      "commands": [
        "sphinx-build -j2 -b apicheck -d {envtmpdir}/doctrees docs docs/_build/apicheck",
        "sphinx-build -j2 -b configcheck -d {envtmpdir}/doctrees docs docs/_build/configcheck",
        "sphinx-build -j2 -b linkcheck -d {envtmpdir}/doctrees docs docs/_build/linkcheck"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.steps[4] (Run tox for \"${{ matrix.python-version }}-unit\"\n)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:apicheck]"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:configcheck]"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv:linkcheck]"
        }
      ],
      "upstream": "https://github.com/sphinx-doc/sphinx",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "analyze (language: 1)",
        "Unit (python-version: 6, os: 2)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeql-analysis.yml",
          "locator": "jobs.analyze.strategy.matrix"
        },
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.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": "pytest",
      "method": "testing",
      "commands": [
        "pytest -xsvv {env:TEST_PATH:t/integration} {posargs}",
        "pytest -xsvv {env:TEST_PATH:t/smoke} --reruns 5 --reruns-delay 10 {posargs}"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.steps[4] (Run tox for \"${{ matrix.python-version }}-unit\"\n)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv]"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.pytest]"
        }
      ],
      "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": [
        "pre-commit hook codespell"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.codespell"
        },
        {
          "path": "pyproject.toml",
          "locator": "[tool.codespell]"
        }
      ],
      "upstream": "https://github.com/codespell-project/codespell",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "isort",
      "method": "formatting",
      "commands": [
        "pre-commit hook isort"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.isort"
        }
      ],
      "upstream": "https://github.com/PyCQA/isort",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "pre-commit-hooks",
      "method": "formatting",
      "commands": [
        "pre-commit hook check-merge-conflict",
        "pre-commit hook check-toml",
        "pre-commit hook check-json",
        "pre-commit hook check-yaml",
        "pre-commit hook mixed-line-ending"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-merge-conflict"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-toml"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-json"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.check-yaml"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.mixed-line-ending"
        }
      ],
      "upstream": "https://github.com/pre-commit/pre-commit-hooks",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage report"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.steps[4] (Run tox for \"${{ matrix.python-version }}-unit\"\n)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage run --source=celery -m pytest -vv --maxfail=10 --capture=no -v --junitxml=junit.xml -o junit_family=legacy {posargs}"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.steps[4] (Run tox for \"${{ matrix.python-version }}-unit\"\n)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "coverage xml"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/python-package.yml",
          "locator": "jobs.Unit.steps[4] (Run tox for \"${{ matrix.python-version }}-unit\"\n)"
        },
        {
          "path": "tox.ini",
          "locator": "[testenv]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "cut -f2"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target authorcheck (line 166)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "do sleep 1"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target docker-docs (line 193)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "look for any errors in the above output \" \"or in $(BUILDDIR)/linkcheck/output.txt.\""
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "docs/Makefile",
          "locator": "target linkcheck (line 191)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook pyupgrade"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.pyupgrade"
        }
      ],
      "upstream": "https://github.com/asottile/pyupgrade",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit hook yesqa"
      ],
      "triggers": [
        "pre_commit",
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/linter.yml",
          "locator": "jobs.linter.steps[1] (Run pre-commit)"
        },
        {
          "path": ".pre-commit-config.yaml",
          "locator": "hooks.yesqa"
        }
      ],
      "upstream": "https://github.com/asottile/yesqa",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "pre-commit {posargs:run --all-files --show-diff-on-failure}"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "tox.ini",
          "locator": "[testenv:lint]"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python ./changelog_formatter.py --clipboard"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "docs/Makefile",
          "locator": "target changelog (line 235)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "python setup.py test"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target test (line 144)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "timeout 60 sh -c 'until docker logs $$(docker compose -f docker/docker-compose.yml ps -q docs) 2>&1"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target docker-docs (line 193)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
