Git Shortlog reviewed-by
Whilst reading the
git 2.29 release notes there was one section in particular that caught my eye.
git shortlog added the ability to group commits by a trailer, such as
That is, until Git 2.29! In this release, git shortlog learned a new --group argument, to specify how commits are grouped and assigned credit. It takes --group=author (the default behavior from before) and --group=committer (equivalent to git shortlog -c), but it also accepts a --group=trailer:
Passing the latter allows us to group commits by their co-authors, and it also allows for more creative uses. If your project is using the Reviewed-by trailer, you can use git shortlog to see who is reviewing the most patches:
$ git shortlog -ns --group=trailer:reviewed-by v2.28.0.. | head -n5 40 Eric Sunshine 10 Taylor Blau 4 brian m. carlson 2 Elijah Newren 1 Jeff King
This made me think that it would be great to see who is reviewing most of our pull requests as it’s a very important job, but it’s not as visible to the rest of the team.
Like a lot of teams, we use GitHub for code reviews, and we’re heavily invested in GitHub Actions. I took a look at the available events and saw
pull_request_review, which I could use to automatically update the pull request description to contain a
Reviewed-by trailer whenever a review was added. Combined with
Squash and merge this provides a way to add the
Reviewed-by trailer with zero effort from the team.
If you want to use this yourself, you can find it on the Actions Marketplace. Here’s an example workflow that enables the action:
name: PR Reviewon: pull_request_reviewjobs:review:name: Reviewed-by Trailerruns-on: ubuntu-lateststeps:- name: Debuguses: mheap/[email protected]env:GITHUB_TOKEN: $with:states: approved,changed_requested
And here’s how it looks once it’s run:
The action is just 40 lines of code, and 260 lines of tests. Another example where a little automation can go a long way with GitHub Actions!