Reviewer 역할 검증 보고서 smoke #5

Open
forge-bot wants to merge 5 commits from forge/role-reviewer-live-1522-001-attempt-1-run-9f6f1a4f779b into main
Showing only changes of commit ee9177d7ff - Show all commits

View file

@ -0,0 +1,110 @@
#!/bin/bash
# 증적 보고서 생성 스크립트
# smoke-test.sh 실행 후 이 스크립트를 실행하여 최종 증적 보고서를 생성합니다
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
echo "=========================================="
echo "증적 보고서 생성"
echo "=========================================="
# smoke-test-report.json이 있는지 확인
if [ ! -f "$SCRIPT_DIR/smoke-test-report.json" ]; then
echo "오류: smoke-test-report.json을 찾을 수 없습니다."
echo "먼저 ./verification/smoke-test.sh를 실행해주세요."
exit 1
fi
# 변경 파일 목록
echo ""
echo "1. 변경 파일 수집..."
if [ -f "$SCRIPT_DIR/changed-files.txt" ]; then
CHANGED_FILES=$(cat "$SCRIPT_DIR/changed-files.txt" | tr '\n' ',' | sed 's/,$//')
else
CHANGED_FILES=""
fi
# Git 정보 수집
echo "2. Git 정보 수집..."
cd "$PROJECT_ROOT"
GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
GIT_COMMIT=$(git rev-parse HEAD 2>/dev/null || echo "unknown")
GIT_COMMIT_MSG=$(git log -1 --pretty=%B 2>/dev/null | head -1 || echo "unknown")
# 빌드 정보 수집
echo "3. 빌드 정보 수집..."
if [ -f "$PROJECT_ROOT/pom.xml" ]; then
BUILD_TOOL="maven"
PROJECT_VERSION=$(grep -A1 '<artifactId>' "$PROJECT_ROOT/pom.xml" | grep -A1 'runtime-role-matrix' | grep '<version>' | sed 's/.*<version>//' | sed 's/<\/version>//' | head -1)
elif [ -f "$PROJECT_ROOT/build.gradle" ]; then
BUILD_TOOL="gradle"
PROJECT_VERSION=$(grep 'version' "$PROJECT_ROOT/build.gradle" | head -1 | sed 's/.*version.*//' | tr -d "'\" " || echo "unknown")
else
BUILD_TOOL="unknown"
PROJECT_VERSION="unknown"
fi
# 테스트 결과 수집
echo "4. 테스트 결과 수집..."
UNIT_TEST_RESULT=$(cat "$SCRIPT_DIR/smoke-test-report.json" | grep -A1 'unit_tests' | grep 'status' | cut -d'"' -f4)
COMPILATION_RESULT=$(cat "$SCRIPT_DIR/smoke-test-report.json" | grep -A1 'compilation' | grep 'status' | cut -d'"' -f4)
# 최종 증적 보고서 생성
echo "5. 증적 보고서 생성..."
cat > "$SCRIPT_DIR/final-evidence-report.json" << EOF
{
"evidence_report": {
"report_id": "RRL-$(date +%Y%m%d)-$(date +%H%M%S)",
"project_name": "runtime-role-matrix-live",
"project_version": "${PROJECT_VERSION:-unknown}",
"build_tool": "${BUILD_TOOL}",
"generated_at": "$(date -u +"%Y-%m-%dT%H:%M:%SZ")",
"reviewer": "검증 담당자",
"review_type": "smoke_test"
},
"git_information": {
"branch": "${GIT_BRANCH}",
"commit_hash": "${GIT_COMMIT}",
"commit_message": "${GIT_COMMIT_MSG}"
},
"changed_files": {
"count": $(echo "$CHANGED_FILES" | tr ',' '\n' | grep -c . 2>/dev/null || echo 0),
"files": [$(echo "$CHANGED_FILES" | sed "s/,/","/g" | sed "s/^/\"/;s/$/\"/")]
},
"verification_results": {
"compilation": "${COMPILATION_RESULT:-unknown}",
"unit_tests": "${UNIT_TEST_RESULT:-unknown}",
"smoke_test_summary": $(cat "$SCRIPT_DIR/smoke-test-report.json" | grep -A6 '"summary"')
},
"operational_risk_assessment": {
"deployment_risk": "medium",
"monitoring_risk": "low",
"data_risk": "medium",
"security_risk": "low",
"overall_risk": "medium"
},
"approval": {
"status": "pending",
"approved_by": null,
"approved_at": null,
"comments": null
}
}
EOF
echo ""
echo "=========================================="
echo "증적 보고서 생성 완료"
echo "=========================================="
echo ""
echo "생성된 파일:"
echo " - $SCRIPT_DIR/smoke-test-report.json"
echo " - $SCRIPT_DIR/final-evidence-report.json"
echo " - $SCRIPT_DIR/changed-files.txt"
echo ""
echo "최종 증적 보고서 내용:"
cat "$SCRIPT_DIR/final-evidence-report.json"