Autonomous AI-powered development workflows with GitHub Copilot
Features • Quick Start • How It Works • Configuration • Contributing
- 🔧 Setup Wizard - Easy first-time configuration with guided setup
- 📋 Queue Management - View, reorder, add, and remove issues from the development queue
- 🔄 Real-time Monitoring - Live status of all issues and PRs with workflow history
- 🤖 Autonomous Pipeline - Start/stop automated workflow processing
- ⏱️ Smart Cooldowns - Rate-limit issue assignments (configurable)
- 📝 Agent Instructions - Automatically include implementation guidelines
- 🔌 MCP Integration - Uses GitHub's official MCP Server for Copilot assignment
- ✨ Auto-Apply Changes - Detects Copilot reviews and triggers change application
./start.shThis will:
- Create a virtual environment (first run only)
- Install dependencies
- Start the Streamlit server at http://localhost:8642
On first launch, you'll be guided through a 5-step setup wizard:
- GitHub Token - Enter your Personal Access Token
- Repository - Select which repository to automate
- Issues - Choose which issues to add to the queue
- Configure - Set automation preferences (cooldown, auto-merge, etc.)
- Complete - Review and start using the pipeline
Your GitHub Personal Access Token needs these permissions:
repo(full control of private repositories)workflow(if you need to trigger workflows)- GitHub Copilot subscription (for issue assignment)
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Copilot wants │ ──► │ Auto-reassign │ ──► │ Copilot reviews │
│ your review │ │ review to Copilot│ │ and suggests │
└─────────────────┘ └──────────────────┘ └────────┬────────┘
│
┌─────────────────┐ ┌──────────────────┐ ┌────────▼────────┐
│ Start next │ ◄── │ Auto-merge │ ◄── │ Auto-apply │
│ issue │ │ approved PR │ │ changes │
└─────────────────┘ └──────────────────┘ └─────────────────┘
When the pipeline is running, it polls at regular intervals and:
- When Copilot requests your review → Auto-reassign review to Copilot
- When Copilot suggests changes → Auto-comment "@copilot apply changes"
- When PR is approved → Auto-merge into target branch
- When PR is merged → Wait for cooldown, then assign next issue
To prevent overwhelming the system, there's a configurable cooldown between issue assignments:
- Cooldown triggers after a PR is merged (not when assigned)
- Other actions (review reassignment, applying changes, merging) have no cooldown
- Adjustable in the UI Settings
copilot-coding-agent-orchestrator/
├── src/ # Source code
│ ├── app.py # Streamlit dashboard
│ ├── setup_wizard.py # First-time setup
│ ├── daemon.py # Background daemon
│ ├── automation_engine.py # Core automation logic
│ ├── github_client.py # GitHub API client
│ └── mcp_client.py # MCP protocol client
├── assets/ # Branding assets
│ ├── swaibian_white.png
│ ├── swaibian_Avatar_white.png
│ └── thankyou.jpg
├── .github/ # GitHub templates
│ ├── CODEOWNERS
│ ├── CONTRIBUTING.md
│ ├── ISSUE_TEMPLATE/
│ └── PULL_REQUEST_TEMPLATE.md
├── config.example.yaml # Example configuration
├── .env.example # Example environment
├── requirements.txt # Python dependencies
├── start.sh # Start script
├── LICENSE # MIT License
└── README.md # This file
After running the setup wizard, your config.yaml will be generated:
github:
owner: YourUsername
repo: YourRepo
target_branch: main
automation:
poll_interval: 60 # seconds between checks
auto_merge: true # auto-merge approved PRs
auto_assign_next: true # auto-assign next issue after merge
cooldown_minutes: 60 # minimum time between assignments
agent_instructions: |
Your custom implementation instructions...
issue_queue:
- ISSUE-1
- ISSUE-2Control the daemon directly from the command line:
# Start daemon
python src/daemon.py start
# Stop daemon
python src/daemon.py stop
# Check status
python src/daemon.py status
# Run automation once
python src/automation_engine.py --once# List available tools
python src/mcp_client.py list-tools
# Assign Copilot to an issue
python src/mcp_client.py assign OWNER REPO ISSUE_NUMBERContributions are welcome! Please read our Contributing Guide first.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add: amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Some files are protected and require owner approval to modify:
assets/**- Branding and logosREADME.md- DocumentationLICENSE- License file
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this project helpful, consider:
Made with ❤️ by Swaibian