FaZ07/CodeRadar

GitHub: FaZ07/CodeRadar

一款零配置的代码库健康度评级工具,通过一条命令即可扫描项目并输出健康评分、语言分布、技术债务和复杂度热点报告。

Stars: 0 | Forks: 0

# CodeRadar [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/24bd38a2b6224554.svg)](https://github.com/FaZ07/CodeRadar/actions/workflows/ci.yml) [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![代码风格:零配置](https://img.shields.io/badge/config-zero-brightgreen.svg)](#usage) **只需一条命令即可为任何代码库评级 A–F。无需配置,无需 API 密钥,无需云端。** CodeRadar 会扫描项目并打印出一个丰富的终端仪表板:整体**健康评分**、语言细分、最大文件、技术债务雷达以及 Python 复杂度热点。在 PR 审查、新员工入职或评估开源依赖项之前运行它,即可在 2 秒内了解您正在处理的内容。 ``` coderadar . ``` ``` +----------------------- Health Score ------------------------+ | B 82/100 | | docs 20/25 debt 17/25 modularity 25/25 complexity 20/25 | | > 12 TODO/FIXME markers - burn down the backlog | +-------------------------------------------------------------+ ``` ``` ─────────────────────── CodeRadar ──────────────────────── /home/user/projects/myapp ┌──────────┐ ┌────────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌──────────┐ │ 84 │ │ 12,431 │ │ 9,102 │ │ 1,204 │ │ 17 │ │ 312.4 KB │ │ files │ │ total lines│ │ code │ │ comments │ │ tech debt│ │ total │ └──────────┘ └────────────┘ └──────────┘ └───────────┘ └──────────┘ └──────────┘ ╭─── Language Breakdown ────────────────────────────────────────────╮ │ Language Files Lines Code Comments Blanks Share │ │ Python 31 6,841 5,012 712 1,117 ████████ 55% │ │ TypeScript 18 3,201 2,388 291 522 ████ 26% │ │ JavaScript 9 1,204 901 89 214 ██ 10% │ │ YAML 4 103 98 2 3 ░ 0.8% │ │ Markdown 7 612 612 0 0 █ 4.9% │ ╰───────────────────────────────────────────────────────────────────╯ ``` ## 功能 - **健康评分 (A–F)** — 整个仓库的综合评分,基于文档、技术债务、模块化和复杂度进行评估,并提供关于优先修复内容的可行建议 - **30+ 种语言**,通过文件扩展名自动检测 - **行级细分** — 每种语言的代码、注释和空行明细 - **最大文件**表格,包含每个文件的统计数据 - **技术债务雷达** — 显示每个 `TODO`、`FIXME`、`HACK`、`XXX`、`BUG` 及其所在的文件 (`--todos`) - **Python 复杂度** — 基于每个文件的 AST 环形复杂度评分,按严重 / 高 / 中 / 低进行颜色标识 (`--complexity`) - **JSON 输出** — 可通过管道传递给 `jq`、CI 脚本或仪表板 (`--json`) - 智能忽略 — 自动跳过 `node_modules`、`__pycache__`、`.git`、`venv`、`dist` 等 ## 作为 GitHub Action 使用 在每个 pull request 上获取健康报告 — 作为 PR 评论和作业摘要发布 — 外加一个可选的 CI 门禁: ``` # .github/workflows/health.yml name: Health on: [pull_request] permissions: contents: read pull-requests: write jobs: health: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: FaZ07/CodeRadar@v1 with: fail-under: "60" # fail the check if score drops below 60 ``` | 输入 | 默认值 | 描述 | |---|---|---| | `path` | `.` | 要扫描的目录 | | `fail-under` | `0` | 如果健康评分低于 N 则失败(0 表示禁用) | | `comment` | `true` | 将报告作为 PR 评论发布 | | `github-token` | `github.token` | 用于 PR 评论的 Token | ## 安装说明 ``` pip install coderadar ``` 或者直接从源码安装: ``` git clone https://github.com/FaZ07/coderadar cd coderadar pip install -e . ``` ## 用法 ``` # 扫描当前目录 coderadar # 扫描特定路径 coderadar ~/projects/myapp # 包含 tech-debt 项和 complexity hotspots coderadar . --todos --complexity # 排除目录 coderadar . -e tests -e docs -e migrations # 机器可读的 JSON 输出 coderadar . --json | jq '.language_stats' # Short flags coderadar . -t -c ``` ### 选项 | 标志 | 描述 | |---|---| | `PATH` | 要扫描的目录(默认:`.`) | | `-t`, `--todos` | 显示 TODO / FIXME / HACK 技术债务项 | | `-c`, `--complexity` | 显示 Python 环形复杂度热点 | | `-e DIR`, `--exclude DIR` | 按名称排除目录(可重复使用) | | `--json` | 以 JSON 格式输出摘要 | | `--md` | 以 GitHub 风格的 Markdown 输出报告 | | `--fail-under N` | 如果健康评分低于 N 则以代码 2 退出(CI 门禁) | | `--top N` | 要显示的最大文件数量(默认:10) | | `-v`, `--version` | 显示版本 | | `-h`, `--help` | 显示帮助 | ## 示例 ``` # 审计 Django 项目的 tech debt coderadar ~/mydjango -t -e migrations # 检查 data-science repo 的 complexity coderadar ~/notebooks -c # 通过管道传入 CI badge 脚本 coderadar . --json > report.json ``` ## 为什么选择 CodeRadar? 大多数代码分析工具需要配置文件、语言服务器或云账户。CodeRadar 只做好一件事:在 PR 审查、新员工入职或评估开源代码之前,为您提供存储库内容的即时、真实的快照。 ## 许可证 MIT © [Mohamed Fazil](https://github.com/FaZ07)
标签:Python, SOC Prime, 云安全监控, 代码分析, 凭证管理, 动态分析, 开发工具, 技术债务, 无后门, 自动化payload嵌入, 逆向工具, 静态分析