Skip to content

Instantly share code, notes, and snippets.

@dlondero
Last active August 29, 2015 14:24
Show Gist options
  • Save dlondero/8512f6f9bb1a1bf0ae65 to your computer and use it in GitHub Desktop.
Save dlondero/8512f6f9bb1a1bf0ae65 to your computer and use it in GitHub Desktop.
Code review tools research
Reaserch the tools that can really help during code reviews or at least take over on some things that can be automated leaving to the reviewer the opportunity to focus on high level topics.
Atlassian Crucible
https://www.atlassian.com/software/crucible/overview
Nothing more than what we’re used with GitHub. Of course Jira integration available. Interesting ‘Review coverage’ to easily see what parts of your codebase haven't had enough eyes scanning them for a sanity check.
Look and feel: ugly as almost all other Atlassian’s tools.
Review Board
https://www.reviewboard.org/
Even if it looks alive (last news update 28th June 2015) it seems this project is coming from the 90s. Although that there is one nice ideas: list of ‘All incoming review requests’ where to see what you have to review. Compared to email notifications sent by GH and landing in the middle of a lot of other emails it could help in that.
Barkeep
http://getbarkeep.org/
Yet another tool to host in order to browse your projects’ source code and search commits to review or ask people to review code.
Codebrag
http://codebrag.com/
Codebrag integrates with any SVN or Git repository, no matter whether hosted locally (e.g. Gitlab) or in the cloud (Github, Bitbucket). It does not integrate with GitHub's Pull Requests feature. Codebrag reads your repository and periodically fetches updates. It doesn't write or commit anything to the repository. Stack of commits to review with diff view and allow to comment and like changes.
Phabricator
http://phabricator.org/
Collection of open source web applications that help software companies build better software. Way too much, this would be to replace totally our usage of GitHub.
Gitcolony
https://www.gitcolony.com/
Integrates with the services already in use: synchronize commits, pull requests, and activity on GitHub Issues. They push on gamefication to try to make reviews and collaboration funnier. Interesting the code review timeline where you can view which branches your commits belong to, the review coverage of those branches, who approved and voted, etc.
This would be great to test: Gitcolony intelligently suggests PR assignments based on your developers' skills and workload. You don't even need to think who the right developer to manage a PR is, Gitcolony does it for you!
Reviewable
https://reviewable.io/
It is specifically designed to support code reviews showing you only the things that are changed since the last time you checked the code. Sends comments in batches: in GH if you comment inline every time an email is sent, to avoid that you’d need to put all the comments in a new comment and not write them inline on the code.
Unfortunately a mixed used of GH and Reviewable on a PR is not reccomended: line comments are turned into top-level comments, unreviewed files and unresolved comments are not tracked by the system if not all participants are using Reviewable.
Codifferous
https://codifferous.com/
Simply show you files diff and track the code you’ve read and makes it easy to see what’s changed after. Mark lines and files reviewed and leave comments on any branch.
Codacy
https://www.codacy.com/
This is mostly static analysis automation per commit and pull request. Easy to integrate into development process (just hook it in GH). Code coverage and overview on how the project is going: getting better in terms of analysis or not.
Quite expensive though.
Scrutinizer
https://scrutinizer-ci.com/
We tried it in the past but it was slowing down too much builds. It performs static analysis and tracks changes to show you on a dashboard you code’s quality and if it’s getting better or worse trough quite a few metrics.
Code Climate
https://codeclimate.com/
Probably, so far, the most extensive tool for code analysis on quality, security, and style. This is really expensive.
Template for Jenkins Jobs for PHP Projects
http://jenkins-php.org/
http://phpqatools.org/
Set of tools grouped in a template for Jenkins to do for free a lot of the checks done by paid services. Of course there are no fancy dashboards and badges but in the end what you want is to have feedback in order to fix issues and improve code quality.
Wrap up
In the end some things (the ones that can be caught by an algorithm) could be automated and delegated to external services or additional tools into the build pipeline but other things (where domain knowledge and experience are needed) must be checked by another dev.
Code reviews are not just catching typos and checking code standards but they are more about:
- sharing knowledge on the team helping each other to learn new (and why not, better) ways of solving the same problem
- code quality in terms of how easy is to understand what we’re trying to do with that code
- trying to use the same patterns and have an homogeneous codebase
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment