Микросервис для автоматического назначения ревьюеров на Pull Request'ы.
Сервис автоматически назначает до двух активных ревьюеров из команды автора при создании PR, позволяет переназначать ревьюеров и управлять командами.
- Go 1.22 - язык разработки
- PostgreSQL 15 - база данных
- Docker & Docker Compose - контейнеризация
- golang-migrate - миграции БД
# Клонируем репозиторий
git clone https://github.com/iwnmname/PR-service.git
# Запускаем сервис (БД + миграции + приложение)
docker-compose up --buildСервис будет доступен на http://localhost:8080
# Остановить
docker-compose down
# Остановить и удалить данные
docker-compose down -vcurl -X POST http://localhost:8080/team/add \
-H "Content-Type: application/json" \
-d '{
"team_name": "backend",
"members": [
{"user_id": "u1", "username": "Alice", "is_active": true},
{"user_id": "u2", "username": "Bob", "is_active": true},
{"user_id": "u3", "username": "Charlie", "is_active": true}
]
}'curl -X POST http://localhost:8080/pullRequest/create \
-H "Content-Type: application/json" \
-d '{
"pull_request_id": "pr-1001",
"pull_request_name": "Add search feature",
"author_id": "u1"
}'curl -X POST http://localhost:8080/users/setIsActive \
-H "Content-Type: application/json" \
-d '{"user_id": "u2", "is_active": false}'curl -X POST http://localhost:8080/pullRequest/merge \
-H "Content-Type: application/json" \
-d '{"pull_request_id": "pr-1001"}'curl http://localhost:8080/statisticsАвтоматические end-to-end тесты:
# Запустить E2E тесты
make test-e2e
# Или вручную
docker-compose -f docker-compose.e2e.yml up --build -d
docker logs -f reviewer_e2e_tests
docker-compose -f docker-compose.e2e.yml down -vАвтоматические load-тесты:
# Запустить основной сервис
docker-compose up -d
# Запустить нагрузочные тесты
make load-test