Refactoring-Aware-Commit-Review is a useful tool that visualizes refactoring information directly on GitHub.
This extension integrates refactoring information into GitHub repositories commits written in Java. The extension was created to provide more advanced visualization of the refactoring changes and to make the inspection of source code changes easier for developers to improve their productivity. USER GUIDE: • open a GitHub commit webpage on Chrome browser (ex: github.com/user/project/commit/id or github.com/user/project/pull/id/commits/id) (first-time use only: right-click on the extension icon on the top right of the browser, select "options", then set the waiting-time you want). • got to the commit page and click on the extension icon. You should see a loading spinning circle. • upon getting the result, you will see a button at the bottom of the page, indicating whether or not there's any refactoring been made to the commit. IF YES, then these are some hints: • hover the mouse over the "Refactoring" button; you will see all Refactoring types that are applied in the commit, with an accessible link that takes you to the exact location of the corresponding Refactoring method in the code. • on the left side of the page, you will see a navigation bar with colored bubbles; each colored bubble indicates the existence of its type (i.e. its meaning; you can see what each bubble means by hovering over it). • for "same code" methods (those in blue), you can see where they are exactly extracted to/from by: either clicking on the code itself in the commit, or clicking the link inside the Refactoring links at the bottom. A corresponding arrow will appear and direct you to the exact location of the extracted method. • every colored method has a toolbar that appears on top of it just upon hovering over the code, indicating the type of the method. Moreover, Yellow code is an indication for a method call, so its toolbar is an accessible link that will take you (when it's pressed) to the Refactoring method it's calling. Acknowledgments and Credits: The integrated refactoring information used are obtained from: RefactoringMiner (https://github.com/tsantalis/RefactoringMiner). The extension was a project funded by The Natural Sciences and Engineering Research Council of Canada (NSERC) and the Department of Computer Science and Software Engineering of Concordia University. Questions/Recommendations: Please send us an email at: [email protected]
- (2022-09-17) John Myers: Tool is broken/abandoned. Calls into backing Concordia server timeout.
- (2022-04-07) Z Z: I'm confused on how to use it for a commit at https://github.com/apache/kafka/commit/322a065b9055649c713baf43f154052d45cd1588 When I select to click on the extension, I could not see any message on what's going on. Besides it also not giving me a result. I wish there could be a more clear instruction on how to use it
- (2019-10-12) Olexandre Melnyk: everything is new like side bubbles, arrows, links, different colors...much better
- (2019-10-03) mike mike: Very helpful, saved me a lot of time understanding a huge code I've written a year ago!
- (2022-03-04, v:2.0.3) Corinne Wisniewski: Clicking on extension button in GitHub commit does not produce spinning/loading circle
Currently unsure if the extension is operational given the output I'm getting. Attempting commits from this list https://github.com/danilofes/refactoring-toy-example/commits/master