Static analysis
5 tools
| Tool | Kind | Command | Runs in | Found in |
|---|---|---|---|---|
eslint |
Linting | eslint --concurrency=autoeslint --fix --concurrency=autoeslint --quiet --concurrency=auto |
local | package.json eslint.config.mjs |
golangci-lint |
Linting | uses golangci/golangci-lint-actiongolangci-lint run ./... |
ci, local | .github/workflows/sandbox-runtime-tests.yml dify-agent-runtime/Makefile |
ruff-check |
Linting | ruff check --fix .ruff check ${targets[@]}ruff check src/dify_agent/layers/dify_core_tools/client.py tests/local/dify_a... |
ci, local | .github/workflows/autofix.yml .github/workflows/knowledge-fs-ci.yml Makefile api/pyproject.toml |
mkdocsconfigured, not run |
Docs build | dify-agent/pyproject.toml | ||
tscconfigured, not run |
Type checking | cli/package.json e2e/package.json package.json web/package.json |
Testing
8 tools
| Tool | Kind | Command | Runs in | Found in |
|---|---|---|---|---|
ci-matrix |
Version and platform matrix | api-unit (python-version: 1, shardIndex: 2, shardTotal: 1)api-integration (python-version: 1)dify-agent-unit (python-version: 1) |
ci | .github/workflows/api-tests.yml .github/workflows/dify-agent-tests.yml .github/workflows/vdb-tests-full.yml .github/workflows/vdb-tests.yml |
go-test |
Unit and integration tests | go test -race -count=1 ./...go test -tags=integration -v -count=1 -timeout=300s ./tests/...go test ./... |
ci, local | .github/workflows/sandbox-runtime-tests.yml dify-agent-runtime/Makefile |
hypothesis |
Property-based tests | api/pyproject.toml | ||
node-test |
Unit and integration tests | node --test .github/scripts/knowledge-deploy-gates.test.cjsnode --test .github/actions/wait-e2e-web-build/*.test.cjs |
ci | .github/workflows/knowledge-fs-ci.yml .github/workflows/web-e2e.yml |
pytest |
Unit and integration tests | pytest -p no:benchmark --timeout ${PYTEST_TIMEOUT:-20} -n auto -o addopts=-p ...pytest -p no:benchmark --timeout ${PYTEST_TIMEOUT:-20} -n auto -o addopts=-p ...pytest -p no:benchmark --start-middleware --middleware-stop-timeout 2 -n auto... |
ci, local | .github/workflows/api-tests.yml .github/workflows/dify-agent-tests.yml .github/workflows/knowledge-fs-ci.yml .github/workflows/vdb-tests-full.yml |
unittest |
Unit and integration tests | unittest discover -s docker/tests -p test_*.py |
ci | .github/workflows/autofix.yml |
playwrightconfigured, not run |
End-to-end browser tests | e2e/package.json | ||
vitestconfigured, not run |
Unit and integration tests | cli/package.json web/package.json |
Formatting and hygiene
1 tool
| Tool | Kind | Command | Runs in | Found in |
|---|---|---|---|---|
ruff-format |
Formatting | ruff format ..ruff format .ruff format --check ${targets[@]} |
ci, local | .github/workflows/autofix.yml .github/workflows/knowledge-fs-ci.yml Makefile |
Supply chain
1 tool
| Tool | Kind | Command | Runs in | Found in |
|---|---|---|---|---|
uv-lock |
Lockfile consistency | uv lock --check |
ci | .github/workflows/dify-agent-tests.yml |
92 other commands the scanner could not classify
Commands from CI steps and task runners that look like checks but match no known tool. Some are checks, some are not.
add_test_target $pathast-grep scan . --inline-rules $(cat /tmp/optional-rule.yml) --update-allbash $RUNNER_TEMP/check-hotfix-cherry-picks.shbun scripts/e2e-provision.tsbun scripts/generate-command-tree.ts --checkcoverage json --show-contexts -o $reportcoverage run --branch --source=api -m pytest ${targets[@]} --no-cov -qcoverage xml -o coverage.xmldone < ${RUNNER_TEMP:?}/knowledge-fs-ci-targets/unit-test-filesdotenv-linter ./api/.env.example ./web/.env.exampleelse set -elint-importsnext dev --inspectnode --input-type=module -e "import { access } from 'node:fs/promises'node ../packages/tooling/scripts/lint-a11y.tsnode ./packages/tooling/scripts/check-web-production-unused-after-knip-fix.tsnode ./scripts/check-i18n.jsnode ./scripts/generate-i18n-types.tsnode ./scripts/generate-i18n-types.ts --checknode ./scripts/run-cucumber.tsnode ./scripts/run-cucumber.ts --fullnode ./scripts/run-cucumber.ts --full -- --tags @axe and @wcag-anode ./scripts/run-cucumber.ts --full -- --tags @axe and @wcag-aanode ./scripts/run-cucumber.ts --full --headednode ./scripts/run-cucumber.ts --headednode ./scripts/run-cucumber.ts --seed-only --profile external-runtimenode ./scripts/run-cucumber.ts --seed-only --profile post-mergenode ./scripts/run-cucumber.ts --seed-only --profile preparednode ./scripts/run-external-runtime.tsnode ./scripts/run-post-merge.tsnode ./scripts/run-prepared.tsnode ./scripts/setup.ts middleware-downnode ./scripts/setup.ts middleware-upnode ./scripts/setup.ts resetnode ./scripts/setup.ts web-buildpyrefly check --summary=none src/dify_agent/layers/dify_core_tools/client.py tests/local/dify_agent/layers/dify_core_...pyrefly check 2>&1python api/dev/check_knowledge_fs_coverage.py --coverage-json $report --glue-manifest ${RUNNER_TEMP:?}/knowledge-fs-c...python api/dev/generate_billing_client.py --checkpython api/dev/generate_knowledge_fs_contract.py --check
Review prompts
most discussed first