# Участие в разработке Repomix
Спасибо за ваш интерес к **Repomix**! 🚀 Мы будем рады вашей помощи в улучшении проекта. Это руководство поможет вам начать участвовать в разработке.
## Как внести вклад
- **Поставьте звезду репозиторию**: Покажите вашу поддержку, [поставив звезду репозиторию](https://github.com/yamadashy/repomix)!
- **Создайте Issue**: Нашли баг? Есть идея новой функции? Дайте нам знать, [создав issue](https://github.com/yamadashy/repomix/issues).
- **Отправьте Pull Request**: Нашли что-то для исправления или улучшения? Присоединяйтесь и отправьте PR!
- **Расскажите о нас**: Поделитесь своим опытом с Repomix в социальных сетях, блогах или с вашим техническим сообществом.
- **Используйте Repomix**: Лучшая обратная связь приходит от реального использования, так что интегрируйте Repomix в свои проекты!
- **Спонсорство**: Поддержите разработку Repomix, [став спонсором](https://github.com/sponsors/yamadashy).
## Настройка разработки
### Предварительные требования
- Node.js ≥ 20.0.0
- Git
- npm
- Docker (опционально, для запуска сайта или контейнерной разработки)
### Локальная разработка
Для настройки Repomix для локальной разработки:
```bash
# Клонировать репозиторий
git clone https://github.com/yamadashy/repomix.git
cd repomix
# Установить зависимости
npm install
# Запустить CLI
npm run repomix
```
### Разработка с Docker
Вы также можете запустить Repomix с помощью Docker:
```bash
# Собрать образ
docker build -t repomix .
# Запустить контейнер
docker run -v ./:/app -it --rm repomix
```
### Структура проекта
Проект организован в следующие директории:
```
src/
├── cli/ # Реализация CLI
├── config/ # Обработка конфигурации
├── core/ # Основная функциональность
│ ├── file/ # Обработка файлов
│ ├── metrics/ # Расчёт метрик
│ ├── output/ # Генерация вывода
│ ├── security/ # Проверки безопасности
├── mcp/ # Интеграция MCP-сервера
└── shared/ # Общие утилиты
tests/ # Тесты, отражающие структуру src/
website/ # Сайт документации
├── client/ # Фронтенд (VitePress)
└── server/ # Бэкенд API
```
## Команды разработки
```bash
# Запустить CLI
npm run repomix
# Запустить тесты
npm run test
npm run test-coverage
# Проверить код
npm run lint
```
### Тестирование
Мы используем [Vitest](https://vitest.dev/) для тестирования. Для запуска тестов:
```bash
# Запустить тесты
npm run test
# Покрытие тестами
npm run test-coverage
# Линтинг
npm run lint-biome
npm run lint-ts
npm run lint-secretlint
```
## Стиль кода
- Используйте [Biome](https://biomejs.dev/) для линтинга и форматирования
- Внедрение зависимостей для тестируемости
- Держите файлы меньше 250 строк
- Добавляйте тесты для новых функций
Мы используем [Biome](https://biomejs.dev/) для линтинга и форматирования. Убедитесь, что ваш код следует руководству по стилю:
```bash
npm run lint
```
## Рекомендации по Pull Request
Перед отправкой Pull Request убедитесь:
1. Ваш код проходит все тесты: Запустите `npm run test`
2. Ваш код соответствует стандартам линтинга: Запустите `npm run lint`
3. Вы обновили соответствующую документацию
4. Вы следуете существующему стилю кода
## Разработка сайта
Сайт Repomix построен на [VitePress](https://vitepress.dev/). Для локального запуска сайта:
```bash
# Предварительные требования: Docker должен быть установлен в вашей системе
# Запустить сервер разработки сайта
npm run website
# Доступ к сайту по адресу http://localhost:5173/
```
При обновлении документации вам нужно только обновить английскую версию. Мейнтейнеры позаботятся о переводах на другие языки.
## Процесс релиза
Для мейнтейнеров и контрибьюторов, интересующихся процессом релиза:
1. Обновить версию
```bash
npm version patch # или minor/major
```
2. Запустить тесты и сборку
```bash
npm run test-coverage
npm run build
```
3. Опубликовать
```bash
npm publish
```
Новые версии управляются мейнтейнером. Если вы считаете, что нужен релиз, откройте issue для обсуждения.
## Нужна помощь?
- [Создать issue](https://github.com/yamadashy/repomix/issues)
- [Присоединиться к Discord](https://discord.gg/wNYzTwZFku)