You can still do this on a GituHub PR. Pull the branch locally, read the code, try things out, rebase onto main…
Once all is good, push into remote HEAD and GithHub should auto-close.
Though, larger project tend to leave the final upstream merge to GitHub itself. Better access control and it’s easier to serialize merges through a single queue for very active projects.