Files
openclaude-LLM-local/docs/openclaude-with-repositories.md
T
2026-04-20 23:18:13 +10:00

119 lines
4.8 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.
# OpenClaude и Git-репозитории
Как организовать работу OpenClaude с GitHub/GitLab/Gitea и похожими сервисами.
## 1) Что значит "научить OpenClaude работать с репозиториями"
Обычно это 3 уровня:
1. **Локальный уровень**: OpenClaude работает в локальном git-репозитории (`clone`, `branch`, `commit`).
2. **Remote уровень**: пуш/PR/issue через токены и CLI (`gh`, `glab`, `tea`).
3. **Контекст и автоматизация**: доступ к данным репозитория через MCP-инструменты.
## 2) Базовая схема (рекомендуется)
- Клонировать репозиторий локально.
- Запускать OpenClaude из корня проекта.
- Для GitHub использовать `gh auth login`.
- Для GitLab использовать `glab auth login`.
- Для Gitea использовать SSH-ключи или PAT в remote URL/credential manager.
Это даёт OpenClaude полный цикл: читать код, редактировать, запускать тесты, делать коммиты и PR.
## 3) Настройка аутентификации без постоянного ввода пароля
Подробный SSH-гайд с типовыми ошибками:
- `docs/github-ssh-setup-and-troubleshooting.md`
### GitHub
```bash
gh auth login
gh auth status
```
### GitLab
```bash
glab auth login
glab auth status
```
### Универсально для git HTTPS
```bash
git config --global credential.helper store
```
Лучше и безопаснее - SSH:
```bash
ssh-keygen -t ed25519 -C "you@example.com"
# добавить публичный ключ в GitHub/GitLab/Gitea
git remote set-url origin git@github.com:OWNER/REPO.git
```
## 4) Минимальный безопасный процесс работы с кодом
1. Создать отдельную feature-ветку.
2. Делать небольшие коммиты с понятными сообщениями.
3. Перед push запускать тесты/lint.
4. Не хранить секреты в репозитории (`.env`, ключи, токены).
5. Для main/master включить protected branch и PR review.
## 5) Как подключить репозиторий как источник знаний (RAG)
Если цель - чтобы OpenClaude "знал проект":
- индексировать `README`, `docs`, ADR, API-контракты, runbook
- не индексировать шум (`node_modules`, `dist`, lock-файлы без необходимости)
- регулярно переиндексировать после merge крупных изменений
Простой путь:
- `git clone` репозиторий
- копировать нужные папки в `docs/rag-mcp-starter/docs`
- запускать `index.py`
- использовать `search_docs` и `answer_with_citations`
## 6) MCP для Git-платформ: что имеет смысл добавить
Полезные MCP-инструменты:
- `list_prs(repo)`
- `get_pr_diff(repo, pr_number)`
- `list_issues(repo, label)`
- `create_issue(repo, title, body)`
- `comment_pr(repo, pr_number, body)`
- `get_file_at_ref(repo, path, ref)`
Такой слой позволяет OpenClaude работать не только с локальным checkout, но и с удаленным контекстом.
## 7) Практика для self-hosted Git (Gitea/Forgejo/GitLab self-hosted)
1. Убедиться в доступности API/SSH с сервера.
2. Создать сервисный токен с минимальными правами (least privilege).
3. Хранить токен в переменных окружения или secrets manager.
4. Ограничить доступ по IP/ACL.
5. Вести аудит действий (кто/когда создал PR/comment/push).
## 8) Частые ошибки
- OpenClaude запущен не из корня репозитория.
- Нет прав на push в remote.
- PAT истек или не имеет scope для PR/issues.
- Смешивание нескольких аккаунтов в одном credential helper.
- Отсутствуют локальные зависимости проекта (тесты не запускаются).
## 9) Рабочий чек-лист перед началом
```bash
git status
git remote -v
gh auth status || true
glab auth status || true
```
Если всё ок - можно давать OpenClaude задачи на полный цикл "изменение -> тест -> commit -> PR".