If the task was the produce an object with the top 10 commiters with username as key and value number of commits maybe something liket this:
group_by(.commit.author.name) | map({key: first.commit.author.name, value: length}) | sort_by(.value) | reverse[:10] | from_entries
I'm looking forward to your jq version. I love jq and use it all the time, but for anything of that complexity, I'd probably just use Python.