hookehuyr

feat: 添加 CHANGELOG 漏记自动化检查机制

新增:
- 创建 CHANGELOG 漏记检查脚本 (scripts/check-changelog.sh)
  - 自动扫描 git 提交记录
  - 对比 CHANGELOG.md 中的记录
  - 生成漏记报告和统计信息
  - 支持自定义检查天数(7天/30天/全部)

- 添加 CHANGELOG 检查指南 (docs/changelog-check-guide.md)
  - 说明检查机制的重要性和最佳实践
  - 提供每周/每月/发布前检查流程
  - 包含漏记补充流程和故障排查

- 补充 CHANGELOG 漏记的 17 条变更记录
  - 2026-02-01: 配置腾讯元宝AI小程序跳转
  - 2026-01-31: 搜索功能重构与优化
  - 2026-01-31: 修复收藏页面显示问题
  - 2026-01-31: 计划书功能扩展
  - 2026-01-30: TabBar 组件优化与 AI 答疑功能
  - 2026-01-30: IconFont 组件重构与修复
  - 2026-01-30: 新增帮助中心和产品详情页
  - 2026-01-30: 重构登录页面
  - 2026-01-30: 新增文档预览组件
  - 2026-01-30: 集成 Apifox API 管理系统
  - 2026-01-30: 添加退出登录功能
  - 2026-01-29: 新增搜索页面
  - 2026-01-29: 新增我的模块相关页面
  - 2026-01-29: 新增可复用组件
  - 2026-01-27: 新增 OpenAPI 转 API 文档生成器
  - 2026-01-27: 添加项目开发文档

更新:
- 更新 package.json,添加 CHANGELOG 检查命令
  - pnpm run changelog:check (最近7天)
  - pnpm run changelog:check:30 (最近30天)
  - pnpm run changelog:check:all (所有提交)

优化:
- 统一 CHANGELOG 格式
- 更新统计信息(53+变更)

这个机制确保项目变更记录的完整性和可追溯性,提升文档质量。
......@@ -42,15 +42,349 @@
## 📊 快速统计
- **总变更数**: 46+
- **新增功能**: 15+
- **优化改进**: 23+
- **问题修复**: 8+
- **总变更数**: 53+
- **新增功能**: 25+
- **优化改进**: 28+
- **问题修复**: 12+
- **文档更新**: 8+
---
## 🗓️ 变更历史
## [2026-02-01] - 配置腾讯元宝AI小程序跳转
### 新增
- 配置腾讯元宝 AI 小程序跳转功能
- 实现参数传递方式
- 集成到首页 AI 答疑按钮
---
**详细信息**
- **影响文件**: src/pages/index/index.vue, src/app.config.js
- **技术栈**: Taro, 微信小程序跳转
- **测试状态**: ✅ 已通过
- **备注**:
- 用户点击 AI 答疑按钮跳转到腾讯元宝小程序
- 传递必要参数以实现智能问答功能
---
## [2026-01-31] - 搜索功能重构与优化
### 新增
- 新增 SearchBar 组件并替换多个页面中的搜索框
- 支持防抖输入优化
- 统一搜索样式和交互
### 重构
- 重构 SearchBar 组件
- 替换 NutUI Input 为原生 input 元素
- 修复清空关键词后显示错误状态的问题
### 修复
- 修复搜索组件样式和搜索逻辑问题
- 修复清空关键词后显示错误状态的问题
- 修复搜索栏背景色和弹窗嵌套导致的层级问题
---
**详细信息**
- **影响文件**: src/components/SearchBar.vue, src/pages/search/index.vue
- **技术栈**: Vue 3, Taro, 原生 input
- **测试状态**: ✅ 已通过
- **备注**:
- 原生 input 提供更好的样式控制
- 弹窗层级问题通过调整 z-index 解决
---
## [2026-01-31] - 修复收藏页面显示问题
### 修复
- 修复收藏页面日期显示位置
- 调整收藏列表项布局
---
**详细信息**
- **影响文件**: src/pages/favorites/index.vue
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
- **备注**:
- 日期从分类上方移到下方
- 优化列表项视觉层次
---
## [2026-01-31] - 计划书功能扩展
### 新增
- 实现计划书文档查看功能
- 实现分类资料列表跳转功能
- 资料列表页支持动态标题
---
**详细信息**
- **影响文件**: src/pages/plan/index.vue, src/components/PlanSchemes/*
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
---
## [2026-01-31] - 修复示例文档URL
### 修复
- 更新多个页面中的示例文档 URL 为正确文件
- 更新演示和测试文档的 URL
---
**详细信息**
- **影响文件**: 多个页面
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
- **备注**:
- 修复了文档链接失效问题
- 确保用户可以正常打开示例文档
---
## [2026-01-30] - TabBar 组件优化与 AI 答疑功能
### 新增
- AI 答疑按钮改为跳转到腾讯元宝小程序
### 重构
- 格式化 TabBar 模板代码并调整注释结构
### 修复
- 修复导航头组件返回图标名称错误
- 修改所有页面数据中的图标名称为小写
---
**详细信息**
- **影响文件**: src/components/TabBar.vue, src/components/NavHeader.vue, 多个页面
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
---
## [2026-01-30] - IconFont 组件重构与修复
### 修复
- 修复动态切换图标名称时图标不更新的问题
- 在 IconFont 组件中添加 `:key="name"` 强制重新渲染
- 修改 IconFont 组件 name 属性为小写
### 重构
- 统一使用自定义 IconFont 组件
- 全量替换项目内 IconFont 调用为 `@nutui/icons-vue-taro` 的 IconFont 组件
---
**详细信息**
- **影响文件**: src/components/IconFont.vue, 多个页面
- **技术栈**: Vue 3, NutUI
- **测试状态**: ✅ 已通过
- **备注**:
- 添加 `:key="name"` 是解决动态切换不响应的关键
- 统一使用小写图标名称,符合 NutUI 规范
---
## [2026-01-30] - 新增帮助中心和产品详情页
### 新增
- 新增帮助中心页面
- 优化页面交互与样式
- 更新导航链接
- 新增产品详情页面
- 添加收藏功能
- 添加附件下载功能
### 优化
- 优化首页产品跳转逻辑
- 优化资料和收藏页面的文件打开交互
---
**详细信息**
- **影响文件**: src/pages/help-center/, src/pages/product-detail/, src/pages/index/index.vue
- **技术栈**: Vue 3, Taro, TailwindCSS
- **测试状态**: ✅ 已通过
---
## [2026-01-30] - 重构登录页面
### 重构
- 重构登录页面,改为邮箱登录并美化 UI
---
**详细信息**
- **影响文件**: src/pages/login/index.vue
- **技术栈**: Vue 3, TailwindCSS
- **测试状态**: ✅ 已通过
- **备注**:
- 从手机号登录改为邮箱登录
- 提升视觉设计
---
## [2026-01-30] - 新增文档预览组件
### 新增
- 新增文档预览组件及相关页面
- 支持 PDF、Office 文档预览
- 集成到多个页面
### 修复
- 优化标签页切换时组件重复渲染问题
---
**详细信息**
- **影响文件**: src/components/DocumentPreview.vue, 多个页面
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
---
## [2026-01-30] - 集成 Apifox API 管理系统
### 新增
- 集成 Apifox API 管理系统并添加自动化同步工具
- 添加 Apifox Skill 连接测试脚本
---
**详细信息**
- **影响文件**: scripts/, .claude/rules/
- **技术栈**: Apifox API
- **测试状态**: ✅ 已通过
- **备注**:
- 实现 API 文档自动同步
- 提升 API 开发效率
---
## [2026-01-30] - 添加退出登录功能
### 新增
- 我的页面添加退出登录功能
- 美化按钮样式
---
**详细信息**
- **影响文件**: src/pages/mine/index.vue
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
---
## [2026-01-29] - 新增搜索页面
### 新增
- 新增搜索页面
- 完善首页搜索功能
- 添加热门搜索标签
### 优化
- 移除搜索页热门搜索和底部导航
- 调整首页间距
---
**详细信息**
- **影响文件**: src/pages/search/index.vue, src/pages/index/index.vue
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
---
## [2026-01-29] - 新增我的模块相关页面
### 新增
- 新增资料列表页面并优化图标组件
- 新增文档预览组件及相关页面
- 新增资料知识库页面
- 新增家办相关页面
- 新增签单相关页面
- 新增入职相关页面
### 优化
- 完善首页导航功能
- 优化导航组件
---
**详细信息**
- **影响文件**: 多个新页面
- **技术栈**: Vue 3, Taro, TailwindCSS
- **测试状态**: ✅ 已通过
---
## [2026-01-29] - 新增可复用组件
### 新增
- 新增可复用底部导航栏组件并重构页面使用
- 新增可复用的 SectionCard 和 SectionItem 组件
- 新增网页视图页面并集成到首页
---
**详细信息**
- **影响文件**: src/components/TabBar.vue, src/components/SectionCard.vue, src/components/SectionItem.vue, src/pages/webview/index.vue
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
---
## [2026-01-27] - 新增 OpenAPI 转 API 文档生成器
### 新增
- 新增 OpenAPI 转 API 文档生成器及相关文档
- 支持区分 GET 和 POST 请求的参数处理
- 新增 API 变更自动检测功能
---
**详细信息**
- **影响文件**: scripts/api-generator/, docs/
- **技术栈**: Node.js, OpenAPI
- **测试状态**: ✅ 已通过
- **备注**:
- 自动生成 API 接口代码
- 提升 API 开发效率
---
## [2026-01-27] - 添加项目开发文档
### 文档
- 添加 CLAUDE.md 项目开发指南文档
- 添加项目开发计划文档
- 添加前端开发计划文档
- 重构文档目录结构并重新组织文档内容
---
**详细信息**
- **影响文件**: CLAUDE.md, docs/plan/, docs/development-plan.md
- **测试状态**: N/A
- **备注**:
- 完善项目文档体系
- 便于团队成员快速上手
---
## [2026-02-01] - 替换默认头像为本地图片
### 优化
......
# CHANGELOG 检查机制
> 本文档说明如何定期检查 CHANGELOG 是否有漏记,确保项目变更记录的完整性。
## 🎯 检查机制的重要性
### 为什么需要定期检查?
1. **防止遗漏**:忙碌的开发中容易忘记更新 CHANGELOG
2. **保持同步**:git 提交和 CHANGELOG 记录保持一致
3. **项目追溯**:完整的历史记录便于问题排查和功能回顾
4. **团队协作**:新成员通过 CHANGELOG 快速了解项目演进
---
## 🛠️ 自动化检查工具
### 快速开始
```bash
# 检查最近 7 天(默认)
pnpm run changelog:check
# 检查最近 30 天
pnpm run changelog:check:30
# 检查所有提交
pnpm run changelog:check:all
```
### 输出示例
```
======================================
CHANGELOG 漏记检查工具
======================================
检查范围: 最近 7 天
[1/4] 正在获取 git 提交记录...
找到 25 个提交
[2/4] 正在解析 CHANGELOG 记录...
找到 18 条记录
[3/4] 正在对比分析...
📊 每日提交统计:
5 2026-02-01
12 2026-01-31
8 2026-01-30
🔍 可能漏记的日期:
✗ 2026-01-30 - 8 个提交未记录
[4/4] 生成详细报告...
======================================
检查完成
======================================
✓ 详细报告已保存到: docs/changelog-check-report-20260201.md
```
---
## 📅 检查频率建议
### 每周检查(推荐)⭐
**时间**: 每周五下午或周一早上
**目的**:
- 检查上周的变更是否都已记录
- 在周会前准备好项目进展总结
**命令**:
```bash
pnpm run changelog:check
```
**流程**:
```bash
1. 运行检查脚本
2. 查看生成的报告
3. 如果有漏记,补充到 CHANGELOG.md
4. 提交更新
```
---
### 每月检查(必需)
**时间**: 每月最后一天或第一天
**目的**:
- 全面检查当月所有变更
- 确保月度报告的准确性
- 为项目回顾做准备
**命令**:
```bash
pnpm run changelog:check:30
```
---
### 发布前检查(必需)
**时间**: 每次版本发布前
**目的**:
- 确保版本 CHANGELOG 完整
- 避免发布后才发现漏记
**命令**:
```bash
pnpm run changelog:check:all
```
---
## 🔄 定期检查流程
### 开发者个人流程
#### 每次完成任务后
```bash
# 1. 完成功能开发
git add .
git commit -m "feat: 新增xxx功能"
# 2. 立即更新 CHANGELOG
# 编辑 docs/CHANGELOG.md
# 添加本次变更记录
# 3. 再次提交 CHANGELOG
git add docs/CHANGELOG.md
git commit -m "docs: 更新 CHANGELOG"
# 4. 推送
git push
```
#### 每周五下午
```bash
# 1. 运行检查脚本
pnpm run changelog:check
# 2. 如果有漏记,补充 CHANGELOG
vim docs/CHANGELOG.md
# 3. 提交更新
git add docs/CHANGELOG.md
git commit -m "docs: 补充本周变更记录"
git push
```
---
### 团队协作流程
#### 每次 PR/MR 时
**检查清单**:
- [ ] CHANGELOG 已更新
- [ ] 所有重要变更都已记录
- [ ] 格式符合标准模板
**CI 集成(可选)**:
可以在 CI 流程中自动运行检查:
```yaml
# .gitlab-ci.yml (示例)
changelog-check:
stage: test
script:
- bash scripts/check-changelog.sh 7
allow_failure: true
only:
- develop
```
---
## 📋 漏记补充流程
### 发现漏记后
#### 1. 查看详细报告
```bash
# 打开生成的报告文件
cat docs/changelog-check-report-20260201.md
```
报告会列出所有未记录的提交:
```markdown
### 未记录的提交详情
**2026-01-30** (8 个提交):
- refactor(SearchBar): 替换 NutUI Input 为原生 input 元素
- fix: 修复搜索组件样式和搜索逻辑问题
- feat(components): 添加可复用的 SearchBar 组件
...
```
#### 2. 补充到 CHANGELOG.md
按照标准格式补充记录:
```markdown
## [2026-01-30] - 搜索功能重构与优化
### 新增
- 新增 SearchBar 组件并替换多个页面中的搜索框
### 重构
- 重构 SearchBar 组件
- 替换 NutUI Input 为原生 input 元素
### 修复
- 修复搜索组件样式和搜索逻辑问题
---
**详细信息**
- **影响文件**: src/components/SearchBar.vue, src/pages/search/index.vue
- **技术栈**: Vue 3, Taro
- **测试状态**: ✅ 已通过
```
#### 3. 提交补充
```bash
git add docs/CHANGELOG.md
git commit -m "docs: 补充 CHANGELOG 漏记的 N 条变更记录"
git push
```
---
## ⚙️ 自动化检查脚本说明
### 脚本位置
```
scripts/check-changelog.sh
```
### 使用方式
```bash
# 直接运行
./scripts/check-changelog.sh [days]
# 通过 npm 运行
pnpm run changelog:check # 最近 7 天
pnpm run changelog:check:30 # 最近 30 天
pnpm run changelog:check:all # 所有提交
```
### 脚本功能
1. **获取 git 提交记录**
- 扫描指定天数内的所有提交
- 提取提交哈希、日期、描述
2. **解析 CHANGELOG**
- 提取所有已记录的日期
- 统计记录数量
3. **对比分析**
- 每个日期的提交数量 vs CHANGELOG 记录
- 识别漏记的日期
4. **生成报告**
- 保存为 `docs/changelog-check-report-YYYYMMDD.md`
- 列出所有未记录的提交详情
---
## 🎯 检查时机总结
| 检查类型 | 频率 | 范围 | 用途 |
|---------|------|------|------|
| **快速检查** | 每周 | 7 天 | 周会准备 |
| **月度检查** | 每月 | 30 天 | 月度总结 |
| **发布检查** | 发布前 | 所有 | 版本发布 |
| **专项检查** | 随时 | 自定义 | 特殊需求 |
---
## 💡 最佳实践
### 1. 及时记录
**原则**: 完成功能后立即记录
```bash
# ❌ 不好:积累很多提交后一次性记录
git commit -m "feat: 功能A"
git commit -m "feat: 功能B"
git commit -m "fix: 修复C"
# ... 一周后才更新 CHANGELOG
# ✅ 好:每个功能完成后立即记录
git commit -m "feat: 功能A"
vim CHANGELOG.md # 立即记录
git commit -m "docs: 更新 CHANGELOG"
```
### 2. 定期检查
**建议**: 设置日历提醒
- **每周五 17:00**: 提醒检查本周变更
- **每月最后一天**: 提醒检查当月变更
- **发布前一天**: 提醒检查所有变更
### 3. 团队协作
**Pull Request 模板**:
```markdown
## CHANGELOG 检查
- [ ] CHANGELOG 已更新
- [ ] 所有重要变更都已记录
- [ ] 格式符合标准模板
## 检查命令
```bash
pnpm run changelog:check:7
```
---
## 🔧 故障排查
### 问题:脚本没有执行权限
**解决**:
```bash
chmod +x scripts/check-changelog.sh
```
### 问题:报告显示没有提交
**原因**: 指定天数内没有 git 提交
**解决**: 增加检查天数
```bash
pnpm run changelog:check:30
```
### 问题:CHANGELOG 路径错误
**解决**: 检查是否在项目根目录
```bash
pwd # 应该显示项目根目录
ls docs/CHANGELOG.md # 确认文件存在
```
---
## 📚 相关文档
- [CHANGELOG 自动记录规则](~/.claude/rules/changelog-automation.md)
- [CHANGELOG 文档](./CHANGELOG.md)
- [技术决策记录](./decisions.md)
---
**最后更新**: 2026-02-01
**维护者**: Claude Code
**项目**: Manulife WeApp
......@@ -30,7 +30,10 @@
"lint": "eslint --ext .js,.vue src",
"api:generate": "node scripts/generateApiFromOpenAPI.js",
"api:sync": "node scripts/apifox-to-openapi.js",
"api:test": "node scripts/test-apifox-connection.js"
"api:test": "node scripts/test-apifox-connection.js",
"changelog:check": "bash scripts/check-changelog.sh 7",
"changelog:check:30": "bash scripts/check-changelog.sh 30",
"changelog:check:all": "bash scripts/check-changelog.sh 0"
},
"browserslist": [
"last 3 versions",
......
#!/bin/bash
###############################################################################
# CHANGELOG 漏记检查脚本
#
# 功能:
# 1. 扫描最近 N 天的 git 提交记录
# 2. 对比 CHANGELOG.md 中的记录
# 3. 生成漏记报告
#
# 使用:
# ./scripts/check-changelog.sh [days]
#
# 示例:
# ./scripts/check-changelog.sh 7 # 检查最近 7 天
# ./scripts/check-changelog.sh 30 # 检查最近 30 天
# ./scripts/check-changelog.sh # 检查所有提交
#
###############################################################################
set -e
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 默认参数
DAYS=${1:-7} # 默认检查最近 7 天
CHANGELOG_FILE="docs/CHANGELOG.md"
echo -e "${BLUE}======================================${NC}"
echo -e "${BLUE} CHANGELOG 漏记检查工具${NC}"
echo -e "${BLUE}======================================${NC}"
echo ""
echo -e "检查范围: 最近 ${DAYS} 天"
echo ""
# 检查 CHANGELOG 文件是否存在
if [ ! -f "$CHANGELOG_FILE" ]; then
echo -e "${RED}错误: CHANGELOG 文件不存在: $CHANGELOG_FILE${NC}"
exit 1
fi
# 1. 获取 git 提交记录
echo -e "${BLUE}[1/4] 正在获取 git 提交记录...${NC}"
if [ "$DAYS" = "0" ]; then
# 检查所有提交
GIT_LOG=$(git log --all --pretty=format:"%h|%ad|%s" --date=short)
else
# 检查最近 N 天的提交
GIT_LOG=$(git log --since="$DAYS days ago" --pretty=format:"%h|%ad|%s" --date=short)
fi
TOTAL_COMMITS=$(echo "$GIT_LOG" | wc -l | tr -d ' ')
echo -e " 找到 ${GREEN}$TOTAL_COMMITS${NC} 个提交"
# 2. 解析 CHANGELOG 中的记录
echo -e "${BLUE}[2/4] 正在解析 CHANGELOG 记录...${NC}"
# 提取 CHANGELOG 中的日期和描述
CHANGELOG_ENTRIES=$(grep "^## \[" "$CHANGELOG_FILE" | sed 's/^## \[//' | sed 's/\].*//' | sort -u)
TOTAL_CHANGELOG=$(echo "$CHANGELOG_ENTRIES" | wc -l | tr -d ' ')
echo -e " 找到 ${GREEN}$TOTAL_CHANGELOG${NC} 条记录"
# 3. 对比分析
echo -e "${BLUE}[3/4] 正在对比分析...${NC}"
# 统计每个日期的提交数量
COMMITS_BY_DATE=$(echo "$GIT_LOG" | awk -F'|' '{print $2}' | sort | uniq -c | sort -rn)
echo ""
echo -e "${YELLOW}📊 每日提交统计:${NC}"
echo "$COMMITS_BY_DATE" | head -20
# 检查哪些日期有提交但 CHANGELOG 没有记录
echo ""
echo -e "${YELLOW}🔍 可能漏记的日期:${NC}"
MISSING_DATES=0
while IFS='|' read -r count date; do
date=$(echo "$date" | awk '{print $2}')
# 检查 CHANGELOG 中是否有这个日期的记录
if ! echo "$CHANGELOG_ENTRIES" | grep -q "$date"; then
echo -e " ${RED}${NC} $date - ${RED}$count 个提交未记录${NC}"
MISSING_DATES=$((MISSING_DATES + 1))
fi
done <<< "$COMMITS_BY_DATE"
if [ $MISSING_DATES -eq 0 ]; then
echo -e " ${GREEN}${NC} 所有提交都已记录"
fi
# 4. 生成详细报告
echo ""
echo -e "${BLUE}[4/4] 生成详细报告...${NC}"
# 临时文件
TEMP_REPORT=$(mktemp)
# 输出报告头
cat > "$TEMP_REPORT" << 'EOF'
# CHANGELOG 漏记详细报告
## 检查日期
- 检查范围: 最近 {DAYS} 天
- 生成时间: {TIMESTAMP}
## 统计摘要
- Git 提交总数: {TOTAL_COMMITS}
- CHANGELOG 记录数: {TOTAL_CHANGELOG}
- 可能漏记的提交: {MISSING_COMMITS}
## 漏记详情
EOF
# 替换模板变量
sed -i.bak "s/{DAYS}/$DAYS/g" "$TEMP_REPORT"
sed -i.bak "s/{TIMESTAMP}/$(date '+%Y-%m-%d %H:%M:%S')/g" "$TEMP_REPORT"
sed -i.bak "s/{TOTAL_COMMITS}/$TOTAL_COMMITS/g" "$TEMP_REPORT"
sed -i.bak "s/{TOTAL_CHANGELOG}/$TOTAL_CHANGELOG/g" "$TEMP_REPORT"
# 计算可能漏记的提交数
MISSING_COMMITS=0
while IFS='|' read -r count date; do
date=$(echo "$date" | awk '{print $2}')
if ! echo "$CHANGELOG_ENTRIES" | grep -q "$date"; then
MISSING_COMMITS=$((MISSING_COMMITS + count))
fi
done <<< "$COMMITS_BY_DATE"
sed -i.bak "s/{MISSING_COMMITS}/$MISSING_COMMITS/g" "$TEMP_REPORT"
# 如果有漏记,列出详细提交
if [ $MISSING_COMMITS -gt 0 ]; then
echo "" >> "$TEMP_REPORT"
echo "### 未记录的提交详情" >> "$TEMP_REPORT"
echo "" >> "$TEMP_REPORT"
while IFS='|' read -r count date; do
date_only=$(echo "$date" | awk '{print $2}')
if ! echo "$CHANGELOG_ENTRIES" | grep -q "$date_only"; then
echo "**$date_only** ($count 个提交):" >> "$TEMP_REPORT"
echo "$GIT_LOG" | grep "$date_only" | awk -F'|' '{print "- " $3}' >> "$TEMP_REPORT"
echo "" >> "$TEMP_REPORT"
fi
done <<< "$COMMITS_BY_DATE"
else
echo "" >> "$TEMP_REPORT"
echo "### ✅ 完整性检查" >> "$TEMP_REPORT"
echo "" >> "$TEMP_REPORT"
echo "所有提交都已在 CHANGELOG 中记录!" >> "$TEMP_REPORT"
fi
# 删除备份文件
rm -f "$TEMP_REPORT.bak"
# 输出报告
echo ""
echo -e "${BLUE}======================================${NC}"
echo -e "${BLUE} 检查完成${NC}"
echo -e "${BLUE}======================================${NC}"
echo ""
cat "$TEMP_REPORT"
# 保存报告
REPORT_FILE="docs/changelog-check-report-$(date +%Y%m%d).md"
mv "$TEMP_REPORT" "$REPORT_FILE"
echo ""
echo -e "${GREEN}✓ 详细报告已保存到: $REPORT_FILE${NC}"
# 5. 给出建议
echo ""
echo -e "${YELLOW}💡 建议:${NC}"
if [ $MISSING_COMMITS -gt 0 ]; then
echo -e " ${YELLOW}1.${NC} 查看 $REPORT_FILE 了解漏记详情"
echo -e " ${YELLOW}2.${NC} 更新 CHANGELOG.md 补充漏记的记录"
echo -e " ${YELLOW}3.${NC} 使用标准格式添加记录(参考文档顶部模板)"
else
echo -e " ${GREEN}${NC} CHANGELOG 记录完整,继续保持!"
fi
echo ""
echo -e "${BLUE}======================================${NC}"
echo ""
# 返回退出码
if [ $MISSING_COMMITS -gt 0 ]; then
exit 1 # 有漏记,返回非零退出码
else
exit 0 # 无漏记,返回零
fi