GitHub Trigger
The GitHub trigger responds to webhook events from your repositories in real-time. When events like pushes, pull requests, issues, or releases occur, VoltOps executes your configured agents or workflows.
For trigger setup and usage instructions, see the Usage Guide.
Use Cases:
- Run code review agents when pull requests are opened
- Automate issue triage and labeling
- Trigger deployments on release events
- Monitor security advisories and vulnerabilities
- Sync repository changes across systems
Setting Credential​
To set up GitHub authentication, you need to create a credential. This is configured in Step 1 (Connection) when creating a trigger.
- Navigate to the VoltOps Triggers page
- Select GitHub as the provider
- In the Connection step, either select an existing credential or create a new one
- Choose between Personal Access Token or OAuth 2.0 and follow the instructions below.
Personal Access Token​
Create your token:
- Visit github.com/settings/tokens
- Click Generate new token → New personal access token (classic)
- Create a personal access token with
repoandadmin:repo_hookscopes
Configure in VoltOps Console:
- Enter your Personal Access Token so VoltOps can create and verify repository webhooks
- VoltOps generates and stores the webhook secret. No additional configuration is required
- Configure optional fields:
- GitHub Server: Update if using GitHub Enterprise (e.g.,
https://github.example.com/api/v3). Default:https://api.github.com - Repository Owner: Optional default repository owner
- Account Label: Optional label for organization or user
- GitHub Server: Update if using GitHub Enterprise (e.g.,
OAuth 2.0​
OAuth 2.0 supports token rotation and revocable access.
Setup steps:
- Copy the OAuth Redirect URL displayed in the console (e.g.,
https://api.voltagent.dev/triggers/oauth/callback/github) - Navigate to GitHub Settings → Developer settings → OAuth Apps and create a new OAuth App
- Provide a name and homepage URL for your OAuth App
- Paste the OAuth Redirect URL as the Authorization callback URL in GitHub
- Generate a Client ID and Client Secret in GitHub, then enter them in VoltOps Console
- Configure optional fields:
- GitHub Server: Update if using GitHub Enterprise (e.g.,
https://github.example.com/api/v3). Default:https://api.github.com - Account Label: Optional label for organization or user
- Repository Owner: Optional default repository owner
- GitHub Server: Update if using GitHub Enterprise (e.g.,
- Click Authorize with GitHub to complete the authorization flow
Required OAuth Scopes:
VoltOps requests the following scopes during authorization:
repo- Access repositoriesadmin:repo_hook- Manage webhooksuser- Access user profileread:user- Read user profile data
The redirect URL is provided by VoltOps Console and routes the OAuth callback to the correct endpoint. You must copy this URL exactly as shown in the console, including the protocol (https://) and path.
Use OAuth 2.0 for team environments, production deployments, or credential rotation requirements. Personal Access Tokens are simpler for individual development.
Trigger Configuration​
After configuring credentials, you need to specify which repository and events to monitor.
Select the credential you created and configure the repository settings:
- Owner: Enter the GitHub repository owner (username or organization name)
- Repository: Enter the repository name within the owner's account
- Branch Filter (Optional): Provide a branch name to restrict push events. Leave blank to allow all branches
VoltOps listens for events from this repository and configures the GitHub webhook automatically.
Add Target to Activate Binding​
After configuring your GitHub trigger, you need to add a target (agent or workflow) to activate the binding. For detailed instructions on:
- Adding targets to activate bindings
- Mapping trigger data to agent inputs
- Testing triggers with sample payloads
- Deploying and monitoring triggers
See the Add Target to Activate Binding section. These steps are the same for all trigger providers.
Event Types​
GitHub triggers support all GitHub webhook events. VoltOps configures the webhook when you create a trigger. No manual webhook setup is required.
When creating a trigger in VoltOps Console, you can select which events to listen for. The trigger will only execute when the selected events occur.
GitHub webhook events include:
Commits pushed to a repository branch or tag
Pull request activity (opened, closed, synchronized, merged, labeled, assigned)
Pull request review submitted, edited, or dismissed
Issue activity (created, edited, deleted, transferred, pinned, closed, reopened)
Comments on issues or pull requests (created, edited, deleted)
Release published, edited, deleted, or prereleased
User forks a repository
Star added to or removed from a repository
Someone stars a repository
Repository, branch, or tag created
Repository branch or tag deleted
Branch protection rules changed
Repository made public
Repository created, deleted, archived, unarchived, publicized, privatized, edited, renamed, transferred, or changed
Project created, updated, closed, reopened, edited, or deleted
Project card created, edited, moved, converted, or deleted
Project column created, updated, moved, or deleted
Milestone created, edited, closed, opened, or deleted
Label created, edited, or deleted
Check run created, completed, or rerequested
Check suite completed or requested
Deployment created
Deployment status updated
Commit status updated
Manual workflow trigger
Workflow job queued, in progress, or completed
Workflow run requested, in progress, or completed
Pages site built
Deployment request
Code scanning alert created, fixed, appeared in branch, closed, or reopened
Security vulnerability detected
Security advisory published, updated, or withdrawn
Repository security advisory published, updated, or reported
Discussion created, edited, deleted, or changed
Comment on a discussion
Collaborator added to repository
User added or removed from team
Team created, deleted, edited, added to repository, or removed from repository
Team added to repository
Organization deleted, renamed, member added, member removed, or member invited
Organization blocks or unblocks a user
Sponsorship created, cancelled, edited, tier changed, or pending tier change
Comment on a commit
Comment on pull request diff
Review thread resolved or unresolved
Deploy key added or removed
Wiki page updated
Package published or updated
Custom webhook event
Repository import completed
Webhook modified
Configuration Parameters​
After setting up authentication in Step 1 (Connection), configure the trigger options in Step 2 (Configuration).
Owner​
Enter the GitHub repository owner (username or organization name).
Repository​
Enter the repository name within the owner's account.
VoltOps listens for events from this repository and configures the GitHub webhook automatically.
Branch Filter (Optional)​
Restrict push events to a specific branch. Leave blank to allow all branches.
The branch filter only applies to push events. Other events (pull requests, issues, releases, etc.) are not affected by this filter.
GitHub Enterprise Support​
VoltOps supports GitHub Enterprise Server deployments. When creating your credential, configure the GitHub server field to point to your GitHub Enterprise API endpoint.
GitHub Enterprise API endpoints typically follow the format https://[hostname]/api/v3. The default is https://api.github.com for GitHub.com.
Payload Structure​
VoltOps wraps GitHub webhook payloads in a standardized format. The payload structure includes metadata about the event and the complete GitHub webhook data.
Wrapper Format​
All GitHub events delivered by VoltOps follow this structure:
{
"event": "push", // The GitHub event type (push, pull_request, issues, etc.)
"deliveryId": "e7edfcf0-bfa8-11f0-81d5-e3c9c0d87c3c", // Unique identifier for this webhook delivery
"repository": {
// Simplified repository information
"id": 123456,
"name": "repo-name",
"fullName": "owner/repo-name",
"owner": "owner-name",
"private": false,
"htmlUrl": "https://github.com/owner/repo-name"
},
"payload": {
// Complete GitHub webhook payload
// GitHub webhook payload here
}
}
For complete examples of push, pull request, and issue events, see the GitHub webhook documentation.