RAID: Refactoring-aware and Intelligent Diffs

#0 / 0 rate

RAID: Refactoring-aware and Intelligent Diffs

22 users

2020-07-04

Rodrigo Brito

Extension Information

5 star
100%
4 star
0%
3 star
0%
2 star
0%
1 star
0%

Supported Languages

Permissions

Description

Adds refactoring annotations to GitHub diff

Code review is a key practice in modern software development. Currently, this practice is performed using textual diff tools, such as the one provided by GitHub. However, diff results can easily become complex and hard to understand. Refactorings, for example, are not represented at all in diff results. This increases diff understanding because reviewers need to infer themselves that a given group of added and removed lines of code represent, for example, an extract method.

RAID is a tool pipeline that seamlessly enriches GitHub diff results with refactoring information. This pipeline has three key components:

- RefDiff: a tool to detect refactoring operations in commits. In our architecture, we rely on GitHub actions to automatically execute RefDiff after each Pull Request.
- An external server, that collects the list of refactorings produced by RefDiff.
- A Chrome plug-in that seamlessly annotates diff chunks associated to refactorings. As we described, the goal is to easily communicate to developers the reason behind the added/removed lines of code.

Source Code: https://github.com/rodrigo-brito/refactoring-aware-diff

INSTALLATION
- Install Refactoring-Aware Review Chrome Extension
- Include Refactoring-Aware Diff Action in GitHub CI (Available in Github description)
- Submit a new Pull Request to test the extension

An example of Pull Request with extracted refactorings can be viewed here: https://github.com/rodrigo-brito/refactoring-aware-diff/pull/5/commits

BUG REPORTS: https://github.com/rodrigo-brito/refactoring-aware-diff/issues