Skip to main content

GitHub Integration

Veyra uses a GitHub App rather than asking clients or workers for broad personal access tokens.

Production app flow

The current GitHub App uses:

Homepage URL
https://veyra.surf

Setup URL
https://veyra.surf/client/github/callback

Redirect on update
Enabled

Webhook URL
https://api.veyra.surf/api/v1/webhooks/github/

For the installation return flow, the Setup URL is the important GitHub App field. The user OAuth callback field is not the repository-installation return mechanism used by Veyra.

Installation lifecycle

Client clicks Connect GitHub
→ Veyra creates signed installation state
→ GitHub App installation/repository selection
→ GitHub redirects to Setup URL
→ frontend receives installation_id + state
→ backend validates state
→ Veyra syncs approved repository metadata

Repository access

Veyra stores installation/repository metadata but does not publish the GitHub App private key to the frontend or runtime.

Worker runtimes request repository credentials only for an assigned job.

Verifier runtimes receive a separate read-only credential path.

Issue import

The client can browse/preview issues only from repositories currently available through the installation.

The funded Veyra job later locks the repository/task/policy commitments independently from the mutable GitHub issue text.

Pull request evidence

Worker result evidence includes the exact commit SHA and pull request information.

When CI is required, Veyra evaluates GitHub Check Runs for that exact submitted commit.

Passing GitHub CI is a technical gate, not a substitute for independent verification.

Webhook security

Veyra checks GitHub webhook signatures using the configured webhook secret before accepting event content.