Агентная система для цикла разработки на GitHub: Code Agent (Issue → PR), AI Reviewer (ревью PR), генерация README по структуре проекта. Работа через Issues, Pull Requests и при необходимости GitHub Actions.
git clone https://github.com/jylikt/bot-git-itmo.git
cd bot-git-itmopython -m venv .venvWindows (PowerShell):
.venv\Scripts\Activate.ps1Windows (CMD): .venv\Scripts\activate.bat
Linux / macOS: source .venv/bin/activate
python -m pip install --upgrade pip
pip install -e ".[dev]"Скопировать пример и заполнить:
cp .env.example .envВ .env обязательно указать:
| Переменная | Описание |
|---|---|
GITHUB_TOKEN |
Personal Access Token с правами repo |
GITHUB_REPOSITORY |
Целевой репозиторий в формате владелец/репо (для code и reviewer) |
OPENROUTER_API_KEY |
Ключ с OpenRouter (если используете OpenRouter) |
Для YandexGPT: LLM_PROVIDER=yandexgpt, YC_FOLDER_ID, YC_API_KEY или YC_IAM_TOKEN.
Из корня проекта (с активированным .venv):
gaj code --issue 1
gaj reviewer --pr 2 --issue 1
gaj readme --repo-path https://github.com/owner/repo.gitПодробная пошаговая инструкция: ИНСТРУКЦИЯ.md.
Единая точка входа — gaj и подкоманда.
Читает Issue, планирует изменения через LLM, клонирует репо (или использует кеш), вносит правки, пушит ветку и создаёт Pull Request.
| Флаг | Описание |
|---|---|
--issue N |
Обязательный. Номер Issue в целевом репо. |
--pr N |
Номер существующего PR: доработать по замечаниям ревьюера (повторная итерация). |
--repo-path PATH |
Локальный путь к репо; иначе клон по GITHUB_REPOSITORY в кеш. |
--verbose, -v |
Вывести в stderr заголовок и тело Issue перед запросом к LLM. |
--no-cache |
Не использовать кеш клонов; каждый раз клонировать во временную папку. |
Примеры:
gaj code --issue 5
gaj code --issue 5 --pr 12
gaj code --issue 5 -v --no-cacheАнализирует изменения в PR, сверяет с описанием Issue и результатами CI, пишет комментарий в PR. При замечаниях может добавить метку agent-fix-requested.
| Флаг | Описание |
|---|---|
--pr N |
Обязательный. Номер Pull Request. |
--issue N |
Обязательный. Номер связанного Issue (для контекста требований). |
--ci-summary "текст" |
Краткое описание результатов CI (по умолчанию берётся из env CI_SUMMARY). |
Пример:
gaj reviewer --pr 8 --issue 5 --ci-summary "ruff ok, pytest passed"Генерирует README по структуре и конфигам проекта (pyproject.toml, package.json, Dockerfile и т.д.). Определяет тип проекта (приложение или библиотека) и пишет разделы: клонирование, установка, запуск или использование.
| Флаг | Описание |
|---|---|
--repo-path PATH | URL |
Локальная папка или URL репо (например https://github.com/owner/repo.git). По умолчанию — текущая папка или клон по GITHUB_REPOSITORY. |
--output FILE |
Файл для записи. По умолчанию: generate-readme/<название_репо>/README.md в текущей папке. |
--dry-run |
Вывести текст README в stdout, не записывать в файл. |
Примеры:
gaj readme
gaj readme --repo-path https://github.com/jylikt/bot-git-itmo.git
gaj readme --repo-path ./my-project --output generate-readme/my-project/README.md
gaj readme --dry-runДля gaj code (и при необходимости для gaj readme без локальной папки) репозиторий клонируется в .agent_cache/<владелец>_<репо>. При следующих запусках кеш обновляется (git fetch + git reset --hard origin/main). Каталог кеша можно задать через AGENT_CACHE_DIR. Отключить кеш: gaj code --no-cache.
docker build -t coding-agents .
docker run --rm -e GITHUB_TOKEN -e OPENROUTER_API_KEY -e GITHUB_REPOSITORY coding-agents code --issue 1Через docker-compose (переменные из .env):
docker-compose run --rm code-agent --issue 1
docker-compose run --rm reviewer-agent --pr 1 --issue 1В образе используется entrypoint для Code Agent; для reviewer вызывается python -m coding_agents.cli_reviewer.
В репозитории настроены workflow:
- Code Agent on Issue — при открытии Issue (или метке
agent) запускается Code Agent. - Code Agent on Fix Requested — при метке
agent-fix-requestedна PR — новая итерация правок. - CI and Reviewer — при открытии/обновлении PR: ruff, black, pytest и AI Reviewer.
В настройках репо нужны секреты: OPENROUTER_API_KEY (или YandexGPT). GITHUB_TOKEN выдаётся автоматически.
ruff check src/
black src/
pytest tests/ -vsrc/coding_agents/— пакет агентовsrc/coding_agents/cli.py— единая точка входаgaj(code, reviewer, readme)src/coding_agents/llm/— провайдеры LLM (OpenRouter, YandexGPT).github/workflows/— workflow для Issue, PR и Reviewer