用途:在本地复现 OpenMetadata 仓库 CI 的 UI Checkstyle 工作流,只针对 PR 改动的文件运行格式化与检查,避免 CI 报格式失败。
主要能力:对三个 UI 目录(ui/src、ui/playwright、core-components)依次执行 organize-imports、eslint --fix、prettier --write;同时对应 CI 的许可证头检查、i18n 同步(yarn i18n 无 diff)、app-docs(yarn generate:app-docs 无 diff)。任一检查失败即视为 ui-checkstyle 状态检查失败。
使用方式:支持参数 --src、--playwright、--core-components、--all、--check;无参数时根据 git diff --name-only origin/main...HEAD 自动判断受影响区域。先计算改动文件列表,再在对应工作目录运行命令,例如 cat /tmp/src_files.txt | xargs ./node_modules/.bin/organize-imports-cli,随后 eslint --fix 与 prettier --write。注意 organize-imports 必须在 prettier 之前运行,否则会留下脏 diff。core-components 无 organize-imports CLI,仅跑 eslint 与 prettier。最后用 git status --short 与 git diff --stat 查看改动。
适用场景:用户要求修复 UI checkstyle、UI lint、运行 prettier/eslint、修复 UI 格式;CI 报告 UI Checkstyle 失败;编辑三个 UI 目录下的 .ts/.tsx/.js/.jsx/.json 后、开 PR 或推送前。
限制:--check 为只读校验,会回滚写入;ESLint 硬错误需人工修改,警告不影响 CI;不处理 TypeScript 类型检查(tsc)、Java 格式化(用 java-checkstyle 的 mvn spotless:apply)和 Python 格式化(用 make py_format)。提交时若不确定 diff 是否纯机械格式化,不要自动提交。