Skip to content

WoDeep/copilot-coding-agent-orchestrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Swaibian Logo

πŸš€ Swaibian Agentic Pipeline

Autonomous AI-powered development workflows with GitHub Copilot

Features β€’ Quick Start β€’ How It Works β€’ Configuration β€’ Contributing

Python 3.9+ License: MIT PRs Welcome GitHub Stars


✨ 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

./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:

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:

# 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

# 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 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 file for details.

πŸ™ Support

If you find this project helpful, consider:

Star on GitHub

Thank You


Made with ❀️ by Swaibian

About

A Streamlit web application to manage and automate GitHub Copilot development workflows

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published