Upsource
Code Review and Project Analytics
Code review for .NET projects in Upsource
As you know, Upsource has IntelliJ IDEA at its core which brings IDE-level code insight right into your browser. This helps teams that code in Java, PHP, Python, Kotlin, and JavaScript perform code review in a more efficient manner.
This, however, doesn’t mean that projects written in other languages cannot use Upsource as a code review tool. In fact, all of the smart code review functionality such as progress tracking, workflow automation, and intelligent suggestion of reviewers and revisions is language-independent. The only teams that cannot use Upsource are the ones using exotic version control systems. Git, Mercurial, Subversion, and Perforce are supported out of the box.
For some languages, there are extra benefits available that may not be obvious from the first glance. In this post, I’d like to go over some Upsource features that a .NET team can use to make their code reviews more efficient.
ReSharper Code Inspections
Although there’s no built-in ReSharper engine in Upsource, it can receive and present the results of code analysis performed on your TeamCity server.
Note: If you don’t know what TeamCity is, check it out – it’s a great CI server and it’s free up to 20 build configurations.
TeamCity has a built-in ReSharper inspections runner that can be part of your build pipeline. After a simple setup, TeamCity will start sending the results of static code analysis to Upsource, and you’ll be able to see them right in the code.
Needless to say, having code analysis warnings at hand during a code review can be of great help when evaluating a changeset.
Upsource Integration plugin for Rider
If you’re using Rider, a cross-platform .NET IDE combining the power of the IntelliJ platform and ReSharper, you can also benefit from Upsource IDE integration plugin.
Having this plugin installed, you can create code reviews when you commit a change, get notified about any updates relevant to you, participate in discussions, review someone else’s changes, and so on – straight from your IDE. This means that you can leverage all of the IDE’s power to help you complete a code review faster and increase its value.
Check out this article to learn more about the plugin’s features.
General Code Review Assistance
Another way Upsource can help a .NET team become more efficient at code reviews is by eliminating all the unnecessary manual work. You can automate your workflow and make sure all the critical code parts and changes are covered, as well as set up automatic assignment of reviewers for each new code review:
If you prefer, you can also create reviews manually, of course. In this case, Upsource will suggest reviewers based on historical data of code commits and code reviews, and when a new revision appears, Upsource can let you know if it might be related to a code review in progress:
Code review is an iterative process. If a reviewer finds problems in a new change, the author needs to address them and commit a new change which also needs to be reviewed. Upsource tracks reviewer’s progress and optimizes the process – when a new change arrives, the reviewer needs to only look into that latest change, not the whole changeset.
You can use labels to help prioritize concerns raised in discussions and resolve discussions when the problem has been addressed or the question has been answered.
You can also integrate Upsource with your issue tracker and create issues straight from discussions, and, if you’re using JIRA, apply transitions for your iteration workflow automatically.
These features can help a .NET team perform code reviews more efficiently, but there’s a lot more to Upsource! Project analytics, powerful search, comprehensive repository exploring, transparent team collaboration, and many small-but-handy features here and there that generally make Upsource so pleasant to work with. If you haven’t yet, give it a try!