GitHub
GitHub Integrations
Fetch live repository statistics, issues, and pull requests directly from the VeriWorkly repository.
Description
VeriWorkly is built in the open. The GitHub API module acts as a highly optimized proxy that fetches, caches, and serves live metrics directly from the official VeriWorkly repository.
By routing these requests through our backend rather than fetching them directly from the client, we achieve three critical benefits:
- Zero Client-Side Rate Limiting: Users never hit GitHub's restrictive unauthenticated API limits.
- Token Security: GitHub Personal Access Tokens (PATs) remain safely isolated on the server.
- Blazing Fast Responses: Data is served directly from our database/Redis cache rather than waiting on upstream network requests.
Sync Architecture & Latency
Data is not fetched in real-time on every GET request. Instead, we use a background polling mechanism to maintain system health:
- Automated Sync: A background worker (
runGithubSyncOnce.ts) runs on a cron schedule to poll GitHub and update our internal database. - Latency Expectation: Because of this caching layer, newly opened issues or merged PRs may take a short time to reflect on the VeriWorkly dashboard.
- Resilience: If GitHub experiences an outage, this API will gracefully fall back to serving the last known cached state.
Authentication & Access
| Method | Endpoint | Access Level | Requirement |
|---|---|---|---|
GET | /stats, /issues | Public | None |
POST | /sync | Admin | Valid session cookie with admin privileges. |
The manual /sync endpoint is strictly protected. Unauthorized calls will be rejected with a 401 Unauthorized status.
Available Endpoints
Get/github/stats
Fetch Repository Stats
Retrieve metrics including open issues and active PRs.
Get
/github/issuesList Issues & PRs
Retrieve a paginated list of items with status filters.
Post/github/sync
Trigger Manual Sync
Force an immediate data pull from GitHub (Admin only).