I encountered this pattern via @simonw's writeup: https://simonwillison.net/2020/Oct/9/git-scraping/
Their implementation seems nice and simple as well, I should dig through their various use-cases for it and find other useful tools that I'm sure they've built