diff --git a/README.md b/README.md index a1d08bc..1ec8829 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,36 @@ # GitHub Pulse -A Python-based GUI application for GitHub automation workflows. +A Python-based GUI application for GitHub automation workflows and AI assisted workflows. + +> [!NOTE] +> This project is currently in active development. Features and functionality may change frequently. Bug reports and contributions are welcome and encouraged! +> Please be aware that some features may be incomplete or unstable. + +![GitHub Pulse img](media/github_pulse_img.png) + +## Pulse Workflow + +![Pulse Workflow img](media/flow-diagram.png) ## Project Structure ```text -github_automation/ +github_pulse/ ├── application/ # Main application directory │ ├── app.py # Application entry point │ ├── requirements.txt # Python dependencies │ └── app_components/ # Application modules +│ ├── __init__.py # Package initializer │ ├── ai_manager.py # AI provider integration │ ├── cache_manager.py # Caching functionality │ ├── config_manager.py # Configuration management │ ├── github_api.py # GitHub API client │ ├── main_gui.py # Main GUI interface +│ ├── processing_log_dialog.py # Processing log dialog │ ├── settings_dialog.py # Settings dialog -│ └── utils.py # Utility functions +│ ├── settings_manager.py # Settings management +│ ├── utils.py # Utility functions +│ └── workflow.py # Workflow processing ├── media/ # Images and assets ├── README.md # This file ├── SETUP.md # Setup guide @@ -33,8 +47,8 @@ github_automation/ 1. **Clone the repository** ```bash - git clone https://github.com/TySP-Dev/github_automation.git - cd github_automation/application + git clone https://github.com/TySP-Dev/github_pulse.git + cd github_pulse/application ``` 2. **Create and activate virtual environment** @@ -67,18 +81,9 @@ See [SETUP.md](SETUP.md) for detailed setup instructions. ## Contributing -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. +This project welcomes contributions and suggestions. In order to contribute, please fork the repository and create a pull request. ## License +GNU General Public License v3.0. See [LICENSE](LICENSE) file for details. - -## Trademarks - -This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft -trademarks or logos is subject to and must follow -[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks/usage/general). -Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. -Any use of third-party trademarks or logos are subject to those third-party's policies. diff --git a/SETUP.md b/SETUP.md index 9f310b6..61d3211 100644 --- a/SETUP.md +++ b/SETUP.md @@ -35,12 +35,6 @@ A Python-based GUI application for GitHub automation workflows. source venv/bin/activate ``` - To deactivate the environment when done: - - ```bash - deactivate - ``` - 3. **Install Dependencies** ```bash @@ -53,12 +47,18 @@ A Python-based GUI application for GitHub automation workflows. python app.py ``` +> [!NOTE] +> It is highly recommended to use a virtual environment to manage dependencies and avoid conflicts with other Python projects on your system. +> Ensure you activate the virtual environment each time you work on or start this application. + ### Virtual Environment Management **Activating the environment** (when returning to the project): +```bash - Windows: `venv\Scripts\activate` - macOS/Linux: `source venv/bin/activate` +``` **Deactivating the environment** (when done working): @@ -78,21 +78,25 @@ deactivate The project is organized as follows: ```text -github_automation/ +github_pulse/ ├── application/ # Main application directory │ ├── app.py # Application entry point │ ├── requirements.txt # Python dependencies │ └── app_components/ # Application modules +│ ├── __init__.py # Package initializer │ ├── ai_manager.py # AI provider integration │ ├── cache_manager.py # Caching functionality │ ├── config_manager.py # Configuration management │ ├── github_api.py # GitHub API client │ ├── main_gui.py # Main GUI interface +│ ├── processing_log_dialog.py # Processing log dialog │ ├── settings_dialog.py # Settings dialog -│ └── utils.py # Utility functions +│ ├── settings_manager.py # Settings management +│ ├── utils.py # Utility functions +│ └── workflow.py # Workflow processing ├── media/ # Images and assets -├── README.md # Project overview -├── SETUP.md # This setup guide +├── README.md # Readme file +├── SETUP.md # This file └── LICENSE # License information ``` @@ -122,6 +126,9 @@ github_automation/ - `claude` - Anthropic Claude API - `chatgpt` - OpenAI ChatGPT API - `github-copilot` - GitHub Models API + - `ollama` - Ollama Local Models +- **Ollama Model**: Select model based on local availability +- **Ollama API Endpoint**: URL for Ollama AI server - **API Keys**: Provide keys based on your chosen provider ### Configuration Tips @@ -129,15 +136,18 @@ github_automation/ **Start Simple**: Configure only GitHub initially **Test Connection**: Use "Test Connection" button to verify settings **AI Enhancement**: Add AI provider later for automated processing +**Configuration File**: Settings are saved in `config.json` for persistence ## Security Best Practices ### Token Security -- **Never commit** `.env` file to version control +- **Use PATs** instead of passwords - **Rotate tokens** regularly (90 days recommended) - **Minimum permissions**: Use least privilege principle - **Secure storage**: Store tokens in secure password manager +- **Avoid hardcoding**: Never hardcode tokens in source code +- **Secret management**: This project uses `keyring` for secure storage ### Repository Access diff --git a/application/requirements.txt b/application/requirements.txt index 29484f1..4f71249 100644 --- a/application/requirements.txt +++ b/application/requirements.txt @@ -3,11 +3,7 @@ requests>=2.31.0 keyring>=24.0.0 # Secure credential storage # UI Framework -flet>=0.23.0 - -# AI providers (optional - installed automatically when needed) -anthropic>=0.18.0 # Claude AI -openai>=1.12.0 # ChatGPT/GPT-4 +flet>=0.28.0 # Git operations (required for AI functionality) GitPython>=3.1.40 diff --git a/media/fetch-work-items.png b/media/fetch-work-items.png deleted file mode 100644 index 702a6e1..0000000 Binary files a/media/fetch-work-items.png and /dev/null differ diff --git a/media/flow-diagram.png b/media/flow-diagram.png index 81e40ba..f3aa649 100644 Binary files a/media/flow-diagram.png and b/media/flow-diagram.png differ diff --git a/media/github-issue-copilot-pr.png b/media/github-issue-copilot-pr.png deleted file mode 100644 index e3a37b5..0000000 Binary files a/media/github-issue-copilot-pr.png and /dev/null differ diff --git a/media/github-pull-request.png b/media/github-pull-request.png deleted file mode 100644 index 2420b86..0000000 Binary files a/media/github-pull-request.png and /dev/null differ diff --git a/media/github_pulse_img.png b/media/github_pulse_img.png new file mode 100644 index 0000000..8b5f930 Binary files /dev/null and b/media/github_pulse_img.png differ diff --git a/media/issue-created.png b/media/issue-created.png deleted file mode 100644 index 7dde033..0000000 Binary files a/media/issue-created.png and /dev/null differ