91 lines
4.1 KiB
Markdown
91 lines
4.1 KiB
Markdown
# F.16 — Gitea Plugin Review, Test & Public Release
|
||
|
||
> Session prompt. Copy and paste into a new Claude Code conversation.
|
||
|
||
---
|
||
|
||
## Prompt:
|
||
|
||
```
|
||
از مهارت project-ops برای آشنایی با محیط استفاده کن. پروژه mcphub-internal روی branch Phase-1 است.
|
||
فایلهای مرجع:
|
||
- docs/plans/2026-03-25-v4-development-cycle.md
|
||
- CLAUDE.md
|
||
- CHANGELOG.md
|
||
|
||
## وضعیت فعلی
|
||
- نسخه: v3.5.0
|
||
- 565 ابزار در 9 پلاگین (4 پلاگین عمومی: WordPress, WooCommerce, Supabase, OpenPanel)
|
||
- FastMCP: `>=3.0.0,<4.0.0`
|
||
- CI سبز
|
||
- F.15 تکمیل شده — FastMCP 3.x upgrade + legacy cleanup
|
||
|
||
## هدف: فاز F.16 — Gitea Plugin Review, Test & Public Enablement
|
||
|
||
مشابه F.10 (OpenPanel) — بررسی، تست و فعالسازی عمومی پلاگین Gitea.
|
||
|
||
### بخش 1: بررسی و تحلیل
|
||
1. **ساختار پلاگین**: `plugins/gitea/` شامل 56 ابزار در 5 هندلر:
|
||
- `handlers/repositories.py` — 16 tools (CRUD repos, branches, tags, files)
|
||
- `handlers/issues.py` — 12 tools (issues, comments, labels, milestones)
|
||
- `handlers/pull_requests.py` — 15 tools (PRs, reviews, merge, diff)
|
||
- `handlers/users.py` — 8 tools (users, orgs, teams)
|
||
- `handlers/webhooks.py` — 5 tools (CRUD webhooks, test)
|
||
2. **مشکلات شناساییشده**:
|
||
- `update_webhook` در client.py هست ولی به عنوان tool expose نشده
|
||
- هیچ تست اختصاصیای ندارد (0 تست!)
|
||
- فعلاً admin-only هست (نه در ENABLED_PLUGINS)
|
||
3. **تست واقعی**: سایت Gitea از MCPHub MCP endpoint:
|
||
- از ابزارهای Supabase MCP (`mcp.example.com`) استفاده کنید تا سایت Gitea موجود را پیدا کنید
|
||
- یا یک Gitea instance جدید از طریق داشبورد اضافه کنید
|
||
- هر دسته tool را با API واقعی تست کنید
|
||
|
||
### بخش 2: تست نوشتن
|
||
مشابه `tests/test_openpanel_plugin.py` (الگو — 767 خط, 62 تست):
|
||
1. `tests/test_gitea_plugin.py` بنویسید:
|
||
- Client initialization + health check
|
||
- Tool spec validation (نامها، پارامترها، type ها)
|
||
- Handler delegation (mock client)
|
||
- Error handling
|
||
- Pagination
|
||
2. هدف: حداقل 80 تست (56 tool + edge cases)
|
||
|
||
### بخش 3: رفع مشکلات
|
||
1. `update_webhook` را به عنوان tool expose کنید
|
||
2. هر tool که در تست واقعی مشکل دارد را fix کنید
|
||
3. توضیحات service page برای Gitea بنویسید
|
||
4. health check endpoint را بررسی کنید
|
||
|
||
### بخش 4: فعالسازی عمومی
|
||
1. `core/plugin_visibility.py`: اضافه کردن `gitea` به `DEFAULT_PUBLIC_PLUGINS`
|
||
2. `env.example`: آپدیت ENABLED_PLUGINS default
|
||
3. `glama.json`: آپدیت description اگر لازمه
|
||
|
||
### بخش 5: Release
|
||
1. Version bump: `3.5.0` → `3.6.0`
|
||
2. CHANGELOG update
|
||
3. Lint: `uvx --python 3.12 black .` && `uvx ruff check --fix .`
|
||
4. Commit + push Phase-1
|
||
5. Sync: `python3.11 scripts/community-build/sync.py --output ../mcphub/`
|
||
6. بعد از sync حتماً `uvx --python 3.12 black .` در public repo هم بزنید!
|
||
7. Commit + push public repo
|
||
|
||
### مراحل پیشنهادی
|
||
1. **تحلیل**: خواندن کامل هر handler + client + schemas
|
||
2. **تست واقعی**: اتصال به Gitea instance و تست ابزارها
|
||
3. **پلن اجرایی**: ارائه پلن و تایید قبل از شروع
|
||
4. **تست نوشتن**: test_gitea_plugin.py
|
||
5. **رفع مشکلات**: fix هر tool مشکلدار
|
||
6. **فعالسازی**: ENABLED_PLUGINS update
|
||
7. **Release**: v3.6.0
|
||
|
||
### نکات فنی
|
||
- Private repo: /config/workspace/mcphub-internal (branch Phase-1)
|
||
- Public repo: /config/workspace/mcphub (branch main)
|
||
- Lint: `uvx --python 3.12 black .` && `uvx ruff check --fix .`
|
||
- Sync: `python3.11 scripts/community-build/sync.py --output ../mcphub/`
|
||
- ایمیل git عمومی: hi.airano@gmail.com
|
||
- **مهم**: اول پلن بده، بدون تایید شروع نکن
|
||
- **الگوی مرجع**: F.10 (OpenPanel) — بخش "Phase F.10" در plan و `tests/test_openpanel_plugin.py`
|
||
```
|