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-06-06 07:00 to 2026-06-13 07:00
Primary source: GitLab merge request metadata, notes, labels, commits, and approvals endpoints.

Bottom line: review throughput is not the main risk here; traceability and queue hygiene are. The team is still merging code, but most merges leave no durable visible review trail and the open queue is overwhelmingly stale.

What Matters

  • Traceability is the clearest control gap: 65 of 71 merged MRs (91.5%) showed no visible non-author review comment in GitLab.
  • `CR - Approved` is currently too weak as evidence on its own: 60.6% of merged MRs carried that label without any visible review discussion.
  • Queue health is poor: 91.2% of active open MRs are already older than 48 working hours. The oldest example is adservio/web!2091 at 236.6d open.
  • Visible review capacity is thin and concentrated: only 6 visible review touches were detected in the whole window, and the top 3 reviewers handled 66.7% of them.
  • adservio/web is the highest-volume review surface with 23 merged MRs and only 4.3% visible review coverage. adservio/frontend is the next meaningful flow at 21 merges and 19.0% visible review coverage.
  • MR size is not the main story: median changed files were 2, and only 7.0% of merged MRs were above 20 files. Even the slowest merged example, adservio/uni/backend!193, took 20.1d with 32 changed files, so the dominant problem still looks like review discipline and queue ownership rather than consistently oversized MRs.

Leadership Analysis

  • The operating rhythm is serviceable at the median (4.0h created-to-merged), which means the biggest leverage is improving process fidelity rather than pushing for even more raw throughput.
  • With 91.2% of active MRs already stale, the open list is functioning more like inventory than prioritization support. adservio/web!2091 being open for 236.6d is a strong sign that ownership and review handoffs are not being actively reset.
  • Reviewer concentration is now a resilience issue, not just a fairness issue. When the top 3 reviewers carry 66.7% of visible touches, review quality, continuity, and queue health all become sensitive to a very small set of people.
  • The spread between a 2-file median MR and a 20.1d longest merged cycle (adservio/uni/backend!193, 32 changed files) suggests a few ownership-heavy exceptions are dragging on outside normal flow. Those should be managed as explicit escalations, not left to age inside the common queue.

Recommended Actions

  • Make one durable review artifact mandatory before merge: a substantive non-author GitLab review comment, a recorded approval, or both. A label alone should no longer count as sufficient evidence. The approval API coverage is also low, so the fix should include tooling or policy that leaves an auditable trace by default.
  • Run a stale-MR reset on anything older than 48 working hours: close abandoned work, re-confirm owner and reviewer on the rest, and turn the open list back into a real queue instead of a parking lot. Start with adservio/web!2091 and the rest of the oldest backlog because their age now obscures whether they are still real priorities.
  • Put adservio/docgen2/backend under explicit review guardrails for the next cycle. It combines enough volume with weak visible review coverage, which makes it the best place to tighten the process and see impact quickly.
  • Broaden the reviewer bench beyond Edgar Alexa and the current small reviewer set. The present concentration is a continuity risk and will keep queue health fragile when one person is away.

Improvement Ideas

  • Set explicit operating standards for the next quarter: require one auditable peer-review artifact before merge, target first review inside one working day for active MRs, and keep the stale active backlog below 15%. What gets measured this clearly is far more likely to improve.
  • Run a four-week process experiment on adservio/docgen2/backend: dedicated reviewer-of-the-week coverage, explicit reviewer assignment at MR creation, and a lightweight weekly audit of silent merges. It is the highest-yield place to test whether better ownership changes the data.
  • Create a reviewer rotation with named backup coverage for the busiest repos. Good review systems depend on redundancy, not heroics, and rotation is the fastest way to lower reviewer bus factor without slowing delivery.

Supporting Evidence

  • 65 of 71 merged MRs (91.5%) had no visible non-author review comment in GitLab.
  • 49 of 71 merged MRs (69.0%) carried the `CR - Approved` label.
  • 43 merged MRs (60.6%) were labeled `CR - Approved` without any visible non-author review comment.
  • 7.0% of merged MRs changed more than 20 files, while 1.4% changed more than 50 files.
  • Among MRs with visible review discussion, the median last-author-commit to first-review time was 12.7h.
  • The median last-author-commit to `CR - Approved` time was 22.0h.
  • The top 3 reviewers accounted for 66.7% of visible review touches.
  • 52 of 57 active open MRs (91.2%) were older than 48 working hours.
Merged MRs
Merged MRs inside the analysis window.
71
Open MRs
All currently open group MRs.
66
Active open MRs
Open MRs excluding drafts.
57
Draft open MRs
Open MRs marked draft/WIP.
9
Visible review rate
Merged MRs with at least one visible non-author GitLab comment.
8.5%
Merged without visible review comment
Merged MRs with zero visible non-author comments.
91.5%
CR - Approved label coverage
Merged MRs carrying the CR-approved label.
69.0%
Approval API coverage
Merged MRs with at least one approver in the GitLab approvals API.
14.1%
CR - Approved without visible review comment
CR-approved MRs with no visible non-author comment.
60.6%
Median MR created -> first review
Working time from MR creation to first visible non-author comment.
3.1d
Median last author commit -> first review
Working time from last author commit before review to first visible non-author comment.
12.7h
Median first review -> CR - Approved
Working time from first visible comment to CR-approved label after review start, else merge.
1.1h
Median MR created -> CR - Approved
Working time from MR creation to CR-approved label after review start, else merge.
3.6d
Median last author commit -> CR - Approved
Working time from last author commit before review to CR-approved label after review start, else merge.
22.0h
Median MR created -> merged
Working time from MR creation to merge.
4.0h
Median changed files
Median GitLab `changes_count` value.
2
MRs > 5 files
Merged MRs where `changes_count` is above 5.
22.5%
MRs > 10 files
Merged MRs where `changes_count` is above 10.
11.3%
MRs > 20 files
Merged MRs where `changes_count` is above 20.
7.0%
MRs > 50 files
Merged MRs where `changes_count` is above 50.
1.4%
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.
91.2%

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

Median MR created -> first review3.1d
Median last author commit -> first review12.7h
Median MR created -> CR - Approved3.6d
Median first review -> CR - Approved1.1h
Median last author commit -> CR - Approved22.0h
Median MR created -> merged4.0h
Edgar Alexa2533.3%
Ioana Ivan1116.7%
Marian Andrei1216.7%
Achim Stefan1116.7%
George Murgoci1216.7%
adservio/web234.3%65.2%1
adservio/frontend2119.0%85.7%2
adservio/docgen2/backend60.0%100.0%3.5
adservio/uni/backend50.0%60.0%10
adservio/helm240.0%25.0%3.5
adservio/devops/iac30.0%33.3%2
adservio/social30.0%66.7%3
adservio/admission/backend250.0%50.0%8.5
adservio/subscriptions/backend20.0%50.0%5.5
adservio/billing/backend10.0%100.0%10
adservio/forms/backend10.0%0.0%1

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/admission/backend!153[ADS-7427]: Admin Application Payment validation3/5 Solid2.8d0.5h3.5d
adservio/frontend!1908[ADS-7716] situatie neincheiata sa fie vizibila in browser3/5 Solid18.3h0.9h18.8h
adservio/frontend!1905[ADS-7423] [Stiri] - Updates after release/feedback4/5 Strong6.7h6.2h24.2h
adservio/frontend!1898[ADS-7427]: Admin Application Payment validation3/5 Solid3.5d19.1h3.6d
adservio/web!2499[ADS-6360]: Add catalog indicators endpoint for class statistics semestre3/5 Solid7.2d29.0h7.2d
adservio/frontend!1822[ADS-7132] Restantieri3/5 Solid14.0d12.1d14.0d

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 MRs65
With CR Label43
With Approval API9
  • 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 (65 MRs). Click again to collapse.
adservio/docgen2/backend!132adservio/docgen2/backend[ADS-7725] Modificari diploma simplaPetronel Pavel2026-06-08Yes
adservio/uni/backend!193adservio/uni/backend[ADS-7132] RestantieriAndrei Alexandru2026-06-08YesYes
adservio/docgen2/backend!122adservio/docgen2/backend[ADS-7132] RestantieriAchim Stefan2026-06-08YesYes
adservio/frontend!1903adservio/frontend[fix-register-payment] fixed button widthEdgar Alexa2026-06-08Yes
adservio/uni/backend!205adservio/uni/backendhot_fix: Secure personal data endpoints with permission groupsAndrei Alexandru2026-06-08YesYes
adservio/docgen2/backend!124adservio/docgen2/backend[ADS-7621] Management clasa - Documente - Catalogul claseiPetronel Pavel2026-06-08Yes
adservio/subscriptions/backend!117adservio/subscriptions/backend[include-early-bird-stats] added createdAt as a filter for sold subsEdgar Alexa2026-06-08
adservio/frontend!1901adservio/frontend[ADS-7813] Student details modal overflowPetronel Pavel2026-06-08Yes
adservio/web!2548adservio/web[ADS-4905] Descărcarea răspunsurilor individuale ignoră selecția elevului – se...Petronel Pavel2026-06-08Yes
adservio/helm2!268adservio/helm2ADS-7764: Platform golden signal alerts + PagerDuty integrationRojan Shrestha2026-06-09
adservio/helm2!271adservio/helm2ADS-7822: bump getresponse-worker memory limit + add container memory >90% alertRojan Shrestha2026-06-09YesYes
adservio/devops/iac!36adservio/devops/iacfeat(management): weekly AWS cost report via Lambda + SESRojan Shrestha2026-06-09YesYes
adservio/devops/iac!38adservio/devops/iacADS-7843: add development account (826917684485) to SSORojan Shrestha2026-06-09
adservio/uni/backend!206adservio/uni/backendfeat: Refactor project structure to support adding the laravel componentDaniel Onisoru2026-06-09
adservio/web!2552adservio/web[ADS-7739] Scim/ceac validationsMarian Andrei2026-06-09
adservio/social!26adservio/socialcache fixAlex Murarescu2026-06-09
adservio/web!2551adservio/web[ADS-7787] Classes absences statistics charts fixedIonut Ciolan2026-06-09Yes
adservio/web!2554adservio/web[ADS-7840] Update voluntariat query fixedIonut Ciolan2026-06-09YesYes
adservio/web!2553adservio/web[ADS-7792] Edit school transfer removed validationIonut Ciolan2026-06-09Yes
adservio/web!2547adservio/web[ADS_7451] Staff attendance syncIonut Ciolan2026-06-09Yes
adservio/frontend!1904adservio/frontend[ADS-4144] Pe IOS se deschid videourile automatPetronel Pavel2026-06-09Yes
adservio/docgen2/backend!128adservio/docgen2/backend[ADS-6360] Număr indicatori incorect – SemestrePetronel Pavel2026-06-09Yes
adservio/frontend!1910adservio/frontendfix show tabs on mobileGeorge Murgoci2026-06-09
adservio/frontend!1906adservio/frontend[ADS-7741] Lipseste Password visibility toggle de pe campurile de parolaPetronel Pavel2026-06-09Yes
adservio/web!2559adservio/web[ADS-6840] Copy student addresses - update address if existsIonut Ciolan2026-06-10Yes
adservio/frontend!1913adservio/frontend[ADS-7821] Afisarea numelui utilizatorului la accesarea detaliilor elevuluiPetronel Pavel2026-06-10Yes
adservio/web!2556adservio/web[ADS-7589] Student transcript - class academic detailsIonut Ciolan2026-06-10YesYes
adservio/web!2561adservio/web[ADS-7855] School config - dashboard condition addedIonut Ciolan2026-06-10
adservio/docgen2/backend!133adservio/docgen2/backenddocgen2-api: gradebook view/download endpoints return HTTP 500 - 15 hits/FridayAchim Stefan2026-06-10Yes
adservio/frontend!1912adservio/frontenddocgen2-api: gradebook view/download endpoints return HTTP 500 - 15 hits/FridayAchim Stefan2026-06-10Yes
adservio/social!25adservio/social[ADS-7423] [Stiri] - Updates after release/feedbackAlex Murarescu2026-06-10Yes
adservio/web!2549adservio/web[ADS-7423] [Stiri] - Updates after release/feedbackAlex Murarescu2026-06-10
adservio/admission/backend!155adservio/admission/backend[ADS-7743] -admission bugs v3George Murgoci2026-06-10
adservio/web!2558adservio/web[ADS-7089] Modificare ordine afisare nume profesor in fisa scolara ( Nume de...Petronel Pavel2026-06-10Yes
adservio/web!2560adservio/web[ADS-7834] Sign attendance - config perm days validationIonut Ciolan2026-06-10Yes
adservio/web!2557adservio/web[ADS-7451] fixed bug on sync staff attendanceIonut Ciolan2026-06-10YesYes
adservio/web!2545adservio/web[ADS-7460] Statistics validation errorsMarian Andrei2026-06-10
adservio/web!2562adservio/web[ADS-7866] [BE] - Fix an scolar la crearea unei stiriAlex Murarescu2026-06-10Yes
adservio/social!27adservio/social[ADS-7866] [BE] - Fix an scolar la crearea unei stiriAlex Murarescu2026-06-10Yes
adservio/web!2563adservio/web[ADS-7834] sign attendance validationIonut Ciolan2026-06-10
adservio/helm2!273adservio/helm2grant developer role scale permission on deploymentsRojan Shrestha2026-06-10
adservio/devops/iac!39adservio/devops/iacdeveloper: grant S3 R+W + ListAllMyBuckets on new buckets across dev/staging/prodRojan Shrestha2026-06-10
adservio/web!2564adservio/web[HOTIFX] Sign staff attendance validation bug fixedIonut Ciolan2026-06-11
adservio/frontend!1914adservio/frontend[ADS-7432] La evolutie, textul din tooltip este taiat la apasarea pe iconita...Petronel Pavel2026-06-11Yes
adservio/docgen2/backend!134adservio/docgen2/backend[ADS-7867] Denumire incorecta a ministerului in Catalogul PDF pentru scolile pe semestrePetronel Pavel2026-06-11Yes
adservio/frontend!1911adservio/frontendStabilize Uni Files Plupload readinessValentin Pal2026-06-11Yes
adservio/web!2565adservio/web[ADS-7869] Condica - Adaugare mesaje eroare pentru semnare condica (error code 115)Petronel Pavel2026-06-11Yes
adservio/web!2566adservio/web[ADS-7859]: Enhance CMC purtare handling and update note grade typesAndrei Dragan2026-06-11Yes
adservio/frontend!1916adservio/frontend[ADS-7859]: Swich back behaviour subjectDragoș Ivan2026-06-11
adservio/frontend!1915adservio/frontend[ADS-7869] Condica - Adaugare mesaje eroare pentru semnare condica (error code 115)Petronel Pavel2026-06-11Yes
adservio/web!2568adservio/web[HOTFIX] sign attendanceIonut Ciolan2026-06-11Yes
adservio/web!2567adservio/web[ADS-7589] student transcript - code refactorIonut Ciolan2026-06-11Yes
adservio/frontend!1917adservio/frontend[ADS-7589] student transcript - code refactorPetronel Pavel2026-06-11Yes
adservio/forms/backend!18adservio/forms/backend[ADS-7429][Documentele candidatului] - Adaugare Banca si IBAN in Detaliile personaleAchim Stefan2026-06-11
adservio/web!2569adservio/web[ADS-7879] Bug fixing & script run mysql on stagMarian Andrei2026-06-11
adservio/helm2!276adservio/helm2chore: switch sentry to cdnDaniel Onisoru2026-06-11
adservio/frontend!1919adservio/frontendchore: move sentry to cdnDaniel Onisoru2026-06-11
adservio/frontend!1923adservio/frontend[ADS-7858] Situatie scolara- valorile din dropdown nu sunt afisate in ordine alfabeticaPetronel Pavel2026-06-12Yes
adservio/frontend!1922adservio/frontend[ADS-7886] Prima incercare de adaugarea a unei suprascrieri in catalogul PDF...Petronel Pavel2026-06-12Yes
adservio/frontend!1920adservio/frontend[ADS-7801] Disciplinele echivalate nu ar trebui să permită editareaAchim Stefan2026-06-12Yes
adservio/uni/backend!210adservio/uni/backend[ADS-7801] Note discipline - Discipline echivalateAndrei Alexandru2026-06-12Yes
adservio/uni/backend!211adservio/uni/backend[ADS-7841][ADS-7810][ADS-7788]: Some fixesAndrei Alexandru2026-06-12
adservio/frontend!1891adservio/frontend[ADS-7284] Refactorizare "Anuleaza recurenta"Edgar Alexa2026-06-12Yes
adservio/subscriptions/backend!114adservio/subscriptions/backend[ADS-7284] Refactorizare "Anuleaza recurenta"Edgar Alexa2026-06-12Yes
adservio/billing/backend!248adservio/billing/backend[ADS-7284] Refactorizare "Anuleaza recurenta"Edgar Alexa2026-06-12Yes

Oldest Active Open MRs (> 48 Working Hours)

adservio/web!2091adservio/webAndrei Dragan236.6d5
adservio/helm2!137adservio/helm2Raul Popovici212.7d0
adservio/services/websocket!8adservio/services/websocketRaul Popovici209.6d0
adservio/services/videothumb!5adservio/services/videothumbRaul Popovici209.6d0
adservio/services/fet-generator!9adservio/services/fet-generatorRaul Popovici209.6d0
adservio/ai/backend!62adservio/ai/backendRobert110.7d0
adservio/frontend!1556adservio/frontendGeorge Murgoci101.4d0
adservio/web!2344adservio/webGeorge Murgoci100.5d0
adservio/library/backend!26adservio/library/backendRaul Popovici80.5d0
adservio/subscriptions/backend!103adservio/subscriptions/backendEdgar Alexa78.5d4
adservio/uni/backend!193adservio/uni/backendAndrei Alexandru20.1d320
adservio/web!2499adservio/webAndrei Dragan15.2d62
adservio/frontend!1822adservio/frontendAchim Stefan14.9d271
adservio/subscriptions/backend!114adservio/subscriptions/backendEdgar Alexa14.0d100
adservio/docgen2/backend!122adservio/docgen2/backendAchim Stefan13.0d40
adservio/billing/backend!248adservio/billing/backendEdgar Alexa13.0d100
adservio/docgen2/backend!124adservio/docgen2/backendPetronel Pavel12.2d90
adservio/frontend!1891adservio/frontendEdgar Alexa7.1d40
adservio/frontend!1898adservio/frontendDragoș Ivan3.6d462
adservio/admission/backend!153adservio/admission/backendDragoș Ivan3.6d161

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.