5.9 KiB
GitHub Pulse - Setup Guide
Overview
A Python-based GUI application for GitHub automation workflows.
Quick Start
Prerequisites
- Python 3.8+ installed on your system
- Git installed and configured
- GitHub account with repository access
Installation
-
Clone/Download the Repository
git clone https://github.com/TySP-Dev/github_pulse.git cd github_pulse/src -
Create Virtual Environment (Recommended)
# Create virtual environment python -m venv venv # Activate virtual environment # On Windows: venv\Scripts\activate # On macOS/Linux: source venv/bin/activate -
Install Dependencies
pip install -r requirements.txt -
Run the Application
python main.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):
- Windows: `venv\Scripts\activate`
- macOS/Linux: `source venv/bin/activate`
Deactivating the environment (when done working):
deactivate
Why use a virtual environment?
- Isolation: Keeps project dependencies separate from system Python
- Clean installs: Prevents conflicts with other Python projects
- Reproducible: Ensures consistent dependency versions
- Safe updates: Won't affect other projects when updating packages
Project Structure
The project is organized as follows:
github_pulse/
├── src/ # Main application directory
│ ├── app.py # Application entry point
│ ├── requirements.txt # Python dependencies
│ ├── assets # Images for build
│ │ ├── icon.png # Application icon
│ │ └── splash_android.png # Splash screen image
│ └── app_components/ # Application modules
│ ├── assets/ # Images and assets
│ │ ├── flow-diagram.png # Workflow diagram
│ │ ├── github_pulse_img.png # GitHub Pulse image
│ │ ├── pulse_logo_gray_no_bkg.png # GitHub Pulse logo
│ │ ├── pulse_logo_white_no_bkg_github.png # Pulse logo
│ │ ├── pulse_logo_white_no_bkg.png # Pulse logo with background
│ │ └── pulse_logo_white_w_black_bkg.png # GitHub Pulse logo with background
│ ├── __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
│ ├── settings_manager.py # Settings management
│ ├── utils.py # Utility functions
│ └── workflow.py # Workflow processing
├── assets/ # Images and assets
├── README.md # Readme file
├── SETUP.md # This file
└── LICENSE # License information
Configuration
First-Time Setup
- Launch the application and click "Settings" button
- Configure required fields in the Settings dialog
GitHub Configuration (Required)
- Personal Access Token: GitHub PAT for repository access
- Create at:
https://github.com/settings/tokens - Required scopes: repo, workflow
- Create at:
- Target Repository: Format as
owner/repository- Example:
microsoft/example-repo
- Example:
- Forked Repository: Your fork of the target repository (if applicable)
- Example:
yourusername/example-repo
- Example:
- Local Repo Path: Directory where repositories will be/are cloned
- Example:
C:\Users\yourname\repos\
- Example:
AI Provider Configuration (Optional)
- Provider: Choose from:
none- No AI assistanceclaude- Anthropic Claude APIchatgpt- OpenAI ChatGPT APIgithub-copilot- GitHub Models APIollama- 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
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
- 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
keyringfor secure storage
Repository Access
- Fork workflow: Use personal forks for changes
- Branch isolation: Each task gets separate branch
- Review process: All changes go through pull requests
Support
Getting Help
- Check logs in Processing Log tab for detailed errors
- Test connections using Settings dialog test button
- Review configuration for missing or incorrect values