One feature recommendation: you might want to consider supporting people submitting the entire URL. Currently, when you do that, you hit a 500.
NodeJS use a bot that manually merges the commits but closes the PRs: https://github.com/nodejs/node/pull/36661
Maybe because I merge commits manually.
I remember rejecting only a few PRs.
It seems very discouraging for new contributors.
When I'm contributing to a project, the thing I care most about is response time. If I submit a PR and the maintainer accepts it a year later, that's not very inviting. But if the maintainer gets back to me in a day and explains why they're rejecting my PR, that's actually a much better outcome.
I tried plugging in my own project (mtlynch/tinypilot), and I score a disappointing 60%. But I think what happens is that external contributors often aren't very familiar with git, so they'll try to fix merge conflicts by merging instead of rebasing, leading to PRs that are 10x larger due to merge noise.
In those cases, I cherry pick their commits into a new PR, but I'm guessing that counts as a rejected PR, even though their commits are getting merged in.