305 lines
8.6 KiB
Markdown
305 lines
8.6 KiB
Markdown
|
|
# Быстрая настройка для 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
|
|||
|
|
|