RhodeCode 4.3 Release: Repository Integrations, Improved Security & UX

Published on August 23, 2016, by Dmitrii Konchalenkov


It's now official: RhodeCode 4.3 is out! (tweet)

Version 4.3 is a major release, bringing new features, bugfixes, and a wide range of enhancements. We introduce a new, event-based RhodeCode Integrations framework; it enables Git, Mercurial, and SVN repositories to “talk” to your favorite development tools. Your code commits can now reference tasks in an issue tracker, post updates to a team chat, trigger notifications via email, and many more. We've boosted performance, restyled email notifications, improved security, and made many UI improvements.

Take a few minutes and update your RhodeCode instance:
rccontrol self-update && rccontrol upgrade ‘*’

New to RhodeCode? Download the latest RhodeCode 4.3 (CE or EE) from our website. Keep reading for release details.

Integrations

integrations scheme

The largest change in RhodeCode 4.3 is the addition of Integrations. Available both in Community and Enterprise editions, integrations (of various types) allow you to reference your favorite tools from within RhodeCode.

integrations interface

That means that whenever code changes are made, your tools receive a signal and act accordingly. That automates a routine of performing manual updates and adjustments, streamlines development, and keeps everyone on the same page about the changes made. Best of all, integrations speed up your existing tools and workflows, so there’s no need to change.

Using Integrations

Let’s take a look at how to use Integrations in your projects. Feel Good Inc. has 50 developers, working on a multiple products. They use Git as a main version control system, yet some of the legacy code (core modules of the main product) is still stored in SVN. Core modules are no longer in active development, hence, there’s no need for a costly SVN to Git migration; it is sufficient to access SVN repositories via RhodeCode.

integrations example

When a developer commits changes to the main repository
git commit -m "adjust meta tags fixes #4172"

RhodeCode recognizes the change and is able to reference related tasks and trigger specific events. In the previous example, a single commit:

  • Triggers notification in a team chat on Slack: RhodeCode Bot: developer pushed to dev/website: adjust meta tags fixes #4172.
  • Changes status of the DEV-4172 issue in JIRA. RhodeCode is able to identify JIRA issue id (#4172) in a commit message;
  • Launches a set of tests (smoke test build) in Jenkins.

By using integrations, teams automate routine tasks while following same familiar workflows. An interesting case is to assign Jenkins to a Pull Request as a Reviewer alongside other team members. Once all the tests run successfully, Jenkins will give the green light for a Pull Request to be merged.

We created an Integrations directory that contains 13 integrations (and counting) for the most popular tools in the industry. With the variety of tools out there, there’s always a possibility of your favorite tool not being listed. You can vote for your tool to have an integration. You can also build own custom integrations by using JSON and Webhooks. In the future, it will be possible for anyone to develop own extensions to their favorite tools and platforms.

New Features

  • Integrations: created a new event based integration framework which allows global or per repo configuration for Slack, HipChat, Webooks, and email integrations.
  • Emails: notification emails have been given a styling makeover. They are now consistent with RhodeCode’s UI.
  • Markdown: added improved support for GitHub flavored markdown.
  • Notifications: added real-time notifications with via channel stream about new comments when reviewing code.
  • Integrations: [EE only] Smart Commits for JIRA and Redmine with commit keywords to issue tracker actions mapping.

Performance

  • Core: now using async workers. RhodeCode can handle dozens of concurrent operations with a single worker.
  • UI: optimized event system for JavaScript that should boost performance of large html pages.

Security

  • Auth-token: allow other authentication types to use auth-token. Accounts associated with other types like LDAP, or PAM can now use auth-tokens to authenticate via RhodeCode.

See the full list of improvements in the release notes.

As usual, the update process is a simple one-liner: type
rccontrol self-update && rccontrol upgrade ‘*’ in the command line interface. Done!

Integratedly yours,
The RhodeCode team.

P.S. Reach the core team on Slack or join discussions on the Community Portal. For those willing to shape the development of RhodeCode, here is RhodeCode Contributor page.