Files
ewoooc/scripts/quick_review.sh
OoO 65eea5eb9a
Some checks failed
CD Pipeline / deploy (push) Has been cancelled
chore(observability): add noninteractive QA quick review flags
2026-05-05 23:25:55 +08:00

186 lines
5.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"
OBSERVABILITY_CSS_SYNC="$PROJECT_ROOT/scripts/sync_observability_css.py"
# 顯示標題
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"
}
run_observability_css_sync() {
if [ ! -f "$OBSERVABILITY_CSS_SYNC" ]; then
echo -e "${RED}❌ AI觀測台 CSS 同步腳本不存在: $OBSERVABILITY_CSS_SYNC${NC}"
exit 1
fi
echo -e "${GREEN}🎨 同步 AI觀測台 CSS 到 Flask static path...${NC}"
python3 "$OBSERVABILITY_CSS_SYNC"
}
# 非互動入口給部署腳本、CI、或 Codex session 直接呼叫。
if [ $# -gt 0 ]; then
case "$1" in
--observability-ui)
run_observability_ui_guard
exit $?
;;
--observability-smoke)
run_observability_page_smoke
exit $?
;;
--observability-qa)
run_observability_qa_suite
exit $?
;;
--sync-observability-css)
run_observability_css_sync
exit $?
;;
esac
fi
# 顯示選單
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 "9) 同步 AI觀測台 CSS static mirror"
echo ""
read -p "請輸入選項 (1-9): " 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
;;
9)
run_observability_css_sync
;;
*)
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