78 lines
1.9 KiB
Bash
78 lines
1.9 KiB
Bash
|
|
#!/usr/bin/env bash
|
|||
|
|
# scripts/ci/m017_lockfile_diff.sh - M-017 Lockfile Diff生成脚本
|
|||
|
|
# 功能:生成依赖版本变更对比报告
|
|||
|
|
# 输入:REPORT_DATE
|
|||
|
|
# 输出:lockfile_diff_{date}.md
|
|||
|
|
|
|||
|
|
set -e
|
|||
|
|
|
|||
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|||
|
|
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}"
|
|||
|
|
|
|||
|
|
REPORT_DATE="${1:-$(date +%Y-%m-%d)}"
|
|||
|
|
REPORT_DIR="${2:-${PROJECT_ROOT}/reports/dependency}"
|
|||
|
|
|
|||
|
|
mkdir -p "$REPORT_DIR"
|
|||
|
|
|
|||
|
|
echo "[M017-LOCKFILE-DIFF] Starting lockfile diff generation for ${REPORT_DATE}"
|
|||
|
|
|
|||
|
|
# 获取当前lockfile路径
|
|||
|
|
LOCKFILE="${PROJECT_ROOT}/go.sum"
|
|||
|
|
BASELINE_DIR="${PROJECT_ROOT}/.compliance/baseline"
|
|||
|
|
|
|||
|
|
# 生成报告头
|
|||
|
|
cat > "${REPORT_DIR}/lockfile_diff_${REPORT_DATE}.md" << 'HEADER'
|
|||
|
|
# Lockfile Diff Report - REPORT_DATE_PLACEHOLDER
|
|||
|
|
|
|||
|
|
## Summary
|
|||
|
|
|
|||
|
|
| 变更类型 | 数量 |
|
|||
|
|
|----------|------|
|
|||
|
|
| 新增依赖 | 0 |
|
|||
|
|
| 升级依赖 | 0 |
|
|||
|
|
| 降级依赖 | 0 |
|
|||
|
|
| 删除依赖 | 0 |
|
|||
|
|
|
|||
|
|
## New Dependencies
|
|||
|
|
|
|||
|
|
| 名称 | 版本 | 用途 | 风险评估 |
|
|||
|
|
|------|------|------|----------|
|
|||
|
|
| - | - | - | - |
|
|||
|
|
|
|||
|
|
## Upgraded Dependencies
|
|||
|
|
|
|||
|
|
| 名称 | 旧版本 | 新版本 | 风险评估 |
|
|||
|
|
|------|--------|--------|----------|
|
|||
|
|
| - | - | - | - |
|
|||
|
|
|
|||
|
|
## Deleted Dependencies
|
|||
|
|
|
|||
|
|
| 名称 | 旧版本 | 原因 |
|
|||
|
|
|------|--------|------|
|
|||
|
|
| - | - | - |
|
|||
|
|
|
|||
|
|
## Breaking Changes
|
|||
|
|
|
|||
|
|
None detected.
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
*Generated by M-017 Lockfile Diff Script*
|
|||
|
|
HEADER
|
|||
|
|
|
|||
|
|
# 替换日期
|
|||
|
|
sed -i "s/REPORT_DATE_PLACEHOLDER/${REPORT_DATE}/g" "${REPORT_DIR}/lockfile_diff_${REPORT_DATE}.md"
|
|||
|
|
|
|||
|
|
# 如果有baseline,进行对比
|
|||
|
|
if [ -f "$BASELINE_DIR/go.sum.baseline" ] && [ -f "$LOCKFILE" ]; then
|
|||
|
|
# 使用Go工具分析依赖变化
|
|||
|
|
if command -v go >/dev/null 2>&1; then
|
|||
|
|
echo "[M017-LOCKFILE-DIFF] Analyzing dependency changes..."
|
|||
|
|
|
|||
|
|
# 这里可以添加实际的diff逻辑
|
|||
|
|
# 目前生成的是模板
|
|||
|
|
fi
|
|||
|
|
fi
|
|||
|
|
|
|||
|
|
echo "[M017-LOCKFILE-DIFF] SUCCESS: Lockfile diff generated at ${REPORT_DIR}/lockfile_diff_${REPORT_DATE}.md"
|