zuwasi/FiniteState-change_logs-for_LTS
GitHub: zuwasi/FiniteState-change_logs-for_LTS
自动化追踪Finite State SBOM平台的变更日志,生成版本化快照和差异报告。
Stars: 0 | Forks: 0
# FiniteState LTS 变更日志
[Finite State](https://finitestate.io) SBOM 平台的自动化变更日志追踪器——监控所有公开资源并维护带版本号的变更日志快照。
## 功能说明
`finitestate_changelog_tracker.py` 脚本会执行以下操作:
1. **首次运行** —— 提示您选择创建两个文件夹的位置:
- `change_logs_text_documents/` —— 存放带版本号的变更日志快照
- `change_logs_diffs/` —— 存放版本间的差异文件
2. **加载 URL** —— 从 `sources.json` 文件读取(脚本中没有硬编码任何 URL)
3. **验证** 每个链接 —— 如果链接失效,将打印错误信息并指出需要修复的**文件名和行号**
4. **比较** 当前扫描结果与最近的本地基线版本
5. **报告** 结果:
- `✅ 自上一文档以来无变更`
- 显示**统一的差异文件**,并询问是否创建新版本
## 文件结构
```
├── finitestate_changelog_tracker.py # Main script (no URLs embedded)
├── run_tracker.bat # Double-click launcher
├── sources.json # URL registry — all links maintained here
├── config.json # Auto-created on first run (folder paths)
├── change_logs_text_documents/ # Versioned changelog snapshots
│ └── Finitestate_SBOM_TOOL_V1.0.0_*.txt
├── change_logs_diffs/ # Diffs between versions
│ └── DIFF_V1.0.0_to_V1.0.1_*.txt
├── README.md
└── LICENSE
```
## 首次运行
首次运行时,脚本会询问您在哪里创建这两个文件夹:
```
============================================================
FIRST-RUN SETUP
============================================================
📄 Changelog documents folder:
[default: ...\change_logs_text_documents]
>
📋 Diff files folder:
[default: ...\change_logs_diffs]
>
✅ Created: ...\change_logs_text_documents
✅ Created: ...\change_logs_diffs
💾 Config saved: ...\config.json
============================================================
```
按回车键接受默认路径,或输入自定义路径。
## URL 注册表(`sources.json`)
所有源 URL 都存放在 `sources.json` 中。**切勿在 Python 脚本中编辑 URL。**
每个条目包含:
- `url` —— 需要获取的端点
- `type` —— `html`(网页)或 `github_api`(GitHub Releases API)
- `label` —— 人类可读的名称
- `description` —— 此源提供的内容
### 失效链接处理
如果某个 URL 失效或无法访问,脚本将打印:
```
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
⛔ BROKEN LINK: finite-state-actions GitHub Action
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
URL: https://api.github.com/repos/...
Error: HTTP 404 Not Found
▸ To fix: open the URL registry file and update the URL:
File: ...\sources.json
Line: 36
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
```
## 用法
```
# 双击 bat 文件,或从终端运行:
python finitestate_changelog_tracker.py
```
## 版本方案
```
Finitestate_SBOM_TOOL_V.._.txt
```
- **基线**:`V1.0.0` —— 在首次运行时创建
- 每次变更递增**补丁**版本号
- 差异文件保存为:`DIFF_V1.0.0_to_V1.0.1_2026-05-20.txt`
## 系统要求
- Python 3.10+(仅使用标准库——无需安装 pip 包)
- 网络访问
## 许可证
[MIT](LICENSE)
标签:DNS解析, Finite State, JSON配置, SBOM平台, 发布笔记, 变更日志管理, 多引擎聚合, 安全可观测性, 差异比较, 开源项目, 批处理启动, 版本快照, 版本控制, 监控系统, 链接验证