Инструмент для оценки стоимости разработки на основе анализа GitHub репозиториев с использованием машинного обучения.
- Оценка всего репозитория по выбранной ветке
- Оценка отдельных коммитов
- Подробная статистика по изменениям кода
- Экспорт результатов в CSV
- Поддержка приватных репозиториев
- Машинное обучение для точности оценок
- Клонируйте репозиторий:
git clone https://github.com/RomAlx/estimate-code-review.git
cd estimate-code-review
- Установите зависимости:
composer install
- Создайте файл
.env
и добавьте токен GitHub:
REPO_TOKEN=ваш_github_token
Для получения токена:
- Перейдите на https://github.com/settings/tokens
- Создайте новый токен (Generate new token)
- Выберите scope
repo
- Скопируйте токен в
.env
файл
bin/console train
bin/console estimate:repository author/repository [--branch=branch_name]
Если ветка не указана, используется master или основная ветка репозитория.
bin/console estimate:commit author/repository commit_hash
📊 Анализ репозитория author/repository
✓ Подключение к GitHub: успешно
✓ Проверка доступа к репозиторию: успешно
ℹ️ Доступные ветки:
• main (основная)
• develop
• feature/auth
⚡ Начинаем анализ ветки main
[1/134] 8f3d21c3 Initial commit | +150 -0 | 3 файла | 4 185,00 $
...
📊 Итоговая статистика:
╔════════════════════════╤══════════════╗
║ Всего коммитов │ 134 ║
║ Добавлено строк │ 15 420 ║
║ Удалено строк │ 3 250 ║
║ Изменено файлов │ 456 ║
║ Общая стоимость │ 57 875 $ ║
║ Средняя цена коммита │ 241 $ ║
╚════════════════════════╧══════════════╝
📊 Анализ коммита 8f3d21c3
Автор: John Doe
Дата: 2024-12-23 15:49:54
Сообщение: Add authentication feature
Статистика:
- Добавлено строк: 1
- Удалено строк: 1
- Изменено файлов: 1
- Стоимость: $4.74
.
├── bin/
│ └── console # Исполняемый файл
├── data/
│ ├── code-reviews.csv # Данные для обучения
└── src/
└── Command/ # Команды консоли
├── TrainCommand.php
├── EstimateRepositoryCommand.php
└── EstimateCommitCommand.php
- PHP 7.1+
- Symfony Console Component
- PHP-ML (Machine Learning)
- GitHub API
MIT License. Подробности в файле LICENSE.
Romanovsky Aleksey (@RomAlx)
Приветствуются любые предложения по улучшению! Для этого:
- Форкните репозиторий
- Создайте свою ветку (
git checkout -b feature/amazing
) - Зафиксируйте изменения (
git commit -am 'Add amazing feature'
) - Отправьте изменения (
git push origin feature/amazing
) - Создайте Pull Request
Также будем рады, если вы:
- Сообщите об ошибках через Issues
- Предложите новые функции
- Улучшите документацию