{
  "repository": "traefik/traefik",
  "ref": "38d53dd06c53c7e9bd08e57b217e72686d823610",
  "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[4] (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 ./src/**/*.{ts,tsx}",
        "eslint --fix ./src/**/*.{ts,tsx}"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "webui/package.json",
          "locator": "scripts.build:prod"
        },
        {
          "path": "webui/package.json",
          "locator": "scripts.lint"
        },
        {
          "path": "webui/package.json",
          "locator": "scripts.lint:fix"
        },
        {
          "path": "webui/package.json",
          "locator": "dependencies: eslint"
        },
        {
          "path": "webui/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": "golangci-lint",
      "method": "static_analysis",
      "commands": [
        "uses golangci/golangci-lint-action",
        "golangci-lint run"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/validate.yaml",
          "locator": "jobs.lint.steps[4] (golangci-lint)"
        },
        {
          "path": "Makefile",
          "locator": "target lint (line 134)"
        },
        {
          "path": ".golangci.yml",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/golangci/golangci-lint",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "mkdocs",
      "method": "static_analysis",
      "commands": [
        "mkdocs build --strict"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/check_doc.yaml",
          "locator": "jobs.docs.steps[4] (Build documentation)"
        }
      ],
      "upstream": "https://github.com/mkdocs/mkdocs",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "tsc",
      "method": "static_analysis",
      "commands": [],
      "triggers": [],
      "evidence": [
        {
          "path": "webui/package.json",
          "locator": "dependencies: typescript"
        }
      ],
      "upstream": "https://github.com/microsoft/TypeScript",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": true
    },
    {
      "tool": "ci-matrix",
      "method": "testing",
      "commands": [
        "analyze (language: 2)",
        "test-integration (parallel: 1, index: 12)"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/codeql.yml",
          "locator": "jobs.analyze.strategy.matrix"
        },
        {
          "path": ".github/workflows/test-integration.yaml",
          "locator": "jobs.test-integration.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": "go-test",
      "method": "testing",
      "commands": [
        "go test ./integration -v -tags gatewayAPIConformanceMerged -test.run GatewayAPIConformanceMergedSuite -traefikVersion=v3.8 $(TESTFLAGS)",
        "go test ./integration -v -tags gatewayAPIConformance -test.run GatewayAPIConformanceSuite -traefikVersion=v3.8 $(TESTFLAGS)",
        "go test -c -o /dev/null ./integration",
        "gotestsum --junitfile shard-$EXPR-results.xml --packages ./integration -- -test.timeout=20m -v -run ${TESTS}",
        "go test ./integration/integration_test.go ./integration/knative_conformance_test.go -v -tags knativeConformance -test.run KnativeConformanceSuite"
      ],
      "triggers": [
        "ci",
        "local"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-gateway-api-conformance-merged.yaml",
          "locator": "jobs.test-gateway-api-conformance-merged.steps[3] (Gateway API conformance merged test and report)"
        },
        {
          "path": "Makefile",
          "locator": "target test-gateway-api-conformance-merged (line 111)"
        },
        {
          "path": ".github/workflows/test-gateway-api-conformance.yaml",
          "locator": "jobs.test-gateway-api-conformance.steps[3] (Gateway API conformance test and report)"
        },
        {
          "path": "Makefile",
          "locator": "target test-gateway-api-conformance (line 100)"
        },
        {
          "path": ".github/workflows/test-integration.yaml",
          "locator": "jobs.build.steps[6] (Pre-compile integration test binaries)"
        },
        {
          "path": ".github/workflows/test-integration.yaml",
          "locator": "jobs.test-integration.steps[11] (Run Integration tests)"
        },
        {
          "path": ".github/workflows/test-knative-conformance.yaml",
          "locator": "jobs.test-knative-conformance.steps[5] (Knative conformance test)"
        },
        {
          "path": "Makefile",
          "locator": "target test-knative-conformance (line 117)"
        },
        {
          "path": ".github/workflows/test-unit.yaml",
          "locator": "jobs.test-unit.steps[2] (Run unit tests)"
        },
        {
          "path": "Makefile",
          "locator": "target test-unit (line 90)"
        },
        {
          "path": "Makefile",
          "locator": "target test-integration (line 95)"
        }
      ],
      "upstream": "https://github.com/golang/go",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "vitest",
      "method": "testing",
      "commands": [
        "vitest run",
        "vitest run --coverage",
        "vitest"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "webui/package.json",
          "locator": "scripts.build:prod"
        },
        {
          "path": "webui/package.json",
          "locator": "scripts.test"
        },
        {
          "path": "webui/package.json",
          "locator": "scripts.test:coverage"
        },
        {
          "path": "webui/package.json",
          "locator": "scripts.test:watch"
        },
        {
          "path": "webui/package.json",
          "locator": "scripts.test:unit:ci"
        },
        {
          "path": "webui/package.json",
          "locator": "dependencies: vitest"
        }
      ],
      "upstream": "https://github.com/vitest-dev/vitest",
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": "gofmt",
      "method": "formatting",
      "commands": [
        "gofmt -s -l -w $(SRCS)"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target fmt (line 196)"
        }
      ],
      "upstream": "https://github.com/golang/go",
      "docs": null,
      "exit_codes": {},
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": "prettier",
      "method": "formatting",
      "commands": [
        "prettier ./src/**/*.{ts,tsx} --config .prettierrc.json --write"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "webui/package.json",
          "locator": "scripts.format"
        },
        {
          "path": "webui/package.json",
          "locator": "devDependencies: prettier"
        },
        {
          "path": "webui/.prettierrc.json",
          "locator": "config file"
        }
      ],
      "upstream": "https://github.com/prettier/prettier",
      "docs": "https://prettier.io/docs/cli#exit-codes",
      "exit_codes": {
        "0": "everything formatted",
        "1": "something was not formatted (--check)",
        "2": "prettier error"
      },
      "autofix": true,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "api /repos/$EXPR/actions/artifacts?name=integration-test-summary&per_page=1 --jq .artifacts[0].workflow_run.id // \"\")"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/test-integration.yaml",
          "locator": "jobs.test-integration.steps[7] (Find latest timing artifact run)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "chown -R $(shell id -u):$(shell id -g) ./site\""
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "docs/Makefile",
          "locator": "target docs-build (line 37)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "crane cp traefik:latest ghcr.io/traefik/traefik:latest"
      ],
      "triggers": [
        "ci"
      ],
      "evidence": [
        {
          "path": ".github/workflows/sync-docker-images.yaml",
          "locator": "jobs.sync.steps[2] (Sync)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "sort"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target docs-pull-images (line 181)"
        },
        {
          "path": "docs/Makefile",
          "locator": "target docs-pull-images (line 28)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "uniq"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target docs-pull-images (line 181)"
        },
        {
          "path": "docs/Makefile",
          "locator": "target docs-pull-images (line 28)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    },
    {
      "tool": null,
      "method": "unclassified",
      "commands": [
        "xargs -P 6 -n 1 docker pull"
      ],
      "triggers": [
        "local"
      ],
      "evidence": [
        {
          "path": "Makefile",
          "locator": "target docs-pull-images (line 181)"
        },
        {
          "path": "docs/Makefile",
          "locator": "target docs-pull-images (line 28)"
        }
      ],
      "upstream": null,
      "docs": null,
      "exit_codes": {},
      "autofix": false,
      "declared_only": false
    }
  ]
}
