Files
ewoooc/scripts/quick_review.sh
OoO 6a0d5c138d
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
test(observability): add one-shot QA suite
2026-05-05 15:39:55 +08:00

149 lines
4.6 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ================= MOMO 系統 - 快速 Code Review 腳本 =================
# 功能:快速觸發 Aider Code Review
# 使用方法:./quick_review.sh [檔案名稱...]
# 範例:./quick_review.sh app.py routes/sales_routes.py
# =======================================================================
# 顏色定義
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 獲取專案根目錄
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
CODE_REVIEW_SCRIPT="$PROJECT_ROOT/scripts/code_review.py"
OBSERVABILITY_UI_GUARD="$PROJECT_ROOT/scripts/check_observability_ui.py"
OBSERVABILITY_PAGE_SMOKE="$PROJECT_ROOT/scripts/check_observability_pages.py"
OBSERVABILITY_QA_SUITE="$PROJECT_ROOT/scripts/check_observability_suite.sh"
# 顯示標題
echo -e "${BLUE}========================================${NC}"
echo -e "${BLUE}🔍 MOMO 系統 - Aider Code Review${NC}"
echo -e "${BLUE}========================================${NC}"
# 檢查Code Review腳本是否存在
if [ ! -f "$CODE_REVIEW_SCRIPT" ]; then
echo -e "${RED}❌ Code Review腳本不存在: $CODE_REVIEW_SCRIPT${NC}"
exit 1
fi
# 檢查Python環境
if ! command -v python3 &> /dev/null; then
echo -e "${RED}❌ Python3未安裝${NC}"
exit 1
fi
run_code_review() {
if ! command -v aider &> /dev/null; then
echo -e "${RED}❌ Aider未安裝或不在PATH中${NC}"
exit 1
fi
python3 "$CODE_REVIEW_SCRIPT" "$@"
}
run_observability_ui_guard() {
if [ ! -f "$OBSERVABILITY_UI_GUARD" ]; then
echo -e "${RED}❌ AI觀測台 UI guard 不存在: $OBSERVABILITY_UI_GUARD${NC}"
exit 1
fi
echo -e "${GREEN}🎛️ 開始 AI觀測台 UI/UX 防回歸檢查...${NC}"
python3 "$OBSERVABILITY_UI_GUARD"
}
run_observability_page_smoke() {
if [ ! -f "$OBSERVABILITY_PAGE_SMOKE" ]; then
echo -e "${RED}❌ AI觀測台頁面巡檢不存在: $OBSERVABILITY_PAGE_SMOKE${NC}"
exit 1
fi
echo -e "${GREEN}🌐 開始 AI觀測台 10頁線上巡檢...${NC}"
python3 "$OBSERVABILITY_PAGE_SMOKE"
}
run_observability_qa_suite() {
if [ ! -f "$OBSERVABILITY_QA_SUITE" ]; then
echo -e "${RED}❌ AI觀測台 QA 套件不存在: $OBSERVABILITY_QA_SUITE${NC}"
exit 1
fi
echo -e "${GREEN}🏛️ 開始 AI觀測台完整 QA 套件...${NC}"
bash "$OBSERVABILITY_QA_SUITE"
}
# 顯示選單
if [ $# -eq 0 ]; then
echo -e "${YELLOW}請選擇操作:${NC}"
echo "1) 自動Review暫存檔案 (Git staged)"
echo "2) Review所有變更檔案"
echo "3) 指定檔案Review"
echo "4) 安全檢查 (Security Review)"
echo "5) 效能檢查 (Performance Review)"
echo "6) AI觀測台 UI/UX 防回歸檢查"
echo "7) AI觀測台 10頁線上巡檢"
echo "8) AI觀測台完整 QA 套件"
echo ""
read -p "請輸入選項 (1-8): " choice
case $choice in
1)
echo -e "${GREEN}🚀 開始自動Review暫存檔案...${NC}"
run_code_review --auto --type basic
;;
2)
echo -e "${GREEN}🚀 開始Review所有變更檔案...${NC}"
run_code_review --type basic
;;
3)
echo -e "${YELLOW}請輸入要Review的檔案路徑 (用空格分隔)${NC}"
read -r files_input
if [ -n "$files_input" ]; then
echo -e "${GREEN}🚀 開始Review指定檔案...${NC}"
run_code_review --files $files_input --type basic
else
echo -e "${RED}❌ 未指定檔案${NC}"
exit 1
fi
;;
4)
echo -e "${GREEN}🛡️ 開始安全檢查...${NC}"
run_code_review --auto --type security
;;
5)
echo -e "${GREEN}⚡ 開始效能檢查...${NC}"
run_code_review --auto --type performance
;;
6)
run_observability_ui_guard
;;
7)
run_observability_page_smoke
;;
8)
run_observability_qa_suite
;;
*)
echo -e "${RED}❌ 無效選項${NC}"
exit 1
;;
esac
else
# 有指定檔案直接Review
echo -e "${GREEN}🚀 開始Review指定檔案...${NC}"
echo -e "${BLUE}檔案:$@${NC}"
run_code_review --files "$@" --type basic
fi
# 檢查執行結果
if [ $? -eq 0 ]; then
echo -e "${GREEN}✅ Code Review 完成!${NC}"
echo -e "${BLUE}📄 Review報告位置$PROJECT_ROOT/logs/${NC}"
else
echo -e "${RED}❌ Code Review 失敗!${NC}"
exit 1
fi