150 lines
3.9 KiB
Markdown
150 lines
3.9 KiB
Markdown
# Contributing to AI Code Review Agent
|
||
|
||
Спасибо за интерес к проекту! 🎉
|
||
|
||
## Как внести вклад
|
||
|
||
### Сообщить о баге
|
||
|
||
1. Проверьте, что баг еще не был сообщен в Issues
|
||
2. Создайте новый Issue с детальным описанием:
|
||
- Шаги для воспроизведения
|
||
- Ожидаемое поведение
|
||
- Фактическое поведение
|
||
- Версия Python/Node.js
|
||
- Логи ошибок
|
||
|
||
### Предложить улучшение
|
||
|
||
1. Создайте Issue с описанием предложения
|
||
2. Объясните, какую проблему это решит
|
||
3. Приведите примеры использования
|
||
|
||
### Создать Pull Request
|
||
|
||
1. Fork репозиторий
|
||
2. Создайте feature branch:
|
||
```bash
|
||
git checkout -b feature/amazing-feature
|
||
```
|
||
3. Внесите изменения
|
||
4. Убедитесь, что код работает:
|
||
- Backend: `uvicorn app.main:app --reload`
|
||
- Frontend: `npm run dev`
|
||
5. Commit изменения:
|
||
```bash
|
||
git commit -m "Add amazing feature"
|
||
```
|
||
6. Push в branch:
|
||
```bash
|
||
git push origin feature/amazing-feature
|
||
```
|
||
7. Создайте Pull Request
|
||
|
||
## Стандарты кода
|
||
|
||
### Python (Backend)
|
||
|
||
- Следуйте PEP 8
|
||
- Используйте type hints
|
||
- Документируйте функции docstrings
|
||
- Максимальная длина строки: 100 символов
|
||
|
||
```python
|
||
async def my_function(param: str) -> dict:
|
||
"""Short description.
|
||
|
||
Args:
|
||
param: Parameter description
|
||
|
||
Returns:
|
||
Description of return value
|
||
"""
|
||
pass
|
||
```
|
||
|
||
### TypeScript (Frontend)
|
||
|
||
- Используйте строгую типизацию
|
||
- Именование: camelCase для переменных, PascalCase для компонентов
|
||
- Используйте функциональные компоненты с hooks
|
||
|
||
```typescript
|
||
interface MyComponentProps {
|
||
data: string;
|
||
}
|
||
|
||
export default function MyComponent({ data }: MyComponentProps) {
|
||
// ...
|
||
}
|
||
```
|
||
|
||
## Структура коммитов
|
||
|
||
Используйте осмысленные сообщения коммитов:
|
||
|
||
```
|
||
feat: Add GitHub integration
|
||
fix: Resolve WebSocket reconnection issue
|
||
docs: Update README installation steps
|
||
refactor: Simplify review agent logic
|
||
test: Add tests for repository API
|
||
```
|
||
|
||
Префиксы:
|
||
- `feat` - новая функциональность
|
||
- `fix` - исправление бага
|
||
- `docs` - документация
|
||
- `refactor` - рефакторинг
|
||
- `test` - тесты
|
||
- `chore` - обновление зависимостей и т.д.
|
||
|
||
## Тестирование
|
||
|
||
### Backend
|
||
|
||
```bash
|
||
# TODO: Добавить pytest тесты
|
||
pytest tests/
|
||
```
|
||
|
||
### Frontend
|
||
|
||
```bash
|
||
# Линтинг
|
||
npm run lint
|
||
|
||
# Проверка типов
|
||
npx tsc --noEmit
|
||
```
|
||
|
||
## Области для вклада
|
||
|
||
- 🐛 Исправление багов
|
||
- ✨ Новые функции
|
||
- 📝 Улучшение документации
|
||
- 🧪 Добавление тестов
|
||
- 🎨 Улучшение UI/UX
|
||
- ⚡ Оптимизация производительности
|
||
- 🔒 Улучшение безопасности
|
||
|
||
## Идеи для новых функций
|
||
|
||
- [ ] Поддержка GitLab
|
||
- [ ] Настраиваемые правила ревью
|
||
- [ ] Email уведомления
|
||
- [ ] Интеграция с Slack/Discord
|
||
- [ ] Docker контейнеризация
|
||
- [ ] Множественные модели LLM
|
||
- [ ] Анализ метрик кода
|
||
- [ ] Поддержка команд в комментариях PR
|
||
- [ ] Dashboard с графиками
|
||
- [ ] Экспорт отчетов
|
||
|
||
## Вопросы?
|
||
|
||
Создайте Issue с меткой `question`.
|
||
|
||
Спасибо за вклад! 🚀
|
||
|