GUI Usage
The application includes a Graphical User Interface (GUI) built with Tkinter and ttk.
Key GUI Components
Based on the files in app/gui/:
Main Window (`app/gui/main.py`): Sets up the main application window with tabs for different functionalities.
Getting Started Tab (`app/gui/getting_started.py`): Provides an initial welcome screen and directs users to the setup.
Configuration Tab (`app/gui/configuration.py`): Allows users to configure API keys (like Gemini), select models (API-based or local like Ollama), and set the repository path. Includes validation for inputs.
Readme Automatic Tab (`app/gui/readme_automatic.py`): Provides functionality to automatically generate a README file, likely using LLM calls based on the repo content.
Readme Improvement Tab (`app/gui/readme_improvement.py`): Allows users to load an existing README, split it into sections, generate improvements for sections using an LLM, and export the result. Also includes features for manual content creation.
Commit Analyzer Tab (`app/gui/commit_analyzer.py`): Fetches current Git changes or historical commits, displays diffs, generates commit messages using an LLM, and allows committing and pushing.
Security Generator Tab (`app/gui/security_generator.py`): Helps create a SECURITY.md file by asking for reporting methods, disclosure policies, preferred languages, and contact info, then generates the file content.
Security Scanner Tab (`app/gui/security_scanner_tab.py`): Provides buttons to run security scans (First Pass, Second Pass) on the repository code, displays progress, and shows a summary of findings. It uses the main security scanning logic.
Gemini Chat Tab (`app/gui/gemini_chat_tab.py`): Allows users to chat with an AI assistant (Gemini) about the initialized repository context. Requires initialization which likely involves processing and uploading repo content.
Improve Structure Tab (`app/gui/improve_structure_tab.py`): Analyzes the project structure and suggests improvements based on popular templates (like Cookiecutter) using an LLM.