mnemo_cards/ai_docs/agent/FORGEJO_SETUP.md
2025-11-21 00:28:55 +03:00

304 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Быстрая настройка для Forgejo
Пошаговая инструкция для быстрого запуска AI Agent системы на Forgejo.
## Шаг 1: Настройка Forgejo Actions
### 1.1 Включите Actions в Forgejo
Отредактируйте `/etc/forgejo/app.ini`:
```ini
[actions]
ENABLED = true
DEFAULT_ACTIONS_URL = https://code.forgejo.org
```
Перезапустите:
```bash
sudo systemctl restart forgejo
```
### 1.2 Установите Forgejo Runner
```bash
# Скачайте runner
wget https://code.forgejo.org/forgejo/runner/releases/download/v3.3.0/forgejo-runner-3.3.0-linux-amd64
sudo mv forgejo-runner-3.3.0-linux-amd64 /usr/local/bin/forgejo-runner
sudo chmod +x /usr/local/bin/forgejo-runner
# Создайте директорию
sudo mkdir -p /etc/forgejo-runner
cd /etc/forgejo-runner
```
### 1.3 Получите Registration Token
1. Откройте Forgejo в браузере
2. Перейдите в ваш репозиторий
3. Settings -> Actions -> Runners
4. Нажмите "Create new Runner"
5. Скопируйте Registration Token
### 1.4 Зарегистрируйте Runner
```bash
cd /etc/forgejo-runner
sudo forgejo-runner register \
--no-interactive \
--instance https://your-forgejo.com \
--token ВАШТОКЕН \
--name ai-agent-runner \
--labels ubuntu-latest:docker://node:16-bullseye
```
### 1.5 Создайте systemd service
```bash
sudo tee /etc/systemd/system/forgejo-runner.service > /dev/null <<EOF
[Unit]
Description=Forgejo Runner
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/etc/forgejo-runner
ExecStart=/usr/local/bin/forgejo-runner daemon
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
# Запустите
sudo systemctl daemon-reload
sudo systemctl enable forgejo-runner
sudo systemctl start forgejo-runner
```
### 1.6 Проверьте статус
```bash
sudo systemctl status forgejo-runner
# Должно быть: Active: active (running)
```
## Шаг 2: Настройка Cursor API
### 2.1 Получите API Key
1. Откройте Cursor
2. Settings (⚙️)
3. Account -> API Keys
4. "Create new API key"
5. Скопируйте ключ (показывается только один раз!)
Сохраните ключ, например: `sk-cursor-abc123...`
## Шаг 3: Настройка Secrets в Forgejo
### 3.1 Создайте Forgejo Token
1. Forgejo -> Settings -> Applications
2. Generate New Token
3. Token Name: `ai-agent-token`
4. Select Scopes:
-`repo` (Full control of repositories)
-`write:issue` (Create and edit issues)
-`write:workflow` (Update workflow files)
5. Generate Token
6. Скопируйте token
### 3.2 Добавьте Secrets в Repository
1. Откройте ваш репозиторий в Forgejo
2. Settings -> Secrets and Variables -> Actions
3. Добавьте два обязательных secrets:
**Secret 1: CURSOR_API_KEY**
- Name: `CURSOR_API_KEY`
- Value: `sk-cursor-abc123...` (ваш ключ из Step 2.1)
**Secret 2: FORGEJO_TOKEN**
- Name: `FORGEJO_TOKEN`
- Value: ваш token из Step 3.1
**Optional Secret 3: CURSOR_MODEL**
- Name: `CURSOR_MODEL`
- Value: `claude-3-5-sonnet-20241022`
## Шаг 4: Проверка файлов
Убедитесь что эти файлы существуют в вашем репозитории:
```bash
ls -la .github/workflows/
# Должны быть:
# - agent-planning.yml
# - agent-development.yml
# - agent-test-deploy.yml
ls -la tools/agent/
# Должны быть:
# - config.py
# - task_manager.py
# - cursor_cli_wrapper.py
# - agent_orchestrator.py
# - planning_agent.py
ls -la ai_docs/agent/
# Должны быть:
# - web_v2/task_list.json
# - web_v2/agent_state.json
# - backend/task_list.json
# - backend/agent_state.json
# - global_lock.json
# - prompts/development_prompt.md
# - prompts/planning_prompt.md
```
## Шаг 5: Первый запуск
### 5.1 Запустите Planning Agent
1. В Forgejo откройте репозиторий
2. Перейдите на вкладку **Actions**
3. Слева выберите **"AI Agent - Planning"**
4. Справа нажмите **"Run workflow"**
5. Выберите:
- Branch: `master`
- Component: `web_v2`
6. Нажмите **"Run workflow"**
### 5.2 Наблюдайте за выполнением
1. Вернитесь на вкладку Actions
2. Увидите новый workflow run
3. Кликните на него
4. Смотрите логи в реальном времени
### 5.3 Проверьте результат
После завершения Planning Agent:
```bash
# Клонируйте репозиторий (если еще не клонировали)
git clone https://your-forgejo.com/user/repo.git
cd repo
# Проверьте task list
cat ai_docs/agent/web_v2/task_list.json | jq
# Должен быть JSON с задачами
```
Также:
- Должен появиться новый Issue с summary
- Должен автоматически запуститься Development Agent
### 5.4 Наблюдайте Development Agent
Development Agent запустится автоматически:
1. Actions -> "AI Agent - Development"
2. Найдите активный workflow run
3. Смотрите как агент:
- Читает задачи
- Пишет код
- Запускает тесты
- Делает коммиты
## Проверка что все работает
### ✅ Checklist
- [ ] Forgejo Actions включены (`app.ini`)
- [ ] Forgejo Runner запущен и online
- [ ] Cursor API Key получен
- [ ] Forgejo Token создан
- [ ] Оба secrets добавлены в repository
- [ ] Workflow файлы существуют в `.github/workflows/`
- [ ] Python скрипты существуют в `tools/agent/`
- [ ] State файлы существуют в `ai_docs/agent/*/`
- [ ] Planning Agent успешно запущен
- [ ] Task list JSON создан
- [ ] Development Agent запущен автоматически
### 🐛 Если что-то не работает
**Runner offline:**
```bash
sudo systemctl status forgejo-runner
sudo journalctl -u forgejo-runner -f
```
**Workflow не запускается:**
- Проверьте что runner online (Settings -> Actions -> Runners)
- Проверьте labels runner совпадают с `runs-on: ubuntu-latest`
**Secrets не работают:**
- Перепроверьте названия: `CURSOR_API_KEY` и `FORGEJO_TOKEN`
- Убедитесь что ввели правильные значения
- Попробуйте пересоздать secrets
**Python ошибки:**
- Проверьте логи workflow
- Убедитесь что все файлы в `tools/agent/` существуют
- Проверьте синтаксис Python скриптов
## Дальнейшие шаги
После успешного первого запуска:
1. **Мониторинг**: Следите за прогрессом в Actions tab
2. **Ревью**: Проверяйте коммиты от агента
3. **Настройка**: Отредактируйте `tasks.md` для новых задач
4. **Масштабирование**: Запустите агентов для других компонентов (backend, common)
## Полезные команды
```bash
# Проверка runner
sudo systemctl status forgejo-runner
# Логи runner
sudo journalctl -u forgejo-runner -f
# Проверка agent state
cat ai_docs/agent/web_v2/agent_state.json | jq
# Проверка task list
cat ai_docs/agent/web_v2/task_list.json | jq
# Триггер planning через API
curl -X POST \
"https://your-forgejo.com/api/v1/repos/user/repo/actions/workflows/agent-planning.yml/dispatches" \
-H "Authorization: token $FORGEJO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"ref":"master","inputs":{"component":"web_v2"}}'
# Список workflow runs
curl -X GET \
"https://your-forgejo.com/api/v1/repos/user/repo/actions/runs" \
-H "Authorization: token $FORGEJO_TOKEN"
```
## Поддержка
Если возникли проблемы:
1. Проверьте [CONFIGURATION.md](./CONFIGURATION.md) для детальной настройки
2. Посмотрите [README.md](./README.md) для полной документации
3. Проверьте логи: `sudo journalctl -u forgejo-runner -f`
4. Создайте issue в репозитории
---
**Время на настройку**: 15-30 минут
**Сложность**: Средняя
**Требует**: Root доступ к серверу Forgejo