Code Reviews: Time to put the things on Autopilot
Tags: codereview, github, productivity, tooling
Published: 2022-12-05 15:23:22


Checklists are important instruments to uphold quality in code reviews. They help ensure that all the relevant tasks are carried out and that nothing is forgotten. However, doing those checklists manually is a tedious, time-consuming task. That's why many engineering teams have turned to automation using GitHub's pull request templates feature. While this is a step in the right direction, there are still some limitations with this approach. Let's take a closer look. 

## GitHub's Pull Request Templates Approach

GitHub's pull request templates [GitHub's pull request templates](https://github.blog/2016-02-17-issue-a) are a way to automate the creation of checklists. With this feature, you can have a set of checklist items that will be automatically added to every pull request. The problem with this approach is that the checklist items are always the same, regardless of the actual pull request and its content. A one-size-fits-all checklist will not always be effective. Most of the time, the checklist may need to be changed to fit the pull request. 

## Context-Dependent Checklists to the Rescue!    


Branch filters let you make checklists that change depending on the source or destination branch. In other words, you want different checklists depending on the source or destination branch. For example, when doing a [hotfix](https://github.com/mibexsoftware/checklist-buddy-demo/pull/4), you might want a different checklist than when working on a [new feature](https://github.com/mibexsoftware/checklist-buddy-demo/pull/3) or [release branch](https://github.com/mibexsoftware/checklist-buddy-demo/pull/11). This approach offers much more flexibility and can be tailored specifically to your needs. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4bisf5kv92dmuxxef0d.png)

Also, the content of a file in a Pull Request can be used to decide which items on a checklist should be used. For example, if an image is added to a Pull Request, it might be important to check that images have been appropriately compressed. Overall, context-dependent checklists can help make code reviews better and more efficient by making sure that the right things are checked at the right time.



[Checklist Buddy for GitHub](https://github.com/marketplace/pull-request-checklist-buddy)  is an innovative new tool that helps developers create effective checklists for their code repositories.

The app also offers a new merge check to prevent Pull Requests from being merged when there are unresolved tasks, e.g. in checklists.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zxhzt24dy69z4pzv045i.png)


To top it off, [our configuration is incorporated into a powerful syntax via code](https://github.com/mibexsoftware/checklist-buddy-demo/blob/main/PRCHECKLIST) inside a file called 'PRCHECKLIST'. Each change you make here is peer reviewable with easy tracking ensured by Git!

```
--files ui/** +title+ Frontend testing checklist :art:
--files ui/** +task+ UI changes visually inspected on Chrome
--files ui/** +task+ UI changes visually inspected on Safari
```

If you're looking for a more flexible and tailored solution to code review checklists, Checklist Buddy could be the answer, and help you stay organized, efficient, and productive.
We created it also for  [Bitbucket](https://marketplace.atlassian.com/apps/1225571/pull-request-checklist-buddy-for-bitbucket?hosting=cloud&tab=overviewand) and [JetBrains Space](https://plugins.jetbrains.com/plugin/20330-checklist-buddy/) where we also won the [Space App Contest](https://blog.jetbrains.com/space/2022/11/28/space-apps-contest-winners/). With a [sample repository full of checklists](https://github.com/mibexsoftware/checklist-buddy-demo) to reference or customize for all projects - big or small - use it as the perfect companion in streamlining workflows. 

✨ Try it now for free: [Checklist Buddy for GitHub](https://github.com/marketplace/pull-request-checklist-buddy)