{
  "repository": "mastodon/mastodon",
  "ref": "5787639bfce7bc0cb1ed531881cb1a97739e5098",
  "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[3] (Perform CodeQL Analysis)"
        }
      ],
      "upstream": "https://github.com/github/codeql",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "eslint",
      "method": "static_analysis",
      "commands": [
        "eslint . --cache --fix",
        "eslint --cache --report-unused-disable-directives"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.fix:js"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:js"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: eslint"
        },
        {
          "path": "eslint.config.mjs",
          "locator": "config file"
        },
        {
          "path": "streaming/eslint.config.mjs",
          "locator": "config file"
        }
      ],
      "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": false
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [
        "tsc --noEmit"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-js.yml",
          "locator": "jobs.lint.steps[3] (Typecheck)"
        },
        {
          "path": "package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        },
        {
          "path": "streaming/package.json",
          "locator": "scripts.typecheck"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: typescript"
        },
        {
          "path": "streaming/package.json",
          "locator": "devDependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "analyze (language: 3)"
      ],
      "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": "vitest",
      "method": "testing",
      "commands": [
        "vitest --project=legacy-tests",
        "vitest --project=storybook"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-js.yml",
          "locator": "jobs.test.steps[2] (JavaScript testing)"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:js"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        },
        {
          "path": "package.json",
          "locator": "scripts.test:storybook"
        },
        {
          "path": "package.json",
          "locator": "devDependencies: vitest"
        },
        {
          "path": "vitest.config.mts",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/vitest-dev/vitest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "for-each-ref --format=%(refname:short) refs/remotes/origin/stable-*.*"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/build-releases.yml",
          "locator": "jobs.check-latest-stable.steps[1] (Check latest stable)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "formatjs extract app/javascript/**/*.{js,jsx,ts,tsx} config/vite/plugin-sw-locales.mts --ignore **/*.d.ts --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/check-i18n.yml",
          "locator": "jobs.check-i18n.steps[3] (Check for missing strings in English JSON)"
        },
        {
          "path": "package.json",
          "locator": "scripts.i18n:extract"
        }
      ],
      "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.format"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "oxfmt --check"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/format-check.yml",
          "locator": "jobs.lint.steps[2] (Check formatting)"
        },
        {
          "path": "package.json",
          "locator": "scripts.format:check"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "stylelint **/*.{css,scss}"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/lint-css.yml",
          "locator": "jobs.lint.steps[2] (Stylelint)"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint:css"
        },
        {
          "path": "package.json",
          "locator": "scripts.lint"
        },
        {
          "path": "package.json",
          "locator": "scripts.test"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "stylelint --fix **/*.{css,scss}"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "package.json",
          "locator": "scripts.fix:css"
        },
        {
          "path": "package.json",
          "locator": "scripts.fix"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
