Skip to main content
Glama

🔍 Git Daily Review

Автоматический ежедневный AI-ревью кода для любого Git-репозитория — доступен как CLI, как запланированная процедура или как MCP-сервер для AI-агентов.

Git Daily Review анализирует ваши ежедневные коммиты в нескольких репозиториях, проверяет их на соответствие соглашениям вашего проекта и контрольным точкам качества, и создаёт структурированный отчёт в формате Markdown. Он поставляется с MCP-сервером (Model Context Protocol), поэтому такие агенты, как Claude Code и Claude Desktop, могут запускать ревью, читать отчёты и курировать базу знаний проекта в диалоговом режиме.

Лицензия: AGPL-3.0-only · ядро на Python 3.10+ · TypeScript MCP-сервер


Возможности

  • Любой репозиторий, любой язык — AI адаптируется к вашему стеку (TypeScript, Python, Java, Go, Rust, C#, …)

  • Мульти-репозиторий — отслеживайте столько репозиториев, сколько нужно, за один запуск

  • MCP-сервер — предоставляет ревью, отчёты и курирование базы знаний как инструменты для агентов

  • Мульти-провайдерный AI — Anthropic Claude, OpenAI, Google Gemini или любая локальная модель через Ollama (полностью офлайн)

  • Самообучающаяся база знаний — 7-уровневый контекст проекта, который учится на каждом ревью, с политикой автоматического слияния, обеспечиваемой кодом, и одобрением человеком для изменений с высоким влиянием

  • Вывод в Markdown + HTML — каждый запуск создаёт daily-summary.md и автономный dashboard.html (тренд качества, графики по гейтам и авторам, фильтруемый список коммитов, табличное представление за каждым графиком). Без CDN и сетевых вызовов: данные вашего ревью кода никогда не покидают машину

  • Готовность к RAG — опциональная интеграция с внешним RAG-сервисом для семантического контекста

  • Кроссплатформенное планирование — macOS (launchd), Linux (cron), Windows (Task Scheduler); секреты хранятся в .env, никогда в файлах планировщика

  • Мастер настройки — веб-конфигурация, не требуется ручное редактирование YAML


Related MCP server: MatterAI MCP Server

Быстрый старт (CLI)

git clone https://github.com/YOUR_USER/git-daily-review.git
cd git-daily-review

# 0. Dependencies in a virtualenv (setup.py does this for you if you skip it)
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

# 1. Configure (opens the wizard in your browser)
python3 setup.py

# 2. Secrets (cloud providers only — Ollama needs none)
cp .env.example .env      # then add e.g. ANTHROPIC_API_KEY=...
chmod 600 .env

# 3. First review
python3 scripts/daily_review.py

# 4. Schedule daily runs
python3 scripts/scheduler.py --install

Справочник CLI:

python3 scripts/daily_review.py                    # review today
python3 scripts/daily_review.py --date 2026-05-12  # specific date
python3 scripts/daily_review.py --days 5           # last N days
python3 scripts/daily_review.py --collect-only     # git data only, no AI
python3 scripts/daily_review.py --history          # report history index

python3 scripts/kb_manager.py --review             # interactive KB curation
python3 scripts/kb_manager.py --approve <ID>       # non-interactive approve
python3 scripts/kb_manager.py --reject  <ID>       # non-interactive reject
python3 scripts/kb_manager.py --stats

Указанный выше python3 может быть любым интерпретатором: если ему не хватает зависимостей, точки входа перезапускают себя в .venv проекта (или $GDR_PYTHON) и сообщают, как его создать, если его нет. Это важно для cron и launchd, где python3 часто является голым системным Python.


MCP-сервер (использование с агентом)

Каталог mcp/ содержит TypeScript MCP-сервер, который оборачивает движок ревью.

cd mcp
npm install
npm run build

Зарегистрируйте его в Claude Code:

claude mcp add git-daily-review -- node /absolute/path/to/git-daily-review/mcp/dist/index.js

Или добавьте его в Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "git-daily-review": {
      "command": "node",
      "args": ["/absolute/path/to/git-daily-review/mcp/dist/index.js"]
    }
  }
}

Доступные инструменты:

Tool

Что делает

run_daily_review

Запустить ревью за сегодня, за дату или за последние N дней

get_report

Прочитать полный отчёт Markdown за дату

list_reports

Список доступных отчётов + индекс истории

list_kb_suggestions

Список предложений базы знаний (фильтр по статусу)

decide_kb_suggestion

Одобрить/отклонить ожидающее предложение по ID

kb_stats

Статистика базы знаний

Затем просто попросите вашего агента, например: «запусти сегодняшнее ревью и обобщи критические проблемы» или «покажи ожидающие предложения базы знаний и одобри те, что касаются соглашений об именовании».

Переопределения окружения: GDR_ROOT (корень проекта, по умолчанию: корень репозитория), GDR_PYTHON (исполняемый файл Python; по умолчанию: .venv проекта, если он есть, иначе python3).


AI-провайдеры

Провайдер

Модели

Переменная окружения для API-ключа

Примечания

Anthropic

Claude Haiku, Sonnet, Opus

ANTHROPIC_API_KEY

OpenAI

GPT-4o-mini, GPT-4o, o1-mini

OPENAI_API_KEY

Google Gemini

Gemini 2.0 Flash, 1.5 Flash/Pro

GEMINI_API_KEY

Ollama (локально)

любая загруженная модель

(нет)

полностью офлайн; установите num_ctx в конфиге (по умолчанию 32768), чтобы избежать обрезания промпта

Секреты хранятся в файле .env в корне проекта (см. .env.example), загружаются автоматически при запуске. Они никогда не записываются в plist-файлы launchd, crontab или пакетные файлы.


База знаний (7 уровней)

config/knowledge-base.yaml предоставляет ревьюеру структурированный контекст проекта:

L0 Identity · L1 Architecture · L2 Conventions · L3 Quality Gates
L4 Domain · L5 Integrations · L6 Release

После каждого запуска система извлекает новые знания, выявленные ревью, и сохраняет их как предложения в config/kb_suggestions/. Политика автоматического слияния обеспечивается кодом (а не моделью): только новые соглашения и информационные/предупреждающие гейты с уверенностью ≥ 0.85 могут автоматически сливаться, максимум 2 за запуск. Критические гейты, доменные правила и интеграции всегда требуют одобрения человека — интерактивно (kb_manager.py --review), через флаги CLI или через MCP-инструмент decide_kb_suggestion.

Полностью отключить обучение можно с помощью kb_learning: false в секции ai: файла config.yaml.


Структура проекта

git-daily-review/
├── setup.py                    ← setup wizard entry point
├── requirements.txt
├── .env.example                ← secrets template (never commit .env)
├── config/
│   ├── config.example.yaml
│   └── knowledge-base.example.yaml
├── scripts/                    ← Python core
│   ├── daily_review.py         ← orchestrator (loads .env at startup)
│   ├── git_collector.py        ← fetch, commits, diffs
│   ├── ai_reviewer.py          ← review pipeline
│   ├── ai_provider.py          ← Anthropic/OpenAI/Ollama/Gemini abstraction
│   ├── kb_updater.py           ← KB learning + code-enforced auto-merge policy
│   ├── kb_manager.py           ← KB curation CLI (interactive + --approve/--reject)
│   ├── rag_client.py           ← optional RAG client
│   ├── report_generator.py     ← Markdown reports + history index
│   ├── html_report.py          ← self-contained HTML dashboard (charts, filters)
│   ├── scheduler.py            ← launchd / cron / schtasks (no secrets on disk)
│   └── wizard_app.py           ← wizard HTTP backend
├── mcp/                        ← MCP server (TypeScript)
│   └── src/index.ts
├── templates/wizard.html
└── reports/                    ← generated daily reports (git-ignored)

Дорожная карта

  • Уведомления по Slack/email для ежедневного отчёта

  • Режим --ci: ненулевой код выхода при критических находках (гейтинг PR)

  • Полный порт ядра на TypeScript

  • Поддержка удалённых репозиториев (ревью без локального клона)

Вклад приветствуется — откройте issue или PR.


Лицензия

Этот проект лицензирован под GNU Affero General Public License v3.0 (AGPL-3.0-only). Если вы запускаете модифицированную версию как сетевой сервис, вы должны предоставить её исходный код пользователям этого сервиса. См. LICENSE.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers