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 <noreply@anthropic.com>
This commit is contained in:
2026-09-08 09:07:23 +07:00
parent 3e1314a3e1
commit 4da2d45af3
2 changed files with 35 additions and 25 deletions
+15 -20
View File
@@ -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/<OWNER>/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/<OWNER>/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 <URL>/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 <URL>/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 <URL>/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 |
---
+20 -5
View File
@@ -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 <URL>/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/<OWNER>/<REPO>.git curl -fsSL <URL>/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}"