GitLab-backed analysis

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.

Period: 2026-03-14 07:00 to 2026-03-21 07:00
Primary source: GitLab merge request metadata, notes, labels, commits, and approvals endpoints.
  • 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 45 active open MRs (80.0%) were older than 48 working hours.
Merged MRs
Merged MRs inside the analysis window.
44
Open MRs
All currently open group MRs.
48
Active open MRs
Open MRs excluding drafts.
45
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.
80.0%

These headline timing medians bring back the anchor-to-anchor numbers directly, using working time with weekends excluded.

Median MR created -> first review5.5d
Median last author commit -> first review1.5h
Median MR created -> CR - Approved8.1d
Median first review -> CR - Approved17.8h
Median last author commit -> CR - Approved45.2h
Median MR created -> merged22.8h
Achim Stefan53341.7%
Alex Murarescu2616.7%
Dragoș Ivan158.3%
Andrei Dragan188.3%
Ioana Ivan168.3%
Iuliana Gugeanu118.3%
Andrei Alexandru148.3%
adservio/frontend1533.3%93.3%6
adservio/web90.0%66.7%2
adservio/flutter/app60.0%0.0%11.0
adservio/accommodations/backend425.0%75.0%6.0
adservio/helm230.0%33.3%11
adservio/admission/backend250.0%50.0%8.5
adservio/docgen2/backend250.0%100.0%11.5
adservio/billing/backend10.0%100.0%16
adservio/services/notifications1100.0%100.0%78
adservio/uni/backend1100.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 invatamant4/5 Strong15.9d0.1h16.2d
adservio/frontend!1653[ADS-6983]: Pagini responsive pe Catalog -Note discipline2/5 Light4.9d0.2h6.9d
adservio/services/notifications!7[ADS-6434]: Push notifications & Marketing segmentation3/5 Solid2.9d0.3h5.9d
adservio/frontend!1652[S: ADS-6879][ADS-6969]: Auth provider4/5 Strong6.0d0.6h6.5d
adservio/frontend!1647[ADS-6866] Validate Documents/multiUpload4/5 Strong39.2h0.8h2.7d
adservio/docgen2/backend!98[ADS:7046]: Fisa disciplinei - suprapunerea informatiilor3/5 Solid23.7h2.2h24.0h
adservio/frontend!1616[ADS-6414] Ajustari planuri de invatamant pe serii5/5 Deep20.5h20.5h19.0d
adservio/frontend!1621[ADS-6724] Modificare permisiuni pentru administratorii de camin3/5 Solid10.9d40.9h10.9d
adservio/admission/backend!107[ADS-6866] Validate Documents5/5 Deep7.1d4.1d9.2d
adservio/accommodations/backend!47[ADS-6724] Accommodations new permissions4/5 Strong16.9d5.0d17.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 - Approved and 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!225adservio/helm2add TUIASI smoke test pipelinePaul Tanasuca2026-03-16Yes
adservio/frontend!1658adservio/frontend[ADS-6924] updated tuiasi smoke suitePaul Tanasuca2026-03-16
adservio/flutter/app!45adservio/flutter/appResolve ADS-6632 "Day diary"Stefan Agrigo2026-03-16Yes
adservio/flutter/app!46adservio/flutter/appResolve ADS-6695 "Rezumat ai"Stefan Agrigo2026-03-16Yes
adservio/flutter/app!47adservio/flutter/appadd sanID as parameterStefan Agrigo2026-03-16Yes
adservio/web!2411adservio/web[ADS-6873] Exemptions overlap validation fixedIonut Ciolan2026-03-16Yes
adservio/web!2408adservio/web[ADS-6846]: Refactor validation logic for CMC transfersAndrei Dragan2026-03-16YesYes
adservio/frontend!1655adservio/frontend[ADS-6846] Enhance isSwitchDisabled logic in SubjectTransferTable to include...Andrei Dragan2026-03-16Yes
adservio/web!2412adservio/webStats AdservioMarian Andrei2026-03-16
adservio/web!2413adservio/webOptimize queryMarian Andrei2026-03-16
adservio/admission/backend!109adservio/admission/backendfixed dependency injectionGeorge Murgoci2026-03-17
adservio/helm2!223adservio/helm2ADS-6434 notif push sender chartRaul Popovici2026-03-17Yes
adservio/flutter/app!48adservio/flutter/appsort grade and absences chronologicallyStefan Agrigo2026-03-17Yes
adservio/web!2367adservio/webImport - move school classes dataIonut Ciolan2026-03-17Yes
adservio/helm2!226adservio/helm2ADS-6948 - cleanup production-awsRaul Popovici2026-03-18
adservio/flutter/app!49adservio/flutter/appADS-7003 "Trasnferred students"Stefan Agrigo2026-03-18Yes
adservio/accommodations/backend!50adservio/accommodations/backend[HOTIFX] accommodations invoices bug fixedIonut Ciolan2026-03-18Yes
adservio/accommodations/backend!51adservio/accommodations/backend[HOTFIX] fixed get student invoices bugIonut Ciolan2026-03-18YesYes
adservio/frontend!1662adservio/frontendAcommodations permission fixAchim Stefan2026-03-18Yes
adservio/web!2414adservio/web[ADS-6827] added student status id on get repartizari cmc elevi responseIonut Ciolan2026-03-18Yes
adservio/flutter/app!50adservio/flutter/appResolve ADS-7005 "Homework bug fix"Stefan Agrigo2026-03-19Yes
adservio/frontend!1663adservio/frontendAccommodations on submit loading fixesAchim Stefan2026-03-19Yes
adservio/frontend!1659adservio/frontend[ADS-7017]: Update Grading automated testsPaul Tanasuca2026-03-19YesYes
adservio/web!2419adservio/web[ADS-7015]: Simplify input fields for student contact dataAndrei Dragan2026-03-19YesYes
adservio/frontend!1664adservio/frontend[ADS-7052]: [Fisa disciplinei]- Textul nu face wrap si nu se mai pot sterge valorile introduseIuliana Gugeanu2026-03-20Yes
adservio/web!2406adservio/web[ADS-6879] Refactor OAuth2 APIDaniel Onisoru2026-03-20Yes
adservio/web!2420adservio/web[TESTING] - Auth provider TUIASIIoana Ivan2026-03-20
adservio/frontend!1665adservio/frontend[ADS-7073] Calificativul F introdus in catalog se modifica automat in EDron Gabriel2026-03-20Yes
adservio/frontend!1669adservio/frontendFix login command for smoke testsPaul Tanasuca2026-03-20Yes
adservio/frontend!1668adservio/frontend[ADS-7063] Conditiile si Bibliografia nu poate fi editata dupa adaugareAchim Stefan2026-03-20Yes
adservio/docgen2/backend!95adservio/docgen2/backend[ADS-6414]: update table layoutDana Mihaela Maritca2026-03-20Yes
adservio/accommodations/backend!48adservio/accommodations/backend[ADS-6385][ADS-6408] Student paymentIonut Ciolan2026-03-20Yes
adservio/billing/backend!220adservio/billing/backend[ADS-6385] payment linkRobert2026-03-20YesYes
adservio/frontend!1670adservio/frontend[ADS-6385] Disable payment if in processAchim Stefan2026-03-20Yes

Oldest Active Open MRs (> 48 Working Hours)

adservio/web!2091adservio/webAndrei Dragan176.5d5
adservio/devops/site-sentry!11adservio/devops/site-sentryDaniel Onisoru160.0d0
adservio/helm2!137adservio/helm2Raul Popovici152.6d0
adservio/services/websocket!8adservio/services/websocketRaul Popovici149.5d0
adservio/services/videothumb!5adservio/services/videothumbRaul Popovici149.5d0
adservio/services/fet-generator!9adservio/services/fet-generatorRaul Popovici149.5d0
adservio/ai/backend!62adservio/ai/backendRobert50.6d0
adservio/subscriptions/backend!98adservio/subscriptions/backendRobert50.4d10
adservio/web!2323adservio/webAndrei Dragan48.6d0
adservio/frontend!1556adservio/frontendGeorge Murgoci41.3d0
adservio/billing/backend!220adservio/billing/backendRobert67.1d160
adservio/web!2367adservio/webIonut Ciolan23.2d20
adservio/uni/backend!165adservio/uni/backendFrancisc Gabriel Virlan19.1d434
adservio/frontend!1616adservio/frontendDana Mihaela Maritca19.1d549
adservio/accommodations/backend!47adservio/accommodations/backendIonut Ciolan17.2d118
adservio/docgen2/backend!95adservio/docgen2/backendDana Mihaela Maritca15.1d180
adservio/frontend!1621adservio/frontendAchim Stefan14.1d246
adservio/admission/backend!107adservio/admission/backendGeorge Murgoci9.4d1610
adservio/web!2406adservio/webDaniel Onisoru7.9d70
adservio/accommodations/backend!48adservio/accommodations/backendIonut Ciolan7.2d100

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.