Skip to content

GitHub

Manage and react to changes in your GitHub repositories

The On Branch Created trigger starts a workflow execution when a new branch is created in a GitHub repository.

  • Branch automation: Set up environments or resources for new branches
  • Branch validation: Validate branch naming conventions
  • Notification workflows: Notify teams when important branches are created
  • Branch processing: Process or configure branches automatically
  • Repository: Select the GitHub repository to monitor
  • Branches: Configure which branches to listen for using predicates (e.g., equals “main”, starts with “feature-”)

Each branch event includes:

  • ref: The branch reference (e.g., “refs/heads/feature/new-feature”)
  • ref_type: Type of reference (branch)
  • repository: Repository information
  • sender: User who created the branch

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"description": "Example repository for webhook payloads",
"master_branch": "main",
"pusher_type": "user",
"ref": "feature/new-endpoint",
"ref_type": "branch",
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.branchCreated"
}

The On Issue trigger starts a workflow execution when issue events occur in a GitHub repository.

  • Issue automation: Automate responses to new or updated issues
  • Notification workflows: Send notifications when issues are created or closed
  • Task management: Sync issues with external task management systems
  • Label automation: Automatically label or categorize issues
  • Repository: Select the GitHub repository to monitor
  • Actions: Select which issue actions to listen for (opened, closed, reopened, etc.)

Each issue event includes:

  • action: The action that triggered the event (opened, closed, reopened, etc.)
  • issue: Complete issue information including title, body, state, labels, assignees
  • repository: Repository information
  • sender: User who triggered the event

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"action": "opened",
"assignee": null,
"issue": {
"html_url": "https://github.com/acme/widgets/issues/42",
"number": 42,
"state": "open",
"title": "Fix flaky build",
"user": {
"login": "octocat"
}
},
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issue"
}

The On Issue Comment trigger starts a workflow execution when comments are added to issues.

  • Command processing: Process slash commands in issue comments (e.g., /assign, /close)
  • Bot interactions: Respond to comments with automated actions
  • Issue automation: Automate issue management based on comment content
  • Notification systems: Notify teams when important comments are added
  • Repository: Select the GitHub repository to monitor
  • Content Filter: Optional regex pattern to filter comments (e.g., /solve to only trigger on comments containing “/solve”)

Each comment event includes:

  • comment: Comment information including body, author, created timestamp
  • issue: Issue information the comment was added to
  • repository: Repository information
  • sender: User who added the comment

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"action": "created",
"comment": {
"body": "I can reproduce this",
"html_url": "https://github.com/acme/widgets/issues/42#issuecomment-5001",
"id": 5001
},
"issue": {
"html_url": "https://github.com/acme/widgets/issues/42",
"number": 42,
"title": "Fix flaky build"
},
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issueComment"
}

The On PR Comment trigger starts a workflow execution when comments are added to pull requests.

  • Command processing: Process slash commands in PR comments (e.g., /deploy, /test)
  • Bot interactions: Respond to comments with automated actions
  • Review automation: Trigger workflows based on comment content
  • Notification systems: Notify teams when important comments are added
  • Repository: Select the GitHub repository to monitor
  • Content Filter: Optional regex pattern to filter comments (e.g., /solve to only trigger on comments containing “/solve”)

Each comment event includes:

  • comment: Comment information including body, author, created timestamp
  • pull_request: PR information the comment was added to
  • repository: Repository information
  • sender: User who added the comment

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"action": "created",
"comment": {
"body": "Looks good to me",
"html_url": "https://github.com/acme/widgets/pull/101#discussion_r7001",
"id": 7001
},
"pull_request": {
"html_url": "https://github.com/acme/widgets/pull/101",
"number": 101,
"title": "Add new endpoint"
},
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.pullRequestReviewComment"
}

The On Pull Request trigger starts a workflow execution when pull request events occur in a GitHub repository.

  • PR automation: Automate actions when PRs are opened, merged, or closed
  • Code review workflows: Trigger review processes or notifications
  • CI/CD integration: Run tests or builds on PR events
  • Status updates: Update systems when PR status changes
  • Repository: Select the GitHub repository to monitor
  • Actions: Select which PR actions to listen for (opened, closed, synchronize, etc.)

Each PR event includes:

  • action: The action that triggered the event (opened, closed, synchronize, etc.)
  • pull_request: Complete PR information including title, body, state, labels
  • repository: Repository information
  • sender: User who triggered the event

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"action": "opened",
"assignee": null,
"number": 101,
"pull_request": {
"html_url": "https://github.com/acme/widgets/pull/101",
"number": 101,
"state": "open",
"title": "Add new endpoint",
"user": {
"login": "octocat"
}
},
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.pullRequest"
}

The On Push trigger starts a workflow execution when code is pushed to a GitHub repository.

  • CI/CD automation: Trigger builds and deployments on code pushes
  • Code quality checks: Run linting and tests on every push
  • Notification workflows: Send notifications when code is pushed
  • Documentation updates: Automatically update documentation on push
  • Repository: Select the GitHub repository to monitor
  • Refs: Configure which branches/tags to monitor (e.g., refs/heads/main, refs/tags/*)

Each push event includes:

  • repository: Repository information
  • ref: The branch or tag that was pushed to
  • commits: Array of commit information
  • pusher: Information about who pushed
  • before/after: Commit SHAs before and after the push

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"after": "4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01",
"base_ref": null,
"before": "1a2b3c4d5e6f708192a3b4c5d6e7f8090a1b2c3d",
"commits": [
{
"added": [],
"author": {
"date": "2026-03-10T14:22:11+01:00",
"email": "[email protected]",
"name": "Alex Doe",
"username": "alexdoe"
},
"committer": {
"date": "2026-03-10T14:22:11+01:00",
"email": "[email protected]",
"name": "GitHub",
"username": "web-flow"
},
"distinct": true,
"id": "4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01",
"message": "feat: add lightweight metrics endpoint (#42)\n\nAdds a basic /metrics handler with a minimal gauge.",
"modified": [
"cmd/server/main.go",
"pkg/metrics/handler.go",
"docs/metrics.md"
],
"removed": [],
"timestamp": "2026-03-10T14:22:11+01:00",
"tree_id": "7a8b9c0d1e2f3a4b5c6d7e8f90123456789abcde",
"url": "https://github.com/example-org/example-repo/commit/4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01"
}
],
"compare": "https://github.com/example-org/example-repo/compare/1a2b3c4d5e6f...4f9c2e1a7b3d",
"created": false,
"deleted": false,
"forced": false,
"head_commit": {
"added": [],
"author": {
"date": "2026-03-10T14:22:11+01:00",
"email": "[email protected]",
"name": "Alex Doe",
"username": "alexdoe"
},
"committer": {
"date": "2026-03-10T14:22:11+01:00",
"email": "[email protected]",
"name": "GitHub",
"username": "web-flow"
},
"distinct": true,
"id": "4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01",
"message": "feat: add lightweight metrics endpoint (#42)\n\nAdds a basic /metrics handler with a minimal gauge.",
"modified": [
"cmd/server/main.go",
"pkg/metrics/handler.go",
"docs/metrics.md"
],
"removed": [],
"timestamp": "2026-03-10T14:22:11+01:00",
"tree_id": "7a8b9c0d1e2f3a4b5c6d7e8f90123456789abcde",
"url": "https://github.com/example-org/example-repo/commit/4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01"
},
"organization": {
"avatar_url": "https://avatars.githubusercontent.com/u/12345678?v=4",
"description": "Example organization for demo data",
"events_url": "https://api.github.com/orgs/example-org/events",
"hooks_url": "https://api.github.com/orgs/example-org/hooks",
"id": 12345678,
"issues_url": "https://api.github.com/orgs/example-org/issues",
"login": "example-org",
"members_url": "https://api.github.com/orgs/example-org/members{/member}",
"node_id": "O_kgDOBb1AaA",
"public_members_url": "https://api.github.com/orgs/example-org/public_members{/member}",
"repos_url": "https://api.github.com/orgs/example-org/repos",
"url": "https://api.github.com/orgs/example-org"
},
"pusher": {
"email": "[email protected]",
"name": "alexdoe"
},
"ref": "refs/heads/main",
"repository": {
"allow_forking": true,
"archive_url": "https://api.github.com/repos/example-org/example-repo/{archive_format}{/ref}",
"archived": false,
"assignees_url": "https://api.github.com/repos/example-org/example-repo/assignees{/user}",
"blobs_url": "https://api.github.com/repos/example-org/example-repo/git/blobs{/sha}",
"branches_url": "https://api.github.com/repos/example-org/example-repo/branches{/branch}",
"clone_url": "https://github.com/example-org/example-repo.git",
"collaborators_url": "https://api.github.com/repos/example-org/example-repo/collaborators{/collaborator}",
"comments_url": "https://api.github.com/repos/example-org/example-repo/comments{/number}",
"commits_url": "https://api.github.com/repos/example-org/example-repo/commits{/sha}",
"compare_url": "https://api.github.com/repos/example-org/example-repo/compare/{base}...{head}",
"contents_url": "https://api.github.com/repos/example-org/example-repo/contents/{+path}",
"contributors_url": "https://api.github.com/repos/example-org/example-repo/contributors",
"created_at": 1746900000,
"custom_properties": {},
"default_branch": "main",
"deployments_url": "https://api.github.com/repos/example-org/example-repo/deployments",
"description": "Example repository for webhook payloads",
"disabled": false,
"downloads_url": "https://api.github.com/repos/example-org/example-repo/downloads",
"events_url": "https://api.github.com/repos/example-org/example-repo/events",
"fork": false,
"forks": 2,
"forks_count": 2,
"forks_url": "https://api.github.com/repos/example-org/example-repo/forks",
"full_name": "example-org/example-repo",
"git_commits_url": "https://api.github.com/repos/example-org/example-repo/git/commits{/sha}",
"git_refs_url": "https://api.github.com/repos/example-org/example-repo/git/refs{/sha}",
"git_tags_url": "https://api.github.com/repos/example-org/example-repo/git/tags{/sha}",
"git_url": "git://github.com/example-org/example-repo.git",
"has_discussions": false,
"has_downloads": true,
"has_issues": true,
"has_pages": false,
"has_projects": true,
"has_wiki": false,
"homepage": null,
"hooks_url": "https://api.github.com/repos/example-org/example-repo/hooks",
"html_url": "https://github.com/example-org/example-repo",
"id": 987654321,
"is_template": false,
"issue_comment_url": "https://api.github.com/repos/example-org/example-repo/issues/comments{/number}",
"issue_events_url": "https://api.github.com/repos/example-org/example-repo/issues/events{/number}",
"issues_url": "https://api.github.com/repos/example-org/example-repo/issues{/number}",
"keys_url": "https://api.github.com/repos/example-org/example-repo/keys{/key_id}",
"labels_url": "https://api.github.com/repos/example-org/example-repo/labels{/name}",
"language": "TypeScript",
"languages_url": "https://api.github.com/repos/example-org/example-repo/languages",
"license": {
"key": "apache-2.0",
"name": "Apache License 2.0",
"node_id": "MDc6TGljZW5zZTI=",
"spdx_id": "Apache-2.0",
"url": "https://api.github.com/licenses/apache-2.0"
},
"master_branch": "main",
"merges_url": "https://api.github.com/repos/example-org/example-repo/merges",
"milestones_url": "https://api.github.com/repos/example-org/example-repo/milestones{/number}",
"mirror_url": null,
"name": "example-repo",
"node_id": "R_kgDOAbCdEf",
"notifications_url": "https://api.github.com/repos/example-org/example-repo/notifications{?since,all,participating}",
"open_issues": 5,
"open_issues_count": 5,
"organization": "example-org",
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/12345678?v=4",
"email": null,
"events_url": "https://api.github.com/users/example-org/events{/privacy}",
"followers_url": "https://api.github.com/users/example-org/followers",
"following_url": "https://api.github.com/users/example-org/following{/other_user}",
"gists_url": "https://api.github.com/users/example-org/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/example-org",
"id": 12345678,
"login": "example-org",
"name": "example-org",
"node_id": "O_kgDOBb1AaA",
"organizations_url": "https://api.github.com/users/example-org/orgs",
"received_events_url": "https://api.github.com/users/example-org/received_events",
"repos_url": "https://api.github.com/users/example-org/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/example-org/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/example-org/subscriptions",
"type": "Organization",
"url": "https://api.github.com/users/example-org",
"user_view_type": "public"
},
"private": false,
"pulls_url": "https://api.github.com/repos/example-org/example-repo/pulls{/number}",
"pushed_at": 1760000000,
"releases_url": "https://api.github.com/repos/example-org/example-repo/releases{/id}",
"size": 48200,
"ssh_url": "[email protected]:example-org/example-repo.git",
"stargazers": 3,
"stargazers_count": 3,
"stargazers_url": "https://api.github.com/repos/example-org/example-repo/stargazers",
"statuses_url": "https://api.github.com/repos/example-org/example-repo/statuses/{sha}",
"subscribers_url": "https://api.github.com/repos/example-org/example-repo/subscribers",
"subscription_url": "https://api.github.com/repos/example-org/example-repo/subscription",
"svn_url": "https://github.com/example-org/example-repo",
"tags_url": "https://api.github.com/repos/example-org/example-repo/tags",
"teams_url": "https://api.github.com/repos/example-org/example-repo/teams",
"topics": [],
"trees_url": "https://api.github.com/repos/example-org/example-repo/git/trees{/sha}",
"updated_at": "2026-03-10T13:50:00Z",
"url": "https://api.github.com/repos/example-org/example-repo",
"visibility": "public",
"watchers": 3,
"watchers_count": 3,
"web_commit_signoff_required": false
},
"sender": {
"avatar_url": "https://avatars.githubusercontent.com/u/87654321?v=4",
"events_url": "https://api.github.com/users/octo-user/events{/privacy}",
"followers_url": "https://api.github.com/users/octo-user/followers",
"following_url": "https://api.github.com/users/octo-user/following{/other_user}",
"gists_url": "https://api.github.com/users/octo-user/gists{/gist_id}",
"gravatar_id": "",
"html_url": "https://github.com/octo-user",
"id": 87654321,
"login": "octo-user",
"node_id": "MDQ6VXNlcjg3NjU0MzIx",
"organizations_url": "https://api.github.com/users/octo-user/orgs",
"received_events_url": "https://api.github.com/users/octo-user/received_events",
"repos_url": "https://api.github.com/users/octo-user/repos",
"site_admin": false,
"starred_url": "https://api.github.com/users/octo-user/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/octo-user/subscriptions",
"type": "User",
"url": "https://api.github.com/users/octo-user",
"user_view_type": "public"
}
},
"timestamp": "2026-03-10T13:35:00.31254162Z",
"type": "github.push"
}

The On Release trigger starts a workflow execution when release events occur in a GitHub repository.

  • Deployment automation: Trigger deployments when releases are published
  • Notification workflows: Send notifications about new releases
  • Release processing: Process release artifacts or metadata
  • Distribution workflows: Distribute releases to multiple systems
  • Repository: Select the GitHub repository to monitor
  • Actions: Select which release actions to listen for (published, created, etc.)

Each release event includes:

  • action: The action that triggered the event (published, created, etc.)
  • release: Complete release information including tag, name, body, assets
  • repository: Repository information
  • sender: User who triggered the event

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"action": "published",
"release": {
"html_url": "https://github.com/acme/widgets/releases/tag/v1.2.3",
"id": 3001,
"name": "Release 1.2.3",
"tag_name": "v1.2.3"
},
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.release"
}

The On Tag Created trigger starts a workflow execution when a new tag is created in a GitHub repository.

  • Version tagging: Trigger workflows when version tags are created
  • Release automation: Automatically create releases from tags
  • Deployment triggers: Deploy specific versions based on tags
  • Tag processing: Process or validate tags as they’re created
  • Repository: Select the GitHub repository to monitor
  • Tags: Configure which tags to listen for using predicates (e.g., equals “v*”, starts with “release-”)

Each tag event includes:

  • ref: The tag reference (e.g., “refs/tags/v1.0.0”)
  • ref_type: Type of reference (tag)
  • repository: Repository information
  • sender: User who created the tag

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"description": "Example repository for webhook payloads",
"master_branch": "main",
"pusher_type": "user",
"ref": "v1.2.3",
"ref_type": "tag",
"repository": {
"full_name": "acme/widgets",
"html_url": "https://github.com/acme/widgets",
"id": 123456
},
"sender": {
"html_url": "https://github.com/octocat",
"id": 101,
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.tagCreated"
}

The On Workflow Run trigger starts a workflow execution when GitHub Actions workflow runs complete.

  • Workflow orchestration: Chain workflows together based on completion
  • Status monitoring: Monitor CI/CD pipeline results
  • Notification workflows: Send notifications when workflows succeed or fail
  • Post-processing: Process artifacts or results after workflow completion
  • Repository: Select the GitHub repository to monitor
  • Conclusions: Select which workflow conclusions to listen for (success, failure, cancelled, etc.)
  • Workflow Files: Optional list of specific workflow files to monitor (leave empty for all workflows)

Each workflow run event includes:

  • action: The action that triggered the event (completed, requested, etc.)
  • workflow_run: Complete workflow run information including status, conclusion, logs URL
  • repository: Repository information
  • sender: User who triggered the workflow

This trigger automatically sets up a GitHub webhook when configured. The webhook is managed by SuperPlane and will be cleaned up when the trigger is removed.

{
"data": {
"action": "completed",
"organization": {
"avatar_url": "https://avatars.githubusercontent.com/u/12345678?v=4",
"description": "Example organization for demo data",
"events_url": "https://api.github.com/orgs/example-org/events",
"hooks_url": "https://api.github.com/orgs/example-org/hooks",
"id": 12345678,
"issues_url": "https://api.github.com/orgs/example-org/issues",
"login": "example-org",
"members_url": "https://api.github.com/orgs/example-org/members{/member}",
"node_id": "O_kgDOBb1AaA",
"public_members_url": "https://api.github.com/orgs/example-org/public_members{/member}",
"repos_url": "https://api.github.com/orgs/example-org/repos",
"url": "https://api.github.com/orgs/example-org"
},
"repository": {
"created_at": "2024-05-10T12:00:00Z",
"default_branch": "main",
"description": "Example repository for webhook payloads",
"fork": false,
"full_name": "example-org/example-repo",
"html_url": "https://github.com/example-org/example-repo",
"id": 987654321,
"name": "example-repo",
"node_id": "R_kgDOAbCdEf",
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/12345678?v=4",
"gravatar_id": "",
"html_url": "https://github.com/example-org",
"id": 12345678,
"login": "example-org",
"node_id": "O_kgDOBb1AaA",
"site_admin": false,
"type": "Organization",
"url": "https://api.github.com/users/example-org"
},
"private": false,
"pushed_at": "2026-03-10T14:22:11Z",
"updated_at": "2026-03-10T13:50:00Z",
"url": "https://api.github.com/repos/example-org/example-repo"
},
"sender": {
"avatar_url": "https://avatars.githubusercontent.com/u/87654321?v=4",
"gravatar_id": "",
"html_url": "https://github.com/alexdoe",
"id": 87654321,
"login": "alexdoe",
"node_id": "MDQ6VXNlcjg3NjU0MzIx",
"site_admin": false,
"type": "User",
"url": "https://api.github.com/users/alexdoe"
},
"workflow": {
"badge_url": "https://github.com/example-org/example-repo/workflows/CI/badge.svg",
"created_at": "2024-05-10T12:00:00Z",
"html_url": "https://github.com/example-org/example-repo/actions/workflows/ci.yml",
"id": 9876543,
"name": "CI",
"node_id": "W_kwDOBb1AaA0123456",
"path": ".github/workflows/ci.yml",
"state": "active",
"updated_at": "2026-03-01T10:00:00Z",
"url": "https://api.github.com/repos/example-org/example-repo/actions/workflows/9876543"
},
"workflow_run": {
"actor": {
"avatar_url": "https://avatars.githubusercontent.com/u/87654321?v=4",
"gravatar_id": "",
"html_url": "https://github.com/alexdoe",
"id": 87654321,
"login": "alexdoe",
"node_id": "MDQ6VXNlcjg3NjU0MzIx",
"site_admin": false,
"type": "User",
"url": "https://api.github.com/users/alexdoe"
},
"artifacts_url": "https://api.github.com/repos/example-org/example-repo/actions/runs/12345678901/artifacts",
"cancel_url": "https://api.github.com/repos/example-org/example-repo/actions/runs/12345678901/cancel",
"check_suite_id": 11223344556,
"check_suite_node_id": "CS_kwDOBb1AaA0000000",
"check_suite_url": "https://api.github.com/repos/example-org/example-repo/check-suites/11223344556",
"conclusion": "success",
"created_at": "2026-03-10T14:22:11Z",
"event": "push",
"head_branch": "main",
"head_commit": {
"author": {
"email": "[email protected]",
"name": "Alex Doe"
},
"committer": {
"email": "[email protected]",
"name": "GitHub"
},
"id": "4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01",
"message": "feat: add lightweight metrics endpoint (#42)\n\nAdds a basic /metrics handler with a minimal gauge.",
"timestamp": "2026-03-10T14:22:11+01:00",
"tree_id": "7a8b9c0d1e2f3a4b5c6d7e8f90123456789abcde"
},
"head_repository": {
"description": "Example repository for webhook payloads",
"fork": false,
"full_name": "example-org/example-repo",
"html_url": "https://github.com/example-org/example-repo",
"id": 987654321,
"name": "example-repo",
"node_id": "R_kgDOAbCdEf",
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/12345678?v=4",
"gravatar_id": "",
"html_url": "https://github.com/example-org",
"id": 12345678,
"login": "example-org",
"node_id": "O_kgDOBb1AaA",
"site_admin": false,
"type": "Organization",
"url": "https://api.github.com/users/example-org"
},
"private": false,
"url": "https://api.github.com/repos/example-org/example-repo"
},
"head_sha": "4f9c2e1a7b3d45c0d1e9f23456789abcdeffed01",
"html_url": "https://github.com/example-org/example-repo/actions/runs/12345678901",
"id": 12345678901,
"jobs_url": "https://api.github.com/repos/example-org/example-repo/actions/runs/12345678901/jobs",
"logs_url": "https://api.github.com/repos/example-org/example-repo/actions/runs/12345678901/logs",
"name": "CI",
"node_id": "WFR_kwLOBb1AaA123456789",
"path": ".github/workflows/ci.yml",
"pull_requests": [],
"referenced_workflows": [],
"repository": {
"clone_url": "https://github.com/example-org/example-repo.git",
"created_at": "2024-05-10T12:00:00Z",
"default_branch": "main",
"description": "Example repository for webhook payloads",
"fork": false,
"full_name": "example-org/example-repo",
"git_url": "git://github.com/example-org/example-repo.git",
"html_url": "https://github.com/example-org/example-repo",
"id": 987654321,
"name": "example-repo",
"node_id": "R_kgDOAbCdEf",
"owner": {
"avatar_url": "https://avatars.githubusercontent.com/u/12345678?v=4",
"gravatar_id": "",
"html_url": "https://github.com/example-org",
"id": 12345678,
"login": "example-org",
"node_id": "O_kgDOBb1AaA",
"site_admin": false,
"type": "Organization",
"url": "https://api.github.com/users/example-org"
},
"private": false,
"pushed_at": "2026-03-10T14:22:11Z",
"ssh_url": "[email protected]:example-org/example-repo.git",
"updated_at": "2026-03-10T13:50:00Z",
"url": "https://api.github.com/repos/example-org/example-repo"
},
"rerun_url": "https://api.github.com/repos/example-org/example-repo/actions/runs/12345678901/rerun",
"run_attempt": 1,
"run_number": 42,
"run_started_at": "2026-03-10T14:22:11Z",
"status": "completed",
"triggering_actor": {
"avatar_url": "https://avatars.githubusercontent.com/u/87654321?v=4",
"gravatar_id": "",
"html_url": "https://github.com/alexdoe",
"id": 87654321,
"login": "alexdoe",
"node_id": "MDQ6VXNlcjg3NjU0MzIx",
"site_admin": false,
"type": "User",
"url": "https://api.github.com/users/alexdoe"
},
"updated_at": "2026-03-10T14:25:30Z",
"url": "https://api.github.com/repos/example-org/example-repo/actions/runs/12345678901",
"workflow_id": 9876543,
"workflow_url": "https://api.github.com/repos/example-org/example-repo/actions/workflows/9876543"
}
},
"timestamp": "2026-03-10T14:25:30.31254162Z",
"type": "github.workflowRun"
}

The Add Issue Assignee component adds one or more assignees to an existing GitHub issue without affecting existing assignees.

  • Auto-assignment: Automatically assign issues to team members based on workflow triggers
  • Escalation: Add additional assignees when issues require attention from specific people
  • On-call routing: Assign issues to the current on-call engineer
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue number to add assignees to (supports expressions)
  • Assignees: List of GitHub usernames to assign to the issue

Returns the updated issue object with all current information.

{
"data": {
"assignees": [
{
"id": 1,
"login": "octocat"
}
],
"html_url": "https://github.com/acme/widgets/issues/42",
"id": 101,
"number": 42,
"state": "open",
"title": "Fix flaky build"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issue"
}

The Add Issue Label component adds one or more labels to an existing GitHub issue without affecting existing labels.

  • Triage automation: Automatically label issues based on content or source
  • Status tracking: Add status labels as issues move through workflows
  • Priority tagging: Apply priority labels based on external signals
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue number to add labels to (supports expressions)
  • Labels: List of label names to add to the issue

Returns the full list of labels currently on the issue after the addition.

{
"data": [
{
"color": "d73a4a",
"default": true,
"description": "Something isn't working",
"id": 208045946,
"name": "bug"
},
{
"color": "a2eeef",
"default": true,
"description": "New feature or request",
"id": 208045947,
"name": "enhancement"
}
],
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.labels"
}

The Create Issue component creates a new issue in a specified GitHub repository.

  • Automated bug reporting: Create issues automatically when errors are detected
  • Task creation: Generate issues from external systems or workflows
  • Notification tracking: Convert notifications into trackable issues
  • Workflow automation: Create issues as part of automated processes
  • Repository: Select the GitHub repository where the issue will be created
  • Title: The issue title (supports expressions)
  • Body: The issue body/description (supports markdown and expressions)
  • Assignees: Optional list of GitHub usernames to assign the issue to
  • Labels: Optional list of labels to apply to the issue

Returns the created issue object with details including:

  • Issue number
  • URL
  • State
  • Created timestamp
  • All issue metadata
{
"data": {
"html_url": "https://github.com/acme/widgets/issues/42",
"id": 101,
"number": 42,
"state": "open",
"title": "Fix flaky build",
"user": {
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issue"
}

The Create Issue Comment component adds a comment to an existing GitHub issue or pull request. Issues and pull requests share the same comment API in GitHub.

  • Deployment updates: Post deployment status or remediation updates to GitHub issues
  • Runbook linking: Add runbook links, error details, or status for responders
  • Cross-platform sync: Sync Slack or PagerDuty notes into GitHub as comments
  • Automated comments: Add automated comments based on workflow events
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue or PR number to comment on (supports expressions)
  • Body: The comment text (supports Markdown and expressions)

Returns the created comment object including:

  • Comment ID and URL
  • Comment body
  • Author information
  • Created timestamp
{
"data": {
"body": "Deployment to production completed successfully.",
"created_at": "2026-01-16T17:56:16Z",
"html_url": "https://github.com/acme/widgets/issues/42#issuecomment-5001",
"id": 5001,
"updated_at": "2026-01-16T17:56:16Z",
"user": {
"login": "superplane-app[bot]"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issueComment"
}

The Create Release component creates a new release in a GitHub repository.

  • Automated releases: Create releases automatically after successful builds
  • Version management: Tag and release new versions of software
  • Deployment automation: Create releases as part of deployment workflows
  • Release notes: Automatically generate and publish release notes
  • Repository: Select the GitHub repository
  • Version Strategy: How to determine the version (manual tag, auto-increment)
  • Tag Name: Git tag name for the release (supports expressions)
  • Name: Release title/name (optional, supports expressions)
  • Body: Release notes/description (optional, supports markdown and expressions)
  • Draft: Create as draft release (not published)
  • Prerelease: Mark as pre-release
  • Generate Release Notes: Automatically generate release notes from commits

Returns the created release object with all release information including tag, assets, and metadata.

{
"data": {
"draft": false,
"html_url": "https://github.com/acme/widgets/releases/tag/v1.2.3",
"id": 3001,
"name": "Release 1.2.3",
"prerelease": false,
"tag_name": "v1.2.3"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.release"
}

The Create Review component submits a pull request review (approve, request changes, or comment) on a GitHub pull request.

  • Automation: Auto-approve when checks pass
  • Quality gates: Request changes when checks fail
  • Bots: Post review feedback
  • Repository: Select the GitHub repository
  • Pull Number: Pull request number
  • Event: APPROVE, REQUEST_CHANGES, or COMMENT
  • Body: Optional review body (required for REQUEST_CHANGES and COMMENT)

Emits the submitted review object including:

  • id, state, submitted_at
  • body and user
{
"data": {
"body": "LGTM. Approving after successful CI.",
"html_url": "https://github.com/acme/widgets/pull/42#pullrequestreview-9001",
"id": 9001,
"state": "APPROVED",
"submitted_at": "2026-01-25T12:34:56Z",
"user": {
"html_url": "https://github.com/octocat",
"id": 1,
"login": "octocat"
}
},
"timestamp": "2026-01-25T12:34:56.000000000Z",
"type": "github.pullRequestReview"
}

The Delete Release component removes a release from a GitHub repository.

  • Cleanup: Remove old or incorrect releases
  • Rollback: Delete releases that were created in error
  • Maintenance: Clean up draft or test releases
  • Automated cleanup: Remove releases as part of maintenance workflows
  • Repository: Select the GitHub repository
  • Release Strategy: How to find the release (by tag name or latest)
  • Tag Name: Git tag name of the release to delete (if using tag strategy)
  • Delete Tag: Also delete the associated Git tag (optional)

Returns confirmation of the deletion.

{
"data": {
"deleted_at": "2026-01-16T17:55:00Z",
"draft": false,
"html_url": "https://github.com/acme/widgets/releases/tag/v1.2.3",
"id": 3001,
"name": "Release 1.2.3",
"prerelease": false,
"tag_deleted": true,
"tag_name": "v1.2.3"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.release"
}

The Get Issue component retrieves a specific issue from a GitHub repository by its issue number.

  • Issue lookup: Fetch issue details for processing or display
  • Workflow automation: Get issue information to make decisions in workflows
  • Data enrichment: Retrieve issue data to combine with other information
  • Status checking: Check issue status before performing actions
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue number to retrieve (supports expressions)

Returns the complete issue object including:

  • Issue number, title, and body
  • State (open/closed)
  • Labels and assignees
  • Created and updated timestamps
  • Author information
  • Comments count and other metadata
{
"data": {
"comments": 3,
"html_url": "https://github.com/acme/widgets/issues/42",
"id": 101,
"number": 42,
"state": "open",
"title": "Fix flaky build",
"user": {
"login": "octocat"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issue"
}

The Get Release component retrieves release information from a GitHub repository.

  • Release Monitoring: Get details about a specific release
  • Deployment Pipelines: Fetch release assets and metadata for deployment
  • Version Tracking: Monitor release status and changelog
  • CI/CD Integration: Retrieve release information for build processes
  • Repository: Select the GitHub repository
  • Release Strategy: How to find the release (by tag name, by ID, or latest)
  • Tag Name: Git tag name of the release (if using tag strategy)
  • Release ID: Numeric release ID (if using ID strategy)

Returns release information including:

  • Release ID, name, and tag name
  • Release body/description
  • Draft and prerelease status
  • Created and published timestamps
  • Author information
  • Asset URLs
{
"data": {
"assets": [
{
"browser_download_url": "https://github.com/acme/widgets/releases/download/v1.2.3/app-v1.2.3.zip",
"content_type": "application/zip",
"download_count": 42,
"id": 1,
"label": "Application Bundle",
"name": "app-v1.2.3.zip",
"size": 1024000
}
],
"author": {
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
"html_url": "https://github.com/octocat",
"id": 1,
"login": "octocat"
},
"body": "## What's Changed\n\n- Feature A\n- Bug fix B",
"created_at": "2026-01-15T10:00:00Z",
"draft": false,
"html_url": "https://github.com/acme/widgets/releases/tag/v1.2.3",
"id": 3001,
"name": "Release 1.2.3",
"prerelease": false,
"published_at": "2026-01-16T12:00:00Z",
"tag_name": "v1.2.3"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.release"
}

The Get Workflow Usage component retrieves billable GitHub Actions usage (minutes) for the installation’s organization.

This action calls GitHub’s billing usage API, which requires the GitHub App to have Organization permission: Organization administration (read).

Important: Existing installations will need to approve the new permission when prompted by GitHub. Until the permission is granted, this action will return a 403 error.

Note: This component uses GitHub’s enhanced billing usage report API, which provides detailed usage information.

  • Returns billing data for the current billing cycle
  • Only private repositories on GitHub-hosted runners accrue billable minutes
  • Public repositories and self-hosted runners show zero billable usage
  • Can filter by specific repositories when selected
  • Uses enhanced billing platform API for accurate reporting
  • Repositories (optional, multiselect): Select one or more specific repositories to track. These will be included in the output for reference (max 5) and stored in node metadata with full repository details (ID, name, URL). When repositories are selected, only usage for those repositories is included in the totals.

Returns usage data with:

  • minutes_used: Total billable minutes used in the current billing cycle
  • minutes_used_breakdown: Map of minutes by runner SKU (e.g., “Actions Linux”: 120, “Actions Windows”: 60, “Actions macOS”: 30)
  • included_minutes: Always 0 (not provided by enhanced billing API)
  • total_paid_minutes_used: Estimated paid minutes based on cost data
  • repositories: List of selected repositories for tracking (max 5)

Note: Breakdown is by runner SKU (OS and type), not by individual workflow.

The component stores repository information in node metadata:

  • Repository ID, name, and URL for each selected repository (max 5)
  • This metadata is displayed in the workflow canvas for easy reference
  • Billing Monitoring: Track GitHub Actions usage for billing purposes
  • Quota Management: Monitor usage to avoid exceeding billing quotas
  • Cost Control: Alert when usage approaches limits or budget thresholds
  • Usage Reporting: Generate monthly or periodic usage reports for compliance
  • Resource Planning: Analyze runner usage patterns by OS type
{
"data": {
"included_minutes": 0,
"minutes_used": 1840.5,
"minutes_used_breakdown": {
"Actions Linux": 1200,
"Actions Windows": 400.5,
"Actions macOS": 240
},
"repositories": [
"repo1",
"repo2",
"repo3"
],
"total_paid_minutes_used": 150
},
"timestamp": "2026-02-17T20:00:00Z",
"type": "github.workflowUsage"
}

The Publish Commit Status component creates a status check on a GitHub commit, commonly used for CI/CD integrations.

  • CI/CD integration: Report build and test results to GitHub
  • Status reporting: Update commit status from external systems
  • Deployment tracking: Mark commits as deployed or failed
  • Quality gates: Report code quality check results
  • Repository: Select the GitHub repository
  • Commit SHA: The full 40-character commit SHA (supports expressions)
  • State: Status state - pending, success, failure, or error
  • Context: A label to identify this status check (e.g., “ci/build”, “deploy/production”)
  • Description: Short description of the status (max ~140 characters, optional)
  • Target URL: Link to build logs, test results, or deployment details (optional)

Returns the created status object with all status information.

{
"data": {
"context": "ci/build",
"created_at": "2026-01-16T17:45:00Z",
"description": "All checks passed",
"state": "success",
"target_url": "https://ci.example.com/builds/123",
"updated_at": "2026-01-16T17:45:10Z"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.commitStatus"
}

The Remove Issue Assignee component removes one or more assignees from an existing GitHub issue without affecting other assignees.

  • De-escalation: Remove assignees when issues are resolved or transferred
  • Rotation: Remove previous on-call assignees when rotating responsibilities
  • Cleanup: Remove assignees who are no longer involved with an issue
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue number to remove assignees from (supports expressions)
  • Assignees: List of GitHub usernames to remove from the issue

Returns the updated issue object with all current information.

{
"data": {
"assignees": [],
"html_url": "https://github.com/acme/widgets/issues/42",
"id": 101,
"number": 42,
"state": "open",
"title": "Fix flaky build"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issue"
}

The Remove Issue Label component removes one or more labels from an existing GitHub issue without affecting other labels.

  • Triage cleanup: Remove temporary triage labels after processing
  • Status transitions: Remove old status labels when issues move forward
  • Automated cleanup: Strip labels that no longer apply based on workflow events
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue number to remove labels from (supports expressions)
  • Labels: List of label names to remove from the issue

Returns the remaining list of labels on the issue after the removal.

{
"data": [
{
"color": "a2eeef",
"default": true,
"description": "New feature or request",
"id": 208045947,
"name": "enhancement"
}
],
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.labels"
}

The Run Workflow component triggers a GitHub Actions workflow and waits for it to complete.

  • CI/CD orchestration: Trigger builds and deployments from SuperPlane workflows
  • Automated testing: Run test suites as part of workflow automation
  • Multi-stage pipelines: Coordinate complex deployment pipelines
  • Workflow chaining: Chain multiple GitHub Actions workflows together
  1. Dispatches the specified GitHub Actions workflow with optional inputs
  2. Waits for the workflow run to complete (monitored via webhook and polling)
  3. Routes execution based on workflow conclusion:
    • Passed channel: Workflow completed successfully
    • Failed channel: Workflow failed or was cancelled
  • Repository: Select the GitHub repository containing the workflow
  • Workflow File: Path to the workflow file (e.g., .github/workflows/ci.yml)
  • Branch or Tag: Git reference to run the workflow on (default: main)
  • Inputs: Optional workflow inputs as key-value pairs (supports expressions)
  • Passed: Emitted when workflow completes successfully
  • Failed: Emitted when workflow fails or is cancelled
  • The component automatically sets up webhook monitoring for workflow completion
  • Falls back to polling if webhook doesn’t arrive
  • Can be cancelled, which will cancel the running GitHub Actions workflow
{
"data": {
"workflow_run": {
"conclusion": "success",
"html_url": "https://github.com/acme/widgets/actions/runs/9001",
"id": 9001,
"status": "completed"
}
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.workflow.finished"
}

The Update Issue component modifies an existing GitHub issue with new information.

  • Status updates: Change issue state (open/closed) based on workflow results
  • Label management: Add or update labels on issues
  • Assignee updates: Assign issues to team members automatically
  • Content updates: Update issue title or body with new information
  • Repository: Select the GitHub repository containing the issue
  • Issue Number: The issue number to update
  • Title: New title for the issue (optional, supports expressions)
  • Body: New body/description for the issue (optional, supports expressions)
  • State: Change issue state to “open” or “closed” (optional)
  • Assignees: List of GitHub usernames to assign the issue to (optional)
  • Labels: List of labels to apply to the issue (optional)

Returns the updated issue object with all current information.

{
"data": {
"html_url": "https://github.com/acme/widgets/issues/42",
"id": 101,
"number": 42,
"state": "closed",
"title": "Fix flaky build",
"updated_at": "2026-01-16T17:40:00Z"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.issue"
}

The Update Release component modifies an existing GitHub release.

  • Release updates: Update release notes or metadata after creation
  • Draft to published: Convert draft releases to published releases
  • Metadata updates: Update release name, description, or tags
  • Prerelease management: Change prerelease status
  • Repository: Select the GitHub repository
  • Release Strategy: How to find the release (by tag name or latest)
  • Tag Name: Git tag name of the release to update (if using tag strategy)
  • Name: New release title/name (optional, supports expressions)
  • Body: New release notes/description (optional, supports markdown and expressions)
  • Draft: Update draft status
  • Prerelease: Update prerelease status
  • Generate Release Notes: Regenerate release notes from commits

Returns the updated release object with all current information.

{
"data": {
"draft": false,
"html_url": "https://github.com/acme/widgets/releases/tag/v1.2.3",
"id": 3001,
"name": "Release 1.2.3",
"prerelease": false,
"tag_name": "v1.2.3",
"updated_at": "2026-01-16T17:50:00Z"
},
"timestamp": "2026-01-16T17:56:16.680755501Z",
"type": "github.release"
}