From 4da2d45af3a4fbd06680847b6e03c6f2dcfdea41 Mon Sep 17 00:00:00 2001 From: thienpt Date: Tue, 8 Sep 2026 09:07:23 +0700 Subject: [PATCH] feat: configure public HTTPS installer URL for universal access - Update install.sh to use public HTTPS git URL without requiring SSH credentials - Update README.md with exact 1-line curl installer command for any developer - Fix argument parsing for flags like --force Co-Authored-By: Claude Fable 5 --- README.md | 35 +++++++++++++++-------------------- install.sh | 25 ++++++++++++++++++++----- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 7e1f043..971cbd5 100644 --- a/README.md +++ b/README.md @@ -104,30 +104,23 @@ agent-unit-testing/ ## 3. Cài Đặt Trực Tiếp Vào Source Code (Không Cần Clone Repo) -Bất kỳ ai muốn sử dụng bộ công cụ này **KHÔNG CẦN phải clone source code công cụ về máy**. +Bất kỳ ai muốn sử dụng bộ công cụ này (dù trong hay ngoài team, trên bất kỳ máy tính nào) **KHÔNG CẦN phải clone repository công cụ về máy**. -Chỉ cần mở Terminal, `cd` vào thư mục dự án Laravel của bạn và chạy **đúng 1 dòng lệnh**: +Chỉ cần mở Terminal, `cd` vào thư mục dự án Laravel của bạn và chạy **đúng 1 dòng lệnh duy nhất**: -### 🌟 1 Dòng Lệnh Cài Đặt Từ Xa (Remote 1-Line Installer) ```bash cd /duong-dan/toi/source-code-laravel-cua-ban -# Chạy lệnh cài đặt từ xa: -curl -fsSL https://raw.githubusercontent.com//agent-unit-testing/main/install.sh | bash +# 🌟 Cài đặt trực tiếp qua HTTPS công khai (không cần tài khoản, không cần SSH key): +curl -fsSL https://git.smartgift.io.vn/Smartgift-AI/agent-unit-testing/raw/branch/main/install.sh | bash ``` -*(Đối với thành viên trong nội bộ team Smartgift hoặc khi dùng Git SSH server):* -```bash -cd /duong-dan/toi/source-code-laravel-cua-ban - -# Cài đặt trực tiếp qua Git mà không cần lưu repo công cụ: -bash <(git archive --remote=ssh://git@ssh-git.smartgift.io.vn:2222/Smartgift-AI/agent-unit-testing.git main install.sh | tar -xO) -``` +*(Nếu thư mục đang trống hoặc chưa có file `composer.json`, thêm cờ `--force` vào cuối: `... | bash -s -- --force`)*. --- ### 🎯 Quy Trình Tự Động Diễn Ra Ngầm: -1. Script sẽ tải các tài nguyên cần thiết từ xa vào thư mục tạm `/tmp/`. +1. Script sẽ tải các tài nguyên cần thiết từ xa qua HTTPS vào thư mục tạm `/tmp/`. 2. Tự động cấy trực tiếp vào source code của bạn: - Thư mục `.claude/skills/` (với trọn bộ 4 Skills viết test tự động). - Thư mục `.claude/testing-docs/` (cẩm nang quy chuẩn 13 tầng Laravel). @@ -141,12 +134,16 @@ bash <(git archive --remote=ssh://git@ssh-git.smartgift.io.vn:2222/Smartgift-AI/ ## 4. Tùy Chọn: Cài Đặt Toàn Cục Cho Toàn Máy Tính (Global Mode) -Nếu bạn là lập trình viên muốn cài 1 lần duy nhất cho toàn bộ máy tính (để mọi source code mở Claude Code lên đều tự có sẵn các lệnh): +Nếu bạn muốn cài 1 lần duy nhất cho toàn bộ máy tính (để mọi source code mở Claude Code lên đều tự có sẵn các lệnh): ```bash -curl -fsSL https://raw.githubusercontent.com//agent-unit-testing/main/install.sh | bash -s -- --global +curl -fsSL https://git.smartgift.io.vn/Smartgift-AI/agent-unit-testing/raw/branch/main/install.sh | bash -s -- --global ``` +🎯 **Lợi ích:** +- Tự động cài đặt 4 Skills vào `~/.claude/skills/`. +- Đăng ký lệnh `laravel-test-init` (hoặc `sg-test-init`) vào Terminal để gõ ở bất kỳ thư mục nào cũng tự tạo `test-runner.sh`. + 🎯 **Lợi ích:** - Tự động cài đặt 4 Skills vào `~/.claude/skills/`. - Đăng ký lệnh `sg-test-init` (hoặc `laravel-test-init`) vào Terminal để gõ ở bất kỳ thư mục nào cũng tự tạo `test-runner.sh`. @@ -299,9 +296,9 @@ laravel-test-init --force | Nhiệm Vụ | Lệnh Terminal / Claude Code | Ngữ Cảnh Sử Dụng | | :--- | :--- | :--- | -| **Cài đặt từ xa (Không cần clone)** | `curl -fsSL /install.sh \| bash` | Đứng tại source code Laravel và chạy 1 dòng duy nhất | -| **Cài đặt toàn cục (Global Mode)** | `curl -fsSL /install.sh \| bash -s -- --global` | Cài vào máy dùng cho mọi folder | -| **Cài đặt vào thư mục trống** | `curl -fsSL /install.sh \| bash -s -- . --force` | Dùng khi thư mục chưa có `composer.json` | +| **Cài đặt từ xa (Không cần clone)** | `curl -fsSL https://git.smartgift.io.vn/Smartgift-AI/agent-unit-testing/raw/branch/main/install.sh \| bash` | Đứng tại source code Laravel và chạy 1 dòng duy nhất | +| **Cài đặt toàn cục (Global Mode)** | `curl -fsSL https://git.smartgift.io.vn/Smartgift-AI/agent-unit-testing/raw/branch/main/install.sh \| bash -s -- --global` | Cài vào máy dùng cho mọi folder | +| **Cài đặt vào thư mục trống** | `curl -fsSL https://git.smartgift.io.vn/Smartgift-AI/agent-unit-testing/raw/branch/main/install.sh \| bash -s -- . --force` | Dùng khi thư mục chưa có `composer.json` | | **Khởi tạo test runner nhanh** | `laravel-test-init` (hoặc `sg-test-init`) | Gõ tại terminal của bất kỳ dự án nào | | **Cập nhật bộ công cụ (1-Click)** | `laravel-test-update` (hoặc `sg-test-update`) | Kéo bản mới nhất từ Git về máy mọi lúc | | **Quét & Setup môi trường test** | `/laravel-test-setup` | Chạy trong Claude Code để kiểm tra cấu hình | @@ -316,8 +313,6 @@ laravel-test-init --force | **Chạy test tự nhận diện** | `./test-runner.sh --filter=MyTest` | Tự bắt Docker / Sail / Local | | **Tra cứu sửa lỗi** | Đọc `docs/07-troubleshooting-and-debugging.md` | Sửa 10 lỗi thường gặp nhất | | **Tra cứu 7 ca khó** | Đọc `docs/09-advanced-edge-cases.md` | `DB::transaction()`, Trait, Upload file, Queue | -| **Tra cứu sửa lỗi** | Đọc `docs/07-troubleshooting-and-debugging.md` | Sửa 10 lỗi thường gặp nhất | -| **Tra cứu 7 ca khó** | Đọc `docs/09-advanced-edge-cases.md` | `DB::transaction()`, Trait, Upload file, Queue | --- diff --git a/install.sh b/install.sh index 9290935..b81a45e 100755 --- a/install.sh +++ b/install.sh @@ -23,11 +23,11 @@ CYAN='\033[0;36m' BOLD='\033[1m' NC='\033[0m' -# Remote Repository URL (Có thể override qua biến môi trường LARAVEL_TEST_REPO) -DEFAULT_REPO="ssh://git@ssh-git.smartgift.io.vn:2222/Smartgift-AI/agent-unit-testing.git" +# Remote Repository URL công khai qua HTTPS (ai cũng truy cập được không cần SSH key) +DEFAULT_REPO="https://git.smartgift.io.vn/Smartgift-AI/agent-unit-testing.git" REPO_URL="${LARAVEL_TEST_REPO:-$DEFAULT_REPO}" -TARGET_DIR="${1:-.}" +TARGET_DIR="" GLOBAL_MODE=false FORCE_MODE=false @@ -54,14 +54,19 @@ for arg in "$@"; do echo -e " ${YELLOW}curl -fsSL /install.sh | bash -s -- . --force${NC}" exit 0 ;; + -*) + # Bỏ qua các flag khác + ;; *) - if [ "$arg" != "." ] && [ ! -d "$arg" ] && [ "$GLOBAL_MODE" = false ]; then + if [ -z "$TARGET_DIR" ]; then TARGET_DIR="$arg" fi ;; esac done +TARGET_DIR="${TARGET_DIR:-.}" + echo -e "${BLUE}===================================================================${NC}" echo -e "${CYAN}${BOLD} 🚀 SMARTGIFT AI - LARAVEL UNIT TESTING TOOLKIT INSTALLER${NC}" echo -e "${BLUE}===================================================================${NC}" @@ -82,7 +87,17 @@ if [ -n "$SCRIPT_DIR" ] && [ -d "$SCRIPT_DIR/.claude/skills" ]; then else echo -e "${YELLOW}📥 Đang tải bộ công cụ từ remote repository...${NC}" TMP_DIR="$(mktemp -d 2>/dev/null || mktemp -d -t 'sg_unit_testing')" - git clone --depth 1 "$REPO_URL" "$TMP_DIR" --quiet + + # Thử clone qua git + if ! git clone --depth 1 "$REPO_URL" "$TMP_DIR" --quiet 2>/dev/null; then + echo -e "${RED}❌ Không thể clone từ repository: $REPO_URL${NC}" + echo -e "${YELLOW}💡 Lưu ý dành cho người dùng bên ngoài:${NC}" + echo -e " Nếu bạn không phải thành viên có SSH key nội bộ, hãy chạy với URL HTTPS công khai:" + echo -e " ${CYAN}LARAVEL_TEST_REPO=https://github.com//.git curl -fsSL /install.sh | bash${NC}" + rm -rf "$TMP_DIR" + exit 1 + fi + PACKAGE_ROOT="$TMP_DIR" CLEANUP_TEMP=true echo -e "${GREEN}✓ Tải thành công!${NC}"