logo

I made a tool that ranks reviewable PRs

Posted by toneric |3 hours ago |1 comments

toneric 3 hours ago

Hey HN,

As part of my work, I maintain a handful of repos, and doing reviews in the right order was kinda always clunky and best-effort prioritization task.

Many PRs would be marked as ready for review across many repos, but I often didn't have a good sense of what to look at first.

Most mornings I'd open a few tabs, scroll around, and kind of guess. The oldest one? The one someone pinged me about on Slack just few mins ago? But hold on, that's actually a low-prio one, that one can wait, so let's close the tab. The small/quick one I could just get it off my plate?

All of that is just a bad way to do things, and promotes bad behaviour, as it encourages people to just Slack each other PR links all day long, fighting for each other's attention on a limited canvas on our displays and oftentimes just giving false sense of urgency.

So I made PR Bro. It's a terminal app that grabs PRs and gives each one a score based on stuff like age, approvals, size, labels, draft or not, whether you've already reviewed it... You decide how much each thing matters/weighs.

Then it just sorts them, and you start at the top, one by one.

It's written in Rust, has vim-like keybindings, you can snooze PRs you don't want to deal with yet, and there's a breakdown view so you can see why something scored the way it did. It also uses conditional requests/ETags so it's light on the GitHub API rates.

https://github.com/toniperic/pr-bro

Feel free to contribute to the repo or file an issue/idea what you'd weight/filter — the scoring is the part I keep tweaking, although it mostly works fine for my needs already.