Files
Andras BacsaiandClaude 8b90ae3428 feat: Add GitHub Actions self-hosted runner pool system
Implement backend infrastructure and initial UI for managing GitHub Actions
runners on user-owned servers, similar to Blacksmith.sh but self-hosted.

**Backend Implementation:**
- Database schema: github_runner_sources (pools), github_runner_servers (pivot), github_runners (instances)
- Models: GitHubRunnerSource, GitHubRunner with relationships to Server
- GitHub API helpers: JIT config generation, token management, webhook validation
- Webhook handler: Processes workflow_job events, matches labels, provisions runners
- Job queue: ProvisionGithubRunnerJob (server selection, Docker provisioning), CleanupGithubRunnerJob
- Ephemeral runners using JIT configuration for enhanced security

**Testing:**
- Unit tests: Helper functions, webhook validation, model methods
- Feature tests: Webhook flow, provisioning, server selection, relationships

**UI Foundation:**
- Runner Sources index page with source listing
- Routes configured for index, create, and detail views
- Integration into server management section

**How it works:**
1. User creates a GitHub Runner Source (GitHub App + custom label)
2. User adds multiple servers to the runner pool
3. GitHub Actions jobs with matching runs-on label trigger webhook
4. Coolify provisions ephemeral Docker runner on available server
5. Job executes, container auto-removes on completion

**Next steps:**
- Complete UI components (create, detail, server management)
- Add runner history and monitoring
- User documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-25 09:52:08 +01:00
..
2023-03-17 15:33:48 +01:00
2024-06-10 20:43:34 +00:00