MLOps Path

1.2.2 · блок 1

Pull Request, code review и защита main

Pull Request, code review и защита main

Зачем это нужно

Commit в свою ветку — личное дело. Merge в main — ответственность перед всей командой: завтра этот код пойдёт в продакшен. Pull Request (PR, в GitLab — Merge Request, MR) — механизм, который вставляет паузу между «я написал» и «это стало частью продукта». Code review ловит баги, улучшает читаемость и распространяет знания в команде.

Для студента PR — привычка, которую оценят на первой же стажировке. «Пушил сразу в main» — красный флаг на code review собеседования.

Основные идеи

Pull Request — запрос на слияние вашей ветки в целевую (обычно main). PR содержит:

Code review — правила хорошего тона:

Защита main (branch protection):

Настраивает DevOps в GitHub/GitLab; разработчик просто следует правилам.

Merge vs Rebase:

Для курса: перед PR делайте git pull origin main (или rebase на main), решайте конфликты локально.

Conventional Commits — соглашение о формате сообщений:


feat: add LightGBM training pipeline
fix: handle missing values in inference
docs: update runbook for model rollback
chore: bump scikit-learn to 1.4

Префиксы помогают автоматически генерировать changelog и семантически версионировать релизы (feat → minor, fix → patch).

Как это выглядит на практике

MLE открывает PR «feat: batch inference endpoint» (Jira ML-67):


## Summary
- POST /predict/batch принимает CSV до 10k rows
- Model loaded from S3 at startup

## Test plan
- [x] unit tests pass
- [x] manual curl with sample.csv
- [ ] load test — отдельная Story ML-70

## Jira
ML-67

Backend-ревьюер оставляет комментарий: «добавь timeout 30s на загрузку модели». MLE исправляет, CI зелёный, approve, squash merge в main.

Confluence Service Page обновляется в отдельном PR docs: add /predict/batch to API section.

Что сделать после занятия

Официальные материалы

Открыть интерактивную версию