You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A platform that enables programmatic deployment of GitHub repositories to hosted environments through GitHub App authentication and workflow automation.
Architecture Diagram
graph TB
subgraph "GitHub"
Repos["Repositories"]
Actions["GitHub Actions"]
Pages["GitHub Pages"]
end
subgraph "Platform"
API["Express API"]
Auth["GitHub App Auth"]
Routes["Routes"]
Services["Services"]
end
subgraph "Storage"
Deploys["deployments/"]
Workflows["workflows/"]
end
User["User"] --> API
API --> Auth
Auth --> Repos
API --> Services
Services --> Deploys
Services --> Actions
Actions --> Pages
sequenceDiagram
participant P as Platform
participant G as GitHub API
Note over P: App Installation
P->>G: POST /app/jwt<br/>(Generate JWT)
G-->>P: JWT Token
P->>G: POST /app/installations/:id/access_tokens
G-->>P: Installation Token
Note over P: Per-Request
P->>G: Authorization: Bearer <installation_token>
G-->>P: API Response
Loading
Deployment Flow
Standard Deployment
sequenceDiagram
participant U as User
participant API as Platform API
participant GH as GitHub API
participant Actions as GitHub Actions
participant Pages as GitHub Pages
U->>API: POST /deploy<br/>{ repo, branch }
API->>GH: Dispatch workflow
GH->>Actions: Run deploy.yml
Actions->>Actions: Build & create tar.gz
Actions->>API: POST /deploy/upload<br/>tar.gz artifact
API->>API: Extract to deployments/{owner-repo}/
API-->>U: { hostingUrl: "/sites/owner-repo/" }
U->>API: GET /sites/owner-repo/
API-->>U: index.html
Loading
GitHub Pages Deployment
sequenceDiagram
participant U as User
participant API as Platform API
participant GH as GitHub API
participant Pages as GitHub Pages
U->>API: POST /deploy<br/>{ repo, hostingTarget: github-pages }
API->>GH: Create/Update workflow
GH->>Pages: Deploy from workflow
Pages-->>GH: Published URL
API->>API: Cache Pages status
API-->>U: { providerUrl, hostingUrl }