Adds refactoring annotations to GitHub diff

Latest Version

Version
0.0.26
Update
January 3, 2021
Size
320KiB
Developer
Category
Users
25
Rating
0 ★
Manifest Version
2
Web Store Status
Languages Support
English
See more
Permissions
Tabs
Storage
ActiveTab
Https://github.com/*
Https://api.github.com/*
Https://refdiff.brito.com.br/*
See more

RAID: Refactoring-aware and Intelligent Diffs Extension

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
Read more

Source Manifest.json

{"update_url": "https://clients2.google.com/service/update2/crx", "name": "RAID: Refactoring-aware and Intelligent Diffs", "version": "0.0.26", "manifest_version": 2, "description": "Adds refactoring annotations to GitHub diff", "homepage_url": "https://github.com/rodrigo-brito/refactoring-aware-diff", "icons": { "16": "icons/icon16.png", "48": "icons/icon48.png", "128": "icons/icon128.png" }, "browser_action": { "default_icon": "icons/icon128.png", "default_title": "RAID: Refactoring-aware and Intelligent Diffs", "default_popup": "html/browser_action.html" }, "options_page": "html/options.html", "background": { "scripts": ["js/build/background.js"], "persistent": false }, "content_scripts": [ { "run_at": "document_end", "matches": ["https://github.com/*"], "css": ["css/inject.css", "css/diff2html.min.css", "css/prism.css"], "js": ["js/build/content-script.js"] } ], "permissions": [ "tabs", "storage", "activeTab", "https://github.com/*", "https://api.github.com/*", "https://refdiff.brito.com.br/*" ], "content_security_policy": "script-src 'self' https://apis.google.com https://www.gstatic.com https://*.firebaseio.com https://*.firebaseapp.com https://*.googleapis.com https://www.google-analytics.com; object-src 'self'"}
Read more