A sleek macOS menu bar application that monitors your GitHub repositories' CI/CD pipeline status in real-time. Get instant visual feedback on your workflows without opening a browser.
- Real-time Monitoring: Continuously checks your GitHub repositories' workflow status
- Visual Status Indicators:
- 🟢 All pipelines healthy
- 🟡 Pipeline in progress
- 🟠 Pipeline in progress and some pipeline failures
- 🔴 Pipeline failed
- ⏳ Loading
- 💀 Error (connection issues)
- Quick Access: Click to open failed repositories directly in your browser
- Menu Bar Integration: Always visible in your macOS menu bar
- Lightweight: Minimal resource usage with efficient polling
- macOS 10.15 or later
- Python 3.13+
- Poetry (for dependency management)
-
Clone the repository
git clone https://github.com/matthewrayuk/pipeline_mac_app.git cd pipeline_mac_app -
Install dependencies
poetry install
-
Configure environment variables
Create a
.envfile in the project root:GH_TOKEN=your_github_personal_access_token GH_USER=your_github_username
Getting a GitHub Token:
- Go to GitHub Settings → Developer settings → Personal access tokens
- Generate a new token with
repoandworkflowpermissions - Copy the token to your
.envfile
-
Run the application
poetry run python app.py
Once running, the app will appear in your menu bar with one of these status indicators:
- ⏳ Initializing: App is starting up
- 🟢 All Healthy: All your repositories' pipelines are passing
- 🟡 In Progress: At least one pipeline is currently running
- 🟠 Mixed Status: Some pipelines running and some failed
- 🔴 Failed: At least one pipeline has failed
- 💀 Error: Connection or authentication issues
- Open All Failed Repos: Opens all failed repositories in your default browser
- Open All Running Repos: Opens all running repositories in your default browser
- All Repos Healthy: Shows a confirmation when all pipelines are successful
To create a standalone macOS application:
just buildThis will create a GitHub Pipeline App executable in the dist/ directory.
# Install dependencies
just install
# Run the application
just run
# Format and lint code
just format
# Run full linting checks
just lint
# Clean cache files
just clean
# Build standalone app
just buildpipeline_mac_app/
├── app.py # Main application logic
├── github.py # GitHub API integration
├── models.py # Data models
├── .env # Environment variables (create this)
├── pyproject.toml # Project dependencies and settings
├── Justfile # Development commands
└── icon.icns # Application icon
The app uses environment variables for configuration:
GH_TOKEN: Your GitHub Personal Access TokenGH_USER: Your GitHub username
Note: Make sure to keep your GitHub token secure and never commit it to version control. The .env file is already included in .gitignore for your safety.