Reviewpad x Channable
Channable x Reviewpad

Channable boosted their pull request review process with Reviewpad, resulting in faster merging, fairer workloads, and fewer mistakes.

Who’s Channable

Channable is an all-in-one e-commerce marketing platform. Channable connects online retailers to more than 2500 price comparison sites and marketplaces like e.g. Amazon, Ebay, and Google Shopping. We also offer powerful product data optimization capabilities, which allow retailers to create optimized Google Ad campaigns. These campaigns can be optimized using Channable Insights, which gives retailers a clear overview of the costs and revenues of each channel, which results in higher ROI and faster e-commerce growth.

Summary

Challenges:

  • Knowing who to ask for a review was not always obvious (e.g. cross-team reviews)
  • Pull requests would stay open longer than necessary (e.g. due to missing reviews)
  • Some people would have a much higher review workload than others

Solutions:

  • We can now automatically assign reviewers from the right teams, based on the code that was changed
  • With Reviewpad we automatically assign labels to PRs to keep everything organized
  • With Reviewpad we automatically comment on PRs that change specific files (e.g. when new secrets are being referenced)

Results:

  • Reviewers are now always assigned immediately as soon as a PR is ready. This means that no more time is lost on reviewer assignment. And developers don’t need to think about this any more.
  • The review workload is now fairly distributed over each team (we use round-robin assignments)
  • People get automatic reminders about manual steps that are still required by some PRs, so this leads to fewer "I totally forgot about that" type of problems

The pull request process before Reviewpad

At Channable, we encourage our developers to own their PRs. This means that the creator of the PR chooses who reviews the PR, and asks for specific feedback. When the PR has been reviewed sufficiently, the creator of the PR is responsible for merging and deploying it. We try to provide the best tooling to our developers to make sure this is a smooth process, and to prevent human error as much as possible. We already had tooling in place for automated testing and deployment and a mergebot that makes sure master is always green, but the review process itself remained a mostly manual process.

"Reviewpad allows us to get our code merged faster, by automating reviewer assignment in a fair way."
Robert Kreuzer

Robert Kreuzer

CTO, Channable

Reviewpad usage and adoption

Reviewpad is now in use to automatically assign reviewers based on the code that was changed in a pull request. This is much like GitHub's CODEOWNERS file, but more refined. By using Reviewpad, we have some more freedom on when to assign a reviewer, and who. GitHub's code owners feature always assigns all code owners as reviewers for all pull requests that touch some code. This would be too heavy a load on engineers. Instead, we use Reviewpad to select a round-robin reviewer from the relevant project teams. Reviewpad also gives some freedom in deciding when not to automatically request reviews, such as when there are already some outstanding review requests.

"Reviewpad has automated our PR review requests much better than GitHub's codeowners feature could."
Falco Peijnenburg

Falco Peijnenburg

Infra team lead, Channable

Channable results with Reviewpad

Regarding the automatic review requests, we have seen that review requests have become more fair, meaning that each project team member is equally likely to be requested to review a PR. It also helps PRs get merged faster, since a review is requested as soon as the PR is created. We're satisfied with this result. One downside is that it is hard to scale this review request system to a large number of different teams, due to the structure of the reviewpad.yaml file.

We like to label PRs in our monorepo with the name of the subproject that was changed, such that developers can easily find relevant PRs. Before we started using Reviewpad, this was a manual process, and often developers forgot to place the right tags, leading to other developers missing relevant PRs. Reviewpad automatically labels the PRs based on the contents, saving time and preventing mistakes.

Reviewpad also reminds our developers of often occurring problems that cannot be caught by CI. Examples are reminders to remove one-off blocks from configuration-as-code code, and reminders to add newly added environment variables to our secret management service.

"Since Reviewpad labels our PRs, finding back PRs became much easier."
Rick van Hoef

Rick van Hoef

DevOps Engineer, Channable

Try Reviewpad
Disrupting how software developers collaborate