134 lines
4.1 KiB
Bash
Executable File
134 lines
4.1 KiB
Bash
Executable File
#!/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"
|
||
|
||
# 顯示標題
|
||
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"
|
||
}
|
||
|
||
# 顯示選單
|
||
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 ""
|
||
read -p "請輸入選項 (1-7): " 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
|
||
;;
|
||
*)
|
||
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
|