docs(repo): say GitLab closes a merge request's issues 4 at a time, 5 minutes apart #537

Merged
root merged 1 commit from claude/close-autoclose-gitlab-migration-591a1b into main 2026-10-15 21:22:12 +00:00
root commented 2026-10-15 21:19:09 +00:00 (Migrated from gitlab.core-project.space)

Summary

 - **Close**: … Normally an issue closes when a merge request carrying `Closes #<n>` merges into
   `main`; don't close it by hand.
+  GitLab closes the first 4 at the merge and the rest in waves 5 minutes apart, so an issue still
+  open a few minutes after the merge is waiting its turn: closing it by hand loses its
+  "closed via merge request" link.

GitLab's post-merge service schedules each closing issue's CloseIssueWorker with a delay that grows by 5 minutes per wave (app/services/merge_requests/post_merge_service.rb). Agents read the issues still open as a broken auto-close and closed them by hand.

Evidence

  • Before: the issues' state events, by source_merge_request_id:

    MR Issues Closed at merge Closed later
    !515 8 4 4 after 5 min, via !515
    !527 6 4 2 after 5 min, via !527
    !534 5 4 1 after 5 min, via !534
    !523 8 4 #381–384 by hand, 1 min after, no MR
    !529 5 4 #388 by hand, 20 s after, no MR
    !536 8 4 #425–428 by hand, 2 min after, no MR

    After: the doc says to wait out the waves.

Merge Danger

Door: two-way

Blast Radius: docs

## Summary ```diff - **Close**: … Normally an issue closes when a merge request carrying `Closes #<n>` merges into `main`; don't close it by hand. + GitLab closes the first 4 at the merge and the rest in waves 5 minutes apart, so an issue still + open a few minutes after the merge is waiting its turn: closing it by hand loses its + "closed via merge request" link. ``` GitLab's post-merge service schedules each closing issue's `CloseIssueWorker` with a delay that grows by 5 minutes per wave (`app/services/merge_requests/post_merge_service.rb`). Agents read the issues still open as a broken auto-close and closed them by hand. ## Evidence - **Before:** the issues' state events, by `source_merge_request_id`: | MR | Issues | Closed at merge | Closed later | | --- | ------ | --------------- | --------------------------------------- | | !515 | 8 | 4 | 4 after 5 min, via !515 | | !527 | 6 | 4 | 2 after 5 min, via !527 | | !534 | 5 | 4 | 1 after 5 min, via !534 | | !523 | 8 | 4 | #381–384 by hand, 1 min after, no MR | | !529 | 5 | 4 | #388 by hand, 20 s after, no MR | | !536 | 8 | 4 | #425–428 by hand, 2 min after, no MR | **After:** the doc says to wait out the waves. ## Merge Danger **Door:** two-way **Blast Radius:** docs
root (Migrated from gitlab.core-project.space) merged commit into main 2026-10-15 21:22:12 +00:00
Sign in to join this conversation.
No description provided.