copilot-coding-agent-orchestrator
<p align="center"> <img src="assets/swaibian_white.png" alt="Swaibian Logo" width="200"/> </p> <h1 align="center">π Swaibian Agentic Pipeline</h1> <p align="center"> <strong>Autonomous AI-powered development workflows with GitHub Copilot</strong> </p> <p align="center"> <a href="#features">Features</a> β’ <a href="#quick-start">Quick Start</a> β’ <a href="#how-it-works">How It Works</a> β’ <a href="#configuration">Configuration</a> β’ <a href="#contributing">Contributing</a> </p> <p align="center"> <img src="https://img.shields.io/badge/python-3.9+-blue.svg" alt="Python 3.9+"/> <img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License: MIT"/> <img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"/> <img src="https://img.shields.io/github/stars/WoDeep/copilot-coding-agent-orchestrator?style=social" alt="GitHub Stars"/> </p> --- ## β¨ Features - π§ **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 ## π Quick Start ### 1. Start the Application ```bash ./start.sh ``` This will: - Create a virtual environment (first run only) - Install dependencies - Start the Streamlit server at http://localhost:8642 ### 2. Run the Setup Wizard On first launch, you'll be guided through a 5-step setup wizard: 1. **GitHub Token** - Enter your Personal Access Token 2. **Repository** - Select which repository to automate 3. **Issues** - Choose which issues to add to the queue 4. **Configure** - Set automation preferences (cooldown, auto-merge, etc.) 5. **Complete** - Review and start using the pipeline ### 3. Token Requirements 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) ## βοΈ How It Works ### The Automation Loop ``` βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ β 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: 1. **When Copilot requests your review** β Auto-reassign review to Copilot 2. **When Copilot suggests changes** β Auto-comment "@copilot apply changes" 3. **When PR is approved** β Auto-merge into target branch 4. **When PR is merged** β Wait for cooldown, then assign next issue ### Cooldown System 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 ## π Project Structure ``` 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 ``` ## π§ Configuration After running the setup wizard, your `config.yaml` will be generated: ```yaml 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-2 ``` ## π₯οΈ CLI Usage Control the daemon directly from the command line: ```bash # 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 ``` ### MCP Client ```bash # List available tools python src/mcp_client.py list-tools # Assign Copilot to an issue python src/mcp_client.py assign OWNER REPO ISSUE_NUMBER ``` ## π€ Contributing Contributions are welcome! Please read our [Contributing Guide](.github/CONTRIBUTING.md) first. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add: amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## π Security Some files are protected and require owner approval to modify: - `assets/**` - Branding and logos - `README.md` - Documentation - `LICENSE` - License file ## π License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## π Support If you find this project helpful, consider: <p align="center"> <a href="https://github.com/WoDeep/copilot-coding-agent-orchestrator"> <img src="https://img.shields.io/github/stars/WoDeep/copilot-coding-agent-orchestrator?style=social" alt="Star on GitHub"/> </a> </p> <p align="center"> <img src="assets/thankyou.jpg" alt="Thank You" width="200"/> </p> --- <p align="center"> Made with β€οΈ by <a href="https://github.com/WoDeep">Swaibian</a> </p>