9.7 KiB
GitHub Project Board Setup & Automation Guide
This guide will help you set up the project board and automation for CaddyProxyManager+.
🎯 Quick Start (5 Minutes)
Step 1: Create the Project Board
- Go to https://github.com/Wikid82/CaddyProxyManagerPlus/projects
- Click "New project"
- Choose "Board" view
- Name it:
CaddyProxyManager+ Development - Click "Create"
Step 2: Configure Project Columns
The new GitHub Projects automatically creates columns. Add these views/columns:
Recommended Column Setup:
- 📋 Backlog - Issues that are planned but not started
- 🏗️ Alpha - Core foundation features (v0.1)
- 🔐 Beta - Security - Authentication, WAF, CrowdSec features
- 📊 Beta - Monitoring - Logging, dashboards, analytics
- 🎨 Beta - UX - UI improvements and user experience
- 🚧 In Progress - Currently being worked on
- 👀 Review - Ready for code review
- ✅ Done - Completed issues
Step 3: Get Your Project Number
After creating the project, your URL will look like:
https://github.com/users/Wikid82/projects/1
The number at the end (e.g., 1) is your PROJECT_NUMBER.
Step 4: Update the Automation Workflow
- Open
.github/workflows/auto-add-to-project.yml - Replace
YOUR_PROJECT_NUMBERwith your actual project number:project-url: https://github.com/users/Wikid82/projects/1 - Commit and push the change
Step 5: Create Labels
- Go to: https://github.com/Wikid82/CaddyProxyManagerPlus/actions
- Find the workflow: "Create Project Labels"
- Click "Run workflow" > "Run workflow"
- Wait ~30 seconds - this creates all 27 labels automatically!
Step 6: Test the Automation
- Create a test issue with title:
[ALPHA] Test Issue - Watch it automatically:
- Get labeled with
alpha - Get added to your project board
- Appear in the correct column
- Get labeled with
🔧 How the Automation Works
Workflow 1: auto-add-to-project.yml
Triggers: When an issue or PR is opened/reopened Action: Automatically adds it to your project board
Workflow 2: auto-label-issues.yml
Triggers: When an issue is opened or edited Action: Scans title and body for keywords and adds labels
Auto-labeling Examples:
- Title contains
[critical]→ Addscriticallabel - Body contains
crowdsec→ Addscrowdseclabel - Title contains
[alpha]→ Addsalphalabel
Workflow 3: create-labels.yml
Triggers: Manual only Action: Creates all project labels with proper colors and descriptions
📝 Using the Issue Templates
We've created 4 specialized issue templates:
1. 🏗️ Alpha Feature (alpha-feature.yml)
For core foundation features (Issues #1-10 in planning doc)
- Automatically tagged with
alphaandfeature - Includes priority selector
- Has task checklist format
2. 🔐 Beta Security Feature (beta-security-feature.yml)
For authentication, WAF, CrowdSec, etc. (Issues #11-22)
- Automatically tagged with
beta,feature,security - Includes threat model section
- Security testing plan included
3. 📊 Beta Monitoring Feature (beta-monitoring-feature.yml)
For logging, dashboards, analytics (Issues #23-27)
- Automatically tagged with
beta,feature,monitoring - Includes metrics planning
- UI/UX considerations section
4. ⚙️ General Feature (general-feature.yml)
For any other feature request
- Flexible milestone selection
- Problem/solution format
- User story section
🎨 Label System
Priority Labels (Required for all issues)
- 🔴 critical - Must have, blocks other work
- 🟠 high - Important, should be included
- 🟡 medium - Nice to have, can be deferred
- 🟢 low - Future enhancement
Milestone Labels
- 🟣 alpha - Foundation (v0.1)
- 🔵 beta - Advanced features (v0.5)
- 🟦 post-beta - Future enhancements (v1.0+)
Category Labels
- architecture, backend, frontend
- security, ssl, sso, waf
- caddy, crowdsec
- database, ui, deployment
- monitoring, documentation, testing
- performance, community
- plus (premium features), enterprise
📊 Creating Issues from Planning Doc
Method 1: Manual Creation (Recommended for control)
For each issue in PROJECT_PLANNING.md:
- Click "New Issue"
- Select the appropriate template
- Copy content from planning doc
- Set priority from the planning doc
- Create the issue
The automation will:
- ✅ Auto-label based on title keywords
- ✅ Add to project board
- ✅ Place in appropriate column (if configured)
Method 2: Bulk Creation Script (Advanced)
You can create a script to bulk-import issues. Here's a sample using GitHub CLI:
#!/bin/bash
# install: brew install gh
# auth: gh auth login
# Example: Create Issue #1
gh issue create \
--title "[ALPHA] Project Architecture & Tech Stack Selection" \
--label "alpha,critical,architecture" \
--body-file issue_templates/issue_01.md
🎯 Suggested Workflow
For Project Maintainers:
- Review Planning Doc:
PROJECT_PLANNING.md - Create Alpha Issues First: Issues #1-10
- Prioritize in Project Board: Drag to order
- Assign to Milestones: Create GitHub milestones
- Start Development: Pick from top of Alpha column
- Move Cards: As work progresses, move across columns
- Create Beta Issues: Once alpha is stable
For Contributors:
- Browse Project Board: See what needs work
- Pick an Issue: Comment "I'd like to work on this"
- Get Assigned: Maintainer assigns you
- Submit PR: Link to the issue
- Auto-closes: PR merge auto-closes the issue
🔐 Required Permissions
The GitHub Actions workflows require these permissions:
- ✅
issues: write- To add labels (already included) - ✅
CPMP_TOKEN- Automatically provided (already configured) - ⚠️ Project Board Access - Ensure Actions can access projects
To verify project access:
- Go to project settings
- Under "Manage access"
- Ensure "GitHub Actions" has write access
🚀 Advanced: Custom Automations
Auto-move to "In Progress"
Add this to your project board automation (in project settings):
When: Issue is assigned Then: Move to "🚧 In Progress"
Auto-move to "Review"
When: PR is opened and linked to issue Then: Move issue to "👀 Review"
Auto-move to "Done"
When: PR is merged Then: Move issue to "✅ Done"
Auto-assign by label
When: Issue has label critical
Then: Assign to @Wikid82
📋 Creating Your First Issues
Here's a suggested order to create issues from the planning doc:
Week 1 - Foundation (Create these first):
- Issue #1: Project Architecture & Tech Stack Selection
- Issue #2: Caddy Integration & Configuration Management
- Issue #3: Database Schema & Models
Week 2 - Core UI:
- Issue #4: Basic Web UI Foundation
- Issue #5: Proxy Host Management (Core Feature)
Week 3 - HTTPS & Security:
- Issue #6: Automatic HTTPS & Certificate Management
- Issue #7: User Authentication & Authorization
Week 4 - Operations:
- Issue #8: Basic Access Logging
- Issue #9: Settings & Configuration UI
- Issue #10: Docker & Deployment Configuration
Then: Alpha release! 🎉
🎨 Project Board Views
Create multiple views for different perspectives:
View 1: Kanban (Default)
All issues in status columns
View 2: Priority Matrix
Group by: Priority Sort by: Created date
View 3: By Category
Group by: Labels (alpha, beta, etc.) Filter: Not done
View 4: This Sprint
Filter: Milestone = Current Sprint Sort by: Priority
📱 Mobile & Desktop
The project board works great on:
- 💻 GitHub Desktop
- 📱 GitHub Mobile App
- 🌐 Web interface
You can triage issues from anywhere!
🆘 Troubleshooting
Issue doesn't get labeled automatically
- Check title has bracketed keywords:
[ALPHA],[CRITICAL] - Check workflow logs: Actions > Auto-label Issues
- Manually add labels - that's fine too!
Issue doesn't appear on project board
- Check the workflow ran: Actions > Auto-add issues
- Verify your project URL in the workflow file
- Manually add to project from issue sidebar
Labels not created
- Run the "Create Project Labels" workflow manually
- Check you have admin permissions
- Create labels manually from Issues > Labels
Workflow permissions error
- Go to Settings > Actions > General
- Under "Workflow permissions"
- Select "Read and write permissions"
- Save
🎓 Learning Resources
✅ Final Checklist
Before starting development, ensure:
- Project board created
- Project URL updated in workflow file
- Labels created (run the workflow)
- Issue templates tested
- First test issue created successfully
- Issue auto-labeled correctly
- Issue appeared on project board
- Column automation configured
- Team members invited to project
- Alpha milestone issues created (Issues #1-10)
🎉 You're Ready!
Your automated project management is set up! Every issue will now:
- ✅ Automatically get labeled
- ✅ Automatically added to project board
- ✅ Move through columns as work progresses
- ✅ Have structured templates for consistency
Focus on building awesome features - let automation handle the busywork! 🚀
Questions? Open an issue or discussion! The automation will handle it 😉