Adds refactoring annotations to GitHub diff
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
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
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