Skip to content

LLM based workflow that opens pull requests based on detected design smells

Notifications You must be signed in to change notification settings

FlightVin/automated-refactoring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automated Refactoring Pipeline

Tasks

  • Automated Design Smell Detection: Develop a script or tool that periodically scans the GitHub repository for design smells. This can include metrics analysis, code pattern recognition, or any other relevant approach. Utilize the capabilities of LLMs to assist in identifying potential design issues in the codebase.

  • Automated Refactoring: Implement an automated refactoring module that takes the identified design smells and generates refactored code using LLMs. Ensure that the refactoring process is robust, preserving the functionality of the code while enhancing its design.

  • Pull Request Generation: Design a mechanism to automatically create a pull request with the refactored code changes. Include detailed information in the pull request, such as the detected design smells, the applied refactoring techniques, and any relevant metrics.

High level overview of pipeline

  • We have setup a cron job that runs scripts/script.py every few hours
  • It pulls the main branch and finds design smells
  • We refactor based on the design smells on a per-file basis
  • We create a pull request with the new code

TODO

  • Get basic GitHub stuff like pull requests working
  • Get checkstyle working and format the output
  • Form the prompt for single file refactoring.
  • Design smell detection
  • Write API code (pulls latest code after checking for changes in the specified repository to check for smells)
  • Write script for periodically checking repo
  • Write code for actually refactoring the code based on the smells suggested.
  • Compare with other gpt models (codex?)
  • Integrate code for creating branch and making pull request with script.py in scripts.
  • Modify the cronjob for making pull requests and publishing the new branch.

About

LLM based workflow that opens pull requests based on detected design smells

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published