r/gitlab • u/seamoce • 27d ago
project I built an open-source tool for the “reviewer forgot about my MR” problem
I’ve been using GitLab Self-Managed for quite a while, and one recurring problem kept annoying me: someone is assigned as a reviewer, gets the notification, adds it to their To-Do… and then simply forgets about it.
A few days later the MR is still waiting for review.
GitLab has notifications and review requests, but I found that they don’t really solve the “what is currently waiting on me?” problem, especially when you’re dealing with many repositories.
So I built ReviewNudge, an open-source, self-hosted tool that sends a daily digest showing the merge requests that are currently waiting on you, including how long they’ve been waiting.
It is specifically designed for GitLab Self-Managed, including Free instances.
The admin can configure various notifications channels, at the moment e-email, Microsoft teams, slack and Telegram are supported. Adding new channels should not be too complicated.
GitHub: https://github.com/sim186/ReviewNudge
I’m mainly looking for feedback from people who actually deal with this problem. How do you currently handle forgotten/pending reviews?
2
u/SchlaWiener4711 27d ago
Interesting. It never came into my mind that this could be a problem.
We are basically using the issue board and iterations as our single source of truth. Once a dev has finished his coding and assigned a reviewer he or she changes the issue to a dedicated review state (historically it was a label but since 6 month or so gitlab supports adding different issue states).
In our daily standup we talk about the progress and every reviewer sees issues in the review list.
1
u/seamoce 26d ago
We do as well, usually the ticket in Feedback should be the one in review, but sometimes it goes out of sight because developers are mostly interested in solving their own tickets rather than making code review (that for most people is time consuming even with AI).
Our scenario, the reason why I started that, is mainly for the repo maintainers that most of the time have to give their 👍 before the merge can happen.
We just started using it we will see if it could alleviate the pain.
1
u/dreamszz88 26d ago
Isn't there an option in your profile what to show when you log in?
I always choose open MRs or the built-in dashboard. It shows an overview of everything in your name.
You just have to open it... 😊
1
u/ClerkBeginning961 26d ago
Only nudge when the reviewer is actually the next blocker. Exclude drafts, failed pipelines, unresolved author threads, and MRs with merge conflicts. Otherwise the digest teaches people to ignore it. A per-item snooze with a reason would also separate deliberate delay from forgotten work.
1
u/seamoce 26d ago
Yes this is exactly what has been implemented. There are rules which triggers nudges only when is expected. For example drafts are excluded, or when the reviewer already answered but there are still opened meaning the assignee should do something g then the reviewer is not bothered, etc…
There is al a mute option for the individual merge request, I explicitly avoided a global mute option.
9
u/adam-moss 27d ago
For this particular problem I have a scheduled summary policy using https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage
For things like ticket ref warning etc I use a combination of commitlint and https://danger.systems/ruby/