Сервис, который назначает ревьюеров на PR из команды автора, позволяет выполнять переназначение ревьюверов и получать список PR’ов, назначенных конкретному пользователю, а также управлять командами и активностью пользователей.
- Быстрый старт
- Эндпоинты
- Коды ошибок
- Нагрузочное тестирование
- Миграции
- Структура проекта
- Требования
- Лицензия
-
Клонируйте репозиторий
git clone https://github.com/steqa/avito-tech-internship.git project-folder
-
Соберите и запустите Docker-контейнеры
cd project-folderdocker compose up
-
API будет доступен по адресу: http://localhost:8080
Описаны в документации.
❗ Реализован эндпоинт для получения статистики: GET /stats.
TEAM_EXISTS,USER_EXISTS,PR_MERGED,NOT_ASSIGNED,NO_CANDIDATE,PR_EXISTSNOT_FOUNDBAD_REQUEST(агрегация валидационных ошибок)RATE_LIMITINTERNAL
❗ Замечание: реализация содержит больше кодов ошибок, чем указано в документации.
Проведено с помощью Locust для трех эндпоинтов:
-
POST /pullRequest/reassignRequests Fails Median (ms) Average (ms) Current RPS 31948 0 6 6.08 747.9 -
POST /team/addRequests Fails Median (ms) Average (ms) Current RPS 129037 0 120 130.98 1136 -
GET /team/getRequests Fails Median (ms) Average (ms) Current RPS 58344 0 92 95.4 1607.7
Файлы сценария: locust.
Применяются автоматически при запуске Docker контейнеров с помощью migrate.
-
Применение
docker compose run --rm migrate -path=/migrations -database="postgres://postgres:postgres@postgres:5432/avito-tech-internship?sslmode=disable" up -
Откат
docker compose run --rm migrate -path=/migrations -database="postgres://postgres:postgres@postgres:5432/avito-tech-internship?sslmode=disable" down -all
cmd/app/ точка входа
internal/
config/ конфигурация приложения
domain/ модели домена
errorsx/ ошибки приложения
repository/ работа с БД
service/ бизнес-логика
transport/http/
dto/ схемы запросов/ответов
handler/ HTTP обработчики
errors.go HTTP ошибки
utils/ вспомогательные функции
migrations/ миграции базы данных
.env файл с переменными окружения
docker-compose.yml Docker Compose файл
Dockerfile Docker файлУбедитесь, что Docker установлен и запущен на вашей системе. Скачать Docker можно здесь.
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.