FaZ07/CodeRadar
GitHub: FaZ07/CodeRadar
一款零配置的代码库健康度评级工具,通过一条命令即可扫描项目并输出健康评分、语言分布、技术债务和复杂度热点报告。
Stars: 0 | Forks: 0
# CodeRadar
[](https://github.com/FaZ07/CodeRadar/actions/workflows/ci.yml)
[](https://www.python.org/downloads/)
[](LICENSE)
[](#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嵌入, 逆向工具, 静态分析