Upsource Features

Code Review

Upsource helps team members achieve better code quality, advance their development skills, make changes visible to the whole team and engage in technical discussions through effective code reviews. It suits any team, large or small, regardless of the existing development process.

Fluid workflow

The code review process in Upsource is flexible. You can let your team decide which changes require a code review, or set up automatic code review creation when a change occurs in certain parts of your project. You can also combine these approaches. When creating a code review for a change Upsource will suggest reviewers based on the history of files that have been changed, as well as code review history.

Code insight

Any team can benefit from Upsource as a general-purpose code review tool. Teams using Java, JavaScript, PHP or Kotlin, receive additional advantages including server-side static code analysis and code-aware navigation and search for usages. You can even compare symbol usages across two revisions, and see if a change introduced new code inspection warnings. Learn more about code insight in Upsource.

Code review assistance

Upsource helps performing a code review in many ways. It indicates the read/unread state of each file and tracks which revisions have already been seen and approved. When new revisions are added to the code review, a reviewer only sees the diff of those revisions so they don't have to inspect previous changes again. You can examine changes in an inline diff or a side by side view, whichever you prefer.

Post-commit / Pull requests

In Upsource you can create a post-commit code review on any change with just one click. If you need to attach new revisions to the review, you can either do it manually or by simply mentioning the review ID in the commit message. You can also review entire feature branches, or GitHub pull requests in which cases new revisions are added to the review automatically.

Problems labeled and solved

Upsource helps you categorize and prioritize any concerns raised during a code review by applying labels to discussions. Some predefined labels are provided, others can be created on a per-project basis. You can resolve a discussion when the problem is addressed, or log an issue in your bug tracker straight from a code review.

Code review from IDE

To help developers stay in their comfort zone, Upsource features a code review plugin for IntelliJ IDEA and other JetBrains IDEs which allows you to participate in code discussions and manage code reviews from the comfort of your IDE. Almost all the features that are available to you in the web UI, are also accessible from the plugin.

Team Collaboration

Upsource is the perfect place for your team to engage in technical discussions over the code base, helping each other to build better software and share knowledge to enhance your development skills.

Discuss and share

In Upsource you can start discussions in code or diff views, with or without creating a formal code review, from the web UI or right from your IDE. Everything in Upsource has a URL and can be shared with teammates: code reviews, revision diffs, discussions of code and revisions, reports or filters applied to commit graphs, and even custom selections of code in any specific revision.

Smart notifications

Upsource notifies its users in real time, via News Feed or the IDE plugin, of any activities requiring their attention, from code review status changes to simple @mention. Email notifications are bundled in a single email so you have less in your inbox to go through. They come with code highlighting and the ability to reply to comments via email, allowing you to participate in ongoing reviews without leaving your email program.

Knowledge history

When viewing any revision of a file, you have access to all relevant discussions from prior revisions of this file, be it within code reviews or in standalone discussions that weren't part of formal code reviews.

Essentially, all knowledge about specific files in your code base is accumulated and made available for future reference.

Repository Browsing

Upsource summarizes recent changes in your repository, showing commit messages, authors, quick diffs, links to detailed diff views and associated code reviews. A commit graph helps visualize the history of commits, branches and merges in your repository.

Broad VCS support

Upsource serves as a central location with a friendly unified UI for exploring and monitoring all your VCS repositories. It is great for most projects, old and new, as it can read from Git, Mercurial, Subversion and Perforce. Navigate to specific revisions, and inspect diffs inline or side-by-side. Track recent commits, branches and merges, or search the project history to learn who did what and when.

Commit history

Upsource lists recent changes in your repository. The commit message, author, timestamp and commit ID are instantly visible for each commit, as are quick links to a diff view and a link that lets you explore your project state as of a particular revision. The list of commits is accompanied by a commit graph that helps visualize the history of commits, branches and merges in your repository.

Powerful search

Upsource helps developers stay in context of the changes relevant to them. You can filter repository activity by commit message, branch, author, commit message, commit ID, Git or Mercurial tag, path, discussion label, time range, etc. It is also possible to find particular files, and take advantage of CamelHumps while searching.

History of files

Whenever you need to know how a file has evolved, use the History view to display the list of revisions that have affected the file, links to diff views for these revisions, as well as links to code reviews that were conducted on these revisions. Another historical view called Blame displays line-level references to developers and revisions that have most recently affected specific lines of code in a file.

Branches page

The Branches page shows the activity across your project's branches and allows you to create GitHub pull requests. You can quickly search the list and see which ones are active or stale. The default branch setting makes the UI a bit smarter when displaying the commits graph, rendering README files, comparing branches, and so on.

Code exploration

Enjoy quick read access to the current or any prior state of your project's code, without having to check out locally. Browse project structure, view syntax-highlighted files, and search for code, files and text.

Integrations

To help developers stay in their comfort zone, Upsource features code review plugins for IntelliJ IDEA and other JetBrains IDEs which allow you to participate in code discussions and manage code reviews from the comfort of your IDE.

Upsource also integrates with popular issue trackers, Continuous Integration servers, synchronizes activity with GitHub, and provides webhooks to notify external services or receive notifications.

IDE Plugin

Upsource’s IDE plugin for code review lets you perform the same actions that are available in the Upsource UI from within your IDE. You can create code reviews for your changes, review a colleague’s code, assign reviewers and watchers, participate in discussions, get notifications, and so on.

Integrations

Issue tracker integration

Upsource lets you navigate to relevant issues in your YouTrack or JIRA instance from discussions, code reviews and commit messages. You can also create an issue from a code review or even from a discussion.

GitHub Integration

Enjoy all the Upsource code insight functionality while reviewing pull requests. All the comments and other activity will be kept in sync.

TeamCity Integration

Whether you are performing a code review or simply browsing changes, you can see how new changes affected builds on your CI server.

Webhooks

Use webhooks to notify external services, such as an issue tracker, a CI server, or a deployment tool, about events that occur in an Upsource project.

Business-ready

Upsource installs on your servers, behind your firewall, so that only you have access and full control over your project information. It comes with flexible user management options, granular permissions, and per-project permissions, and integrates with multiple authentication modules.

Analytics

Upsource gathers VCS usage and code review statistics, and displays repository activity and code review coverage. For Java projects, it also shows who is contributing to each module.

Hosting options

Upsource installs on your servers or on your own cloud infrastructure.

Security

Upsource integrates with LDAP and many other authentication modules. You have complete control over project access: divide users into groups, customize roles and permissions, and set per-project permissions.

Support

Rely on our unlimited email support.

Administration

Enjoy easy installation and setup and locally controlled backups.

Highly Scalable

Upsource offers two installation options. The default one suits well small and medium-sized companies. You can download the distribution .zip and install it either on your servers or on your cloud infrastructure. If your company has high scalability requirements, we offer a distributed cluster setup that can accommodate hundreds of projects, serve thousands of users, and ensure 24/7 availability and fault tolerance.

For the installation instructions, please refer to our documentation, and don't hesitate to contact our support team in case you need any assistance.