Adservio Code Review Analysis
A read-only analysis of recent merge request review behavior in GitLab, focused on visible review discussion, reviewer distribution, queue health, MR size, and traceability gaps.
Executive Summary
- 34 of 44 merged MRs (77.3%) had no visible non-author review comment in GitLab.
- 30 of 44 merged MRs (68.2%) carried the `CR - Approved` label.
- 20 merged MRs (45.5%) were labeled `CR - Approved` without any visible non-author review comment.
- 18.2% of merged MRs changed more than 20 files, while 9.1% changed more than 50 files.
- Among MRs with visible review discussion, the median last-author-commit to first-review time was 1.5h.
- The median last-author-commit to `CR - Approved` time was 45.2h.
- The top 3 reviewers accounted for 66.7% of visible review touches.
- 36 of 44 active open MRs (81.8%) were older than 48 working hours.
Merged MRs Merged MRs inside the analysis window. | 44 |
Open MRs All currently open group MRs. | 47 |
Active open MRs Open MRs excluding drafts. | 44 |
Draft open MRs Open MRs marked draft/WIP. | 3 |
Visible review rate Merged MRs with at least one visible non-author GitLab comment. | 22.7% |
Merged without visible review comment Merged MRs with zero visible non-author comments. | 77.3% |
CR - Approved label coverage Merged MRs carrying the CR-approved label. | 68.2% |
Approval API coverage Merged MRs with at least one approver in the GitLab approvals API. | 29.5% |
CR - Approved without visible review comment CR-approved MRs with no visible non-author comment. | 45.5% |
Median MR created -> first review Working time from MR creation to first visible non-author comment. | 5.5d |
Median last author commit -> first review Working time from last author commit before review to first visible non-author comment. | 1.5h |
Median first review -> CR - Approved Working time from first visible comment to CR-approved label after review start, else merge. | 17.8h |
Median MR created -> CR - Approved Working time from MR creation to CR-approved label after review start, else merge. | 8.1d |
Median last author commit -> CR - Approved Working time from last author commit before review to CR-approved label after review start, else merge. | 45.2h |
Median MR created -> merged Working time from MR creation to merge. | 22.8h |
Median changed files Median GitLab `changes_count` value. | 6.5 |
MRs > 5 files Merged MRs where `changes_count` is above 5. | 52.3% |
MRs > 10 files Merged MRs where `changes_count` is above 10. | 36.4% |
MRs > 20 files Merged MRs where `changes_count` is above 20. | 18.2% |
MRs > 50 files Merged MRs where `changes_count` is above 50. | 9.1% |
Top 3 reviewer touch share Share of visible review touches handled by the top 3 reviewers. | 66.7% |
Active open backlog rate Non-draft open MRs older than 48 working hours. | 81.8% |
Timing Breakdown
These headline timing medians bring back the anchor-to-anchor numbers directly, using working time with weekends excluded.
| Median MR created -> first review | 5.5d |
| Median last author commit -> first review | 1.5h |
| Median MR created -> CR - Approved | 8.1d |
| Median first review -> CR - Approved | 17.8h |
| Median last author commit -> CR - Approved | 45.2h |
| Median MR created -> merged | 22.8h |
Reviewer Distribution
| Achim Stefan | 5 | 33 | 41.7% |
| Alex Murarescu | 2 | 6 | 16.7% |
| Dragoș Ivan | 1 | 5 | 8.3% |
| Andrei Dragan | 1 | 8 | 8.3% |
| Ioana Ivan | 1 | 6 | 8.3% |
| Iuliana Gugeanu | 1 | 1 | 8.3% |
| Andrei Alexandru | 1 | 4 | 8.3% |
Repo Breakdown
| adservio/frontend | 15 | 33.3% | 93.3% | 6 |
| adservio/web | 9 | 0.0% | 66.7% | 2 |
| adservio/flutter/app | 6 | 0.0% | 0.0% | 11.0 |
| adservio/accommodations/backend | 4 | 25.0% | 75.0% | 6.0 |
| adservio/helm2 | 3 | 0.0% | 33.3% | 11 |
| adservio/admission/backend | 2 | 50.0% | 50.0% | 8.5 |
| adservio/docgen2/backend | 2 | 50.0% | 100.0% | 11.5 |
| adservio/billing/backend | 1 | 0.0% | 100.0% | 16 |
| adservio/services/notifications | 1 | 100.0% | 100.0% | 78 |
| adservio/uni/backend | 1 | 100.0% | 100.0% | 43 |
Visible Review Discussion MRs
Compact by default: key CR metrics stay visible, and each row expands inline for the full audit trail. The table starts sorted by Last Commit -> First Review.
| Details | ||||||
|---|---|---|---|---|---|---|
| adservio/uni/backend!165 | [ADS-6414]: Ajustare plan invatamant | 4/5 Strong | 15.9d | 0.1h | 16.2d | |
Repo adservio/uni/backend Author Francisc Gabriel Virlan Reviewers Andrei Alexandru Review Comments 4 Quality Notes 4 visible comments; 4 substantive comments; single reviewer; 8 post-review pushes; multi-point discussion Substantive Comments 4 Reviewer Count 1 Post-Review Pushes 8 MR Created 2026-02-23 13:28 Last Author Commit 2026-03-17 11:03 First Review 2026-03-17 11:11 CR Approved 2026-03-17 17:14 Merged 2026-03-20 16:29 First Review -> CR Approved 6.1h Last Commit -> CR Approved 6.2h Created -> Merged 19.1d | ||||||
| adservio/frontend!1653 | [ADS-6983]: Pagini responsive pe Catalog -Note discipline | 2/5 Light | 4.9d | 0.2h | 6.9d | |
Repo adservio/frontend Author Iuliana Gugeanu Reviewers Achim Stefan Review Comments 3 Quality Notes 3 visible comments; comments look lightweight; single reviewer; 5 post-review pushes Substantive Comments 0 Reviewer Count 1 Post-Review Pushes 5 MR Created 2026-03-11 13:43 Last Author Commit 2026-03-18 11:24 First Review 2026-03-18 11:36 CR Approved 2026-03-20 12:05 Merged 2026-03-20 12:16 First Review -> CR Approved 2.0d Last Commit -> CR Approved 2.0d Created -> Merged 6.9d | ||||||
| adservio/services/notifications!7 | [ADS-6434]: Push notifications & Marketing segmentation | 3/5 Solid | 2.9d | 0.3h | 5.9d | |
Repo adservio/services/notifications Author Dragoș Ivan Reviewers Alex Murarescu Review Comments 1 Quality Notes 1 visible comment; 1 substantive comment; single reviewer; 10 post-review pushes; very large MR (78 files) Substantive Comments 1 Reviewer Count 1 Post-Review Pushes 10 MR Created 2026-03-09 15:54 Last Author Commit 2026-03-12 11:59 First Review 2026-03-12 12:19 CR Approved 2026-03-17 13:03 Merged 2026-03-17 15:03 First Review -> CR Approved 3.0d Last Commit -> CR Approved 3.0d Created -> Merged 6.0d | ||||||
| adservio/frontend!1652 | [S: ADS-6879][ADS-6969]: Auth provider | 4/5 Strong | 6.0d | 0.6h | 6.5d | |
Repo adservio/frontend Author Ioana Ivan Reviewers Achim Stefan Review Comments 3 Quality Notes 3 visible comments; 3 substantive comments; single reviewer; 6 post-review pushes; multi-point discussion Substantive Comments 3 Reviewer Count 1 Post-Review Pushes 6 MR Created 2026-03-11 11:36 Last Author Commit 2026-03-19 11:10 First Review 2026-03-19 11:48 CR Approved 2026-03-19 22:31 Merged 2026-03-20 13:04 First Review -> CR Approved 10.7h Last Commit -> CR Approved 11.3h Created -> Merged 7.1d | ||||||
| adservio/frontend!1647 | [ADS-6866] Validate Documents/multiUpload | 4/5 Strong | 39.2h | 0.8h | 2.7d | |
Repo adservio/frontend Author George Murgoci Reviewers Achim Stefan Review Comments 16 Quality Notes 16 visible comments; 14 substantive comments; single reviewer; 4 post-review pushes; multi-point discussion Substantive Comments 14 Reviewer Count 1 Post-Review Pushes 4 MR Created 2026-03-07 01:40 Last Author Commit 2026-03-10 14:26 First Review 2026-03-10 15:13 CR Approved 2026-03-11 16:08 Merged 2026-03-16 19:18 First Review -> CR Approved 24.9h Last Commit -> CR Approved 25.7h Created -> Merged 5.8d | ||||||
| adservio/docgen2/backend!98 | [ADS:7046]: Fisa disciplinei - suprapunerea informatiilor | 3/5 Solid | 23.7h | 2.2h | 24.0h | |
Repo adservio/docgen2/backend Author Dana Mihaela Maritca Reviewers Achim Stefan Review Comments 3 Quality Notes 3 visible comments; 1 substantive comment; single reviewer; 1 post-review push Substantive Comments 1 Reviewer Count 1 Post-Review Pushes 1 MR Created 2026-03-19 12:21 Last Author Commit 2026-03-20 09:53 First Review 2026-03-20 12:02 CR Approved 2026-03-20 12:24 Merged 2026-03-20 12:26 First Review -> CR Approved 0.4h Last Commit -> CR Approved 2.5h Created -> Merged 24.1h | ||||||
| adservio/frontend!1616 | [ADS-6414] Ajustari planuri de invatamant pe serii | 5/5 Deep | 20.5h | 20.5h | 19.0d | |
Repo adservio/frontend Author Dana Mihaela Maritca Reviewers Achim Stefan, Iuliana Gugeanu Review Comments 9 Quality Notes 9 visible comments; 5 substantive comments; 2 reviewers; 9 post-review pushes; multi-point discussion Substantive Comments 5 Reviewer Count 2 Post-Review Pushes 9 MR Created 2026-02-23 13:41 Last Author Commit 2026-02-23 13:37 First Review 2026-02-24 10:08 CR Approved 2026-03-20 14:48 Merged 2026-03-20 16:23 First Review -> CR Approved 18.2d Last Commit -> CR Approved 19.0d Created -> Merged 19.1d | ||||||
| adservio/frontend!1621 | [ADS-6724] Modificare permisiuni pentru administratorii de camin | 3/5 Solid | 10.9d | 40.9h | 10.9d | |
Repo adservio/frontend Author Achim Stefan Reviewers Ioana Ivan Review Comments 6 Quality Notes 6 visible comments; 1 substantive comment; single reviewer; 1 post-review push Substantive Comments 1 Reviewer Count 1 Post-Review Pushes 1 MR Created 2026-02-25 12:19 Last Author Commit 2026-03-10 16:43 First Review 2026-03-12 09:40 CR Approved 2026-03-12 10:32 Merged 2026-03-17 15:19 First Review -> CR Approved 0.9h Last Commit -> CR Approved 41.8h Created -> Merged 14.1d | ||||||
| adservio/admission/backend!107 | [ADS-6866] Validate Documents | 5/5 Deep | 7.1d | 4.1d | 9.2d | |
Repo adservio/admission/backend Author George Murgoci Reviewers Alex Murarescu, Dragoș Ivan Review Comments 10 Quality Notes 10 visible comments; 6 substantive comments; 2 reviewers; 2 post-review pushes; multi-point discussion Substantive Comments 6 Reviewer Count 2 Post-Review Pushes 2 MR Created 2026-03-03 09:35 Last Author Commit 2026-03-06 09:18 First Review 2026-03-12 10:51 CR Approved 2026-03-16 14:22 Merged 2026-03-16 19:19 First Review -> CR Approved 2.1d Last Commit -> CR Approved 6.2d Created -> Merged 9.4d | ||||||
| adservio/accommodations/backend!47 | [ADS-6724] Accommodations new permissions | 4/5 Strong | 16.9d | 5.0d | 17.2d | |
Repo adservio/accommodations/backend Author Ionut Ciolan Reviewers Andrei Dragan Review Comments 8 Quality Notes 8 visible comments; 4 substantive comments; single reviewer; 3 post-review pushes; multi-point discussion Substantive Comments 4 Reviewer Count 1 Post-Review Pushes 3 MR Created 2026-02-20 10:11 Last Author Commit 2026-03-10 08:44 First Review 2026-03-17 07:38 CR Approved 2026-03-17 15:17 Merged 2026-03-17 15:17 First Review -> CR Approved 7.7h Last Commit -> CR Approved 5.3d Created -> Merged 17.2d | ||||||
No Visible Review Comment Audit
These merged MRs had no visible non-author GitLab comment under the current heuristic. Use this section to audit whether the gap is a real review-process issue or a GitLab traceability issue.
Total MRs34
With CR Label20
With Approval API13
- Open the MR link and check the Overview tab for
CR - Approvedand any approval widget signal. - Check Activity / Discussions for real human reviewer comments.
- If you only see system notes, merge notes, mentions, or bot activity, it stays in this audit set.
- If you find a genuine reviewer comment from someone other than the author, treat that MR as a false positive of this heuristic.
full audit table (34 MRs). Click again to collapse.
| adservio/helm2!225 | adservio/helm2 | add TUIASI smoke test pipeline | Paul Tanasuca | 2026-03-16 | Yes | |
| adservio/frontend!1658 | adservio/frontend | [ADS-6924] updated tuiasi smoke suite | Paul Tanasuca | 2026-03-16 | ||
| adservio/flutter/app!45 | adservio/flutter/app | Resolve ADS-6632 "Day diary" | Stefan Agrigo | 2026-03-16 | Yes | |
| adservio/flutter/app!46 | adservio/flutter/app | Resolve ADS-6695 "Rezumat ai" | Stefan Agrigo | 2026-03-16 | Yes | |
| adservio/flutter/app!47 | adservio/flutter/app | add sanID as parameter | Stefan Agrigo | 2026-03-16 | Yes | |
| adservio/web!2411 | adservio/web | [ADS-6873] Exemptions overlap validation fixed | Ionut Ciolan | 2026-03-16 | Yes | |
| adservio/web!2408 | adservio/web | [ADS-6846]: Refactor validation logic for CMC transfers | Andrei Dragan | 2026-03-16 | Yes | Yes |
| adservio/frontend!1655 | adservio/frontend | [ADS-6846] Enhance isSwitchDisabled logic in SubjectTransferTable to include... | Andrei Dragan | 2026-03-16 | Yes | |
| adservio/web!2412 | adservio/web | Stats Adservio | Marian Andrei | 2026-03-16 | ||
| adservio/web!2413 | adservio/web | Optimize query | Marian Andrei | 2026-03-16 | ||
| adservio/admission/backend!109 | adservio/admission/backend | fixed dependency injection | George Murgoci | 2026-03-17 | ||
| adservio/helm2!223 | adservio/helm2 | ADS-6434 notif push sender chart | Raul Popovici | 2026-03-17 | Yes | |
| adservio/flutter/app!48 | adservio/flutter/app | sort grade and absences chronologically | Stefan Agrigo | 2026-03-17 | Yes | |
| adservio/web!2367 | adservio/web | Import - move school classes data | Ionut Ciolan | 2026-03-17 | Yes | |
| adservio/helm2!226 | adservio/helm2 | ADS-6948 - cleanup production-aws | Raul Popovici | 2026-03-18 | ||
| adservio/flutter/app!49 | adservio/flutter/app | ADS-7003 "Trasnferred students" | Stefan Agrigo | 2026-03-18 | Yes | |
| adservio/accommodations/backend!50 | adservio/accommodations/backend | [HOTIFX] accommodations invoices bug fixed | Ionut Ciolan | 2026-03-18 | Yes | |
| adservio/accommodations/backend!51 | adservio/accommodations/backend | [HOTFIX] fixed get student invoices bug | Ionut Ciolan | 2026-03-18 | Yes | Yes |
| adservio/frontend!1662 | adservio/frontend | Acommodations permission fix | Achim Stefan | 2026-03-18 | Yes | |
| adservio/web!2414 | adservio/web | [ADS-6827] added student status id on get repartizari cmc elevi response | Ionut Ciolan | 2026-03-18 | Yes | |
| adservio/flutter/app!50 | adservio/flutter/app | Resolve ADS-7005 "Homework bug fix" | Stefan Agrigo | 2026-03-19 | Yes | |
| adservio/frontend!1663 | adservio/frontend | Accommodations on submit loading fixes | Achim Stefan | 2026-03-19 | Yes | |
| adservio/frontend!1659 | adservio/frontend | [ADS-7017]: Update Grading automated tests | Paul Tanasuca | 2026-03-19 | Yes | Yes |
| adservio/web!2419 | adservio/web | [ADS-7015]: Simplify input fields for student contact data | Andrei Dragan | 2026-03-19 | Yes | Yes |
| adservio/frontend!1664 | adservio/frontend | [ADS-7052]: [Fisa disciplinei]- Textul nu face wrap si nu se mai pot sterge valorile introduse | Iuliana Gugeanu | 2026-03-20 | Yes | |
| adservio/web!2406 | adservio/web | [ADS-6879] Refactor OAuth2 API | Daniel Onisoru | 2026-03-20 | Yes | |
| adservio/web!2420 | adservio/web | [TESTING] - Auth provider TUIASI | Ioana Ivan | 2026-03-20 | ||
| adservio/frontend!1665 | adservio/frontend | [ADS-7073] Calificativul F introdus in catalog se modifica automat in E | Dron Gabriel | 2026-03-20 | Yes | |
| adservio/frontend!1669 | adservio/frontend | Fix login command for smoke tests | Paul Tanasuca | 2026-03-20 | Yes | |
| adservio/frontend!1668 | adservio/frontend | [ADS-7063] Conditiile si Bibliografia nu poate fi editata dupa adaugare | Achim Stefan | 2026-03-20 | Yes | |
| adservio/docgen2/backend!95 | adservio/docgen2/backend | [ADS-6414]: update table layout | Dana Mihaela Maritca | 2026-03-20 | Yes | |
| adservio/accommodations/backend!48 | adservio/accommodations/backend | [ADS-6385][ADS-6408] Student payment | Ionut Ciolan | 2026-03-20 | Yes | |
| adservio/billing/backend!220 | adservio/billing/backend | [ADS-6385] payment link | Robert | 2026-03-20 | Yes | Yes |
| adservio/frontend!1670 | adservio/frontend | [ADS-6385] Disable payment if in process | Achim Stefan | 2026-03-20 | Yes |
Oldest Active Open MRs (> 48 Working Hours)
| adservio/web!2091 | adservio/web | Andrei Dragan | 176.5d | 5 | |
| adservio/devops/site-sentry!11 | adservio/devops/site-sentry | Daniel Onisoru | 160.0d | 0 | |
| adservio/helm2!137 | adservio/helm2 | Raul Popovici | 152.6d | 0 | |
| adservio/services/websocket!8 | adservio/services/websocket | Raul Popovici | 149.5d | 0 | |
| adservio/services/videothumb!5 | adservio/services/videothumb | Raul Popovici | 149.5d | 0 | |
| adservio/services/fet-generator!9 | adservio/services/fet-generator | Raul Popovici | 149.5d | 0 | |
| adservio/ai/backend!62 | adservio/ai/backend | Robert | 50.6d | 0 | |
| adservio/subscriptions/backend!98 | adservio/subscriptions/backend | Robert | 50.4d | 10 | |
| adservio/web!2323 | adservio/web | Andrei Dragan | 48.6d | 0 | |
| adservio/frontend!1556 | adservio/frontend | George Murgoci | 41.3d | 0 |
Longest Merged Cycles
| adservio/billing/backend!220 | adservio/billing/backend | Robert | 67.1d | 16 | 0 |
| adservio/web!2367 | adservio/web | Ionut Ciolan | 23.2d | 2 | 0 |
| adservio/uni/backend!165 | adservio/uni/backend | Francisc Gabriel Virlan | 19.1d | 43 | 4 |
| adservio/frontend!1616 | adservio/frontend | Dana Mihaela Maritca | 19.1d | 54 | 9 |
| adservio/accommodations/backend!47 | adservio/accommodations/backend | Ionut Ciolan | 17.2d | 11 | 8 |
| adservio/docgen2/backend!95 | adservio/docgen2/backend | Dana Mihaela Maritca | 15.1d | 18 | 0 |
| adservio/frontend!1621 | adservio/frontend | Achim Stefan | 14.1d | 24 | 6 |
| adservio/admission/backend!107 | adservio/admission/backend | George Murgoci | 9.4d | 16 | 10 |
| adservio/web!2406 | adservio/web | Daniel Onisoru | 7.9d | 7 | 0 |
| adservio/accommodations/backend!48 | adservio/accommodations/backend | Ionut Ciolan | 7.2d | 10 | 0 |
Methodology And Limits
- This report uses visible non-author GitLab comments as the strongest review-start proxy.
- GitLab approval API coverage is shown separately; missing approval API data should be read as traceability gap, not proof that no approval happened.
- Review completion uses the first `CR - Approved` label-add event after review starts when GitLab label history provides one; otherwise it falls back to merge time.
- Last-author-commit metrics use the latest non-merge MR commit authored by the MR author strictly before review starts.
- Timing metrics in this report exclude Saturday and Sunday hours using the Europe/Bucharest calendar.
- Review-quality scoring is heuristic: it rewards visible substantive comments, multiple reviewers, and post-review pushes, and it penalizes large MRs with shallow visible discussion.
- `Active open backlog rate` excludes draft MRs and uses a > 48 working-hour age threshold.
- Open MR backlog age is a queue-health signal, not proof that every old open MR is actively waiting for review right now.