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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Enjoy all the Upsource code insight functionality while reviewing pull requests. All the comments and other activity will be kept in sync.
Whether you are performing a code review or simply browsing changes, you can see how new changes affected builds on your CI server.
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.
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.
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.
Upsource installs on your servers or on your own cloud infrastructure.
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.
Rely on our unlimited email support.
Enjoy easy installation and setup and locally controlled backups.
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.