I have finally gotten around to writing a simple PR workflow bot. Say hello to marvin!
Here is an example of how it works: https://github.com/timokau/marvins-playground/pull/13
The intention is basically to start by replacing the “PRs ready for review” and “PRs already reviewed” threads on discourse. It could learn to do lots more than that – but let’s start simple and iterate from there. See https://github.com/NixOS/rfcs/pull/30#issuecomment-639117857 for more details.
The bot in its current state is very simple. Its a proof of concept. It is not designed to handle every eventuality or have every feature. Currently it crashes on any unexpected situation. I haven’t made it more robust on purpose, since failing early is good for now.
I would like to run a alpha test on nixpkgs. To do that, we’d need to give marvin triage permission. The absolut worst-case would be that it mangles the metadata a bit, though I think its very unlikely. It is currently strictly opt-in and has straightforward code to bail out early if its not invited on a PR.
After that, the plan is to iterate on it until I’m reasonably happy with it and its well tested. At that point I would revive rfc#30, which would propose enabling it by default on every PR.
What do you think? Feel free to play around with it.