Skip to content

Conversation

@skylenet
Copy link
Member

@skylenet skylenet commented Jan 12, 2026

Summary

  • Add optional runners_token config field for listing self-hosted runners separately from the dispatch token
  • Update status endpoint to expose rate limits for both GitHub clients (runners and dispatch)
  • Update UI StatusIndicator to display rate limits for both clients separately

Details

When runners_token is configured, the system uses two separate GitHub clients:

  • Runners client: Uses runners_token for polling runner status
  • Dispatch client: Uses token for triggering workflows

If runners_token is not set, both operations fall back to the main token.

The /api/v1/status endpoint now returns:

{
  "github": {
    "runners": { "status": "healthy", "rate_limit_remaining": 4850, ... },
    "dispatch": { "status": "healthy", "rate_limit_remaining": 4900, ... }
  }
}

Test plan

  • Build and run server with only token configured - verify both clients show same rate limits
  • Build and run server with both token and runners_token - verify separate rate limits shown
  • Verify UI StatusIndicator displays both clients correctly
  • Verify runner polling works with runners_token
  • Verify workflow dispatch works with token

Add support for a separate GitHub token specifically for listing
self-hosted runners. This allows using different tokens with different
scopes for runner polling vs workflow dispatch.

- Add `runners_token` field to GitHubConfig (optional)
- If set, runner polling uses `runners_token`
- If not set, falls back to main `token` (backward compatible)
- Dispatcher always uses main `token` for workflow dispatch
- Split GitHub clients in server.go for separation of concerns
Update the status endpoint and UI to display rate limits for both
GitHub clients separately when runners_token is configured.

- Add runnersClient to API server struct
- Create GitHubClientStatus and GitHubClientsStatus response types
- Update handleStatus() to return status for both clients
- Update TypeScript types for new response structure
- Update StatusIndicator to show runners and dispatch rate limits
@skylenet skylenet merged commit d553b94 into master Jan 12, 2026
6 of 8 checks passed
@skylenet skylenet deleted the split-token branch January 12, 2026 11:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant