# نشر نظيف على Gitea

سكربت `scripts/publish-to-gitea.sh` يدفع نسخة **نظيفة 100% من أي أثر لـ Replit** إلى مستودع Gitea، بدون ما يلمس بيئة Replit أو شغلك المحلي.

## وش يسوّي بالضبط

عند كل تشغيل، يبني نسخة مؤقتة في `/tmp/` ويعمل عليها التالي قبل الدفع:

| الإجراء | التفاصيل |
|---|---|
| يحذف الملفات الخاصة بـ Replit | `.replit`, `.replitignore`, `replit.nix`, `.local/`, `.agents/`, `attached_assets/`, كل `.replit-artifact/` |
| ينظّف رسائل الـ commits | يشيل أي سطر يبدأ بـ `Replit-` (مثل `Replit-Commit-Author`, `Replit-Commit-Screenshot-Url`) |
| يعيد كتابة هوية المؤلف | يستبدل `*@users.noreply.replit.com` باسم وإيميل من اختيارك (الافتراضي: `Riyadh <dev@tx.local>`) |
| يطبّق التغييرات على **كل** الـ commits السابقة | يعني حتى الـ history القديم ينظّف، مو بس الـ commits الجديدة |
| يدفع force-push للـ remote | فقط لو أعطيت `--push` |

## الاستخدام

### 1) معاينة (dry run) — لا يدفع شي
```bash
./scripts/publish-to-gitea.sh
```
يعرض لك آخر 5 commits بعد التنظيف عشان تتأكد قبل الدفع الفعلي.

### 2) دفع فعلي لـ Gitea
```bash
./scripts/publish-to-gitea.sh --push
```

### 3) تخصيص الاسم/الإيميل
```bash
AUTHOR_NAME="Mohammed Ali" AUTHOR_EMAIL="me@example.com" ./scripts/publish-to-gitea.sh --push
```

### 4) دفع لمستودع/فرع مختلف
```bash
GITEA_REMOTE_URL="https://gitea.example.com/me/my-repo.git" \
GITEA_BRANCH="main" \
./scripts/publish-to-gitea.sh --push
```

## ضمانات الأمان

- ✅ كل العمل في مجلد مؤقت (`/tmp/tx-publish-XXXXXX`) — يتحذف تلقائياً.
- ✅ الـ git history الأصلي عندك في Replit ما يتغيّر.
- ✅ Docker setup والـ workflows تكمل تشتغل بشكل عادي.
- ⚠️ Force-push يستبدل تاريخ Gitea كاملاً — لو في clones أخرى للمستودع، لازم تعمل clone جديد.

## متى أشغّله

كل ما تبي تنشر تحديثات لـ Gitea، شغّل السكربت بـ `--push`. ما يحتاج تشغيله إلا لما تبي تحدّث Gitea.

## استرجاع نسخة العمل من Gitea (على الماك)

```bash
git clone https://desktop-11cj93j.tail866923.ts.net/rafraa/TX.git
cd TX
./start.sh
```

ما راح تلقى أي إشارة لـ Replit في الكود ولا في الـ history.
