Skip to content

GitHub integration

The GitHub integration connects Speedwave directly to GitHub.com repositories, allowing Claude to inspect file trees, analyze pull request diffs, post inline review comments, manage issues, and trigger GitHub Actions workflows.

GitHub operates within a dedicated worker container. Tokens reside in ~/.speedwave/tokens/<project>/github/token and are mounted read-only into the worker at /tokens/token.

Authentication is established using the standard GitHub OAuth Device Flow: Speedwave presents a one-time verification code which you authorize at https://github.com/login/device. The authorization requests repo and read:user scopes. Alternatively, you can configure manual Personal Access Tokens (PATs: fine-grained github_pat_ or classic ghp_).

Tool requests pass from Claude Code through the stateless Tool Gateway to the GitHub worker, communicating directly with https://api.github.com.

The GitHub worker exposes 45 specialized operations:

Tool nameDescription
listReposEnumerate accessible repositories with search filtering.
getRepoRetrieve repository metadata.
searchCodeSearch codebase content across repositories.
listBranchesList repository branches.
getBranchInspect branch reference metadata.
createBranchCreate a new branch from a commit SHA or reference.
deleteBranchPermanently delete a branch.
compareBranchesCompare commit differences between branches.
getTreeRetrieve recursive directory trees.
getFileContentsRead raw file contents from a repository path.
createOrUpdateFileCommit file creations or updates directly.
Tool nameDescription
listPullRequestsQuery pull requests by state, branch, or base target.
getPullRequestRetrieve comprehensive pull request metadata.
createPullRequestAuthor draft or standard pull requests.
updatePullRequestModify pull request titles, descriptions, base targets, or status.
mergePullRequestExecute pull request merges.
getPrDiffRetrieve unified git diff strings for a pull request.
getPrFilesInspect modified file lists with line change statistics.
listPrCommitsEnumerate commits associated with a pull request.
listPrReviewsRetrieve review submissions on a pull request.
createPrReviewSubmit formal pull request reviews (APPROVE, REQUEST_CHANGES, COMMENT).
listPrCommentsRetrieve general discussion comments on a pull request.
createPrCommentPost general discussion comments on a pull request.
createPrReviewCommentPost inline review comments anchored to specific diff lines.
Tool nameDescription
listCommitsList commits filtered by author, path, or date range.
listBranchCommitsEnumerate commits on a designated branch.
searchCommitsSearch commit messages across GitHub.
getCommitDiffRetrieve unified diff for an individual commit.
createTagCreate annotated or lightweight Git tags.
deleteTagDelete a Git tag.
createReleaseAuthor GitHub releases (auto-creating tags if absent).
Tool nameDescription
listWorkflowRunsEnumerate Actions workflow executions by branch or status.
getWorkflowRunInspect workflow execution details and status.
getRunLogsRetrieve temporary download URLs for workflow execution logs.
rerunWorkflowTrigger re-execution of a workflow run.
triggerWorkflowDispatch manual workflow_dispatch executions.
listWorkflowRunArtifactsEnumerate build artifacts produced by workflows.
downloadArtifactRetrieve temporary download URLs for workflow build artifacts.
listIssuesQuery repository issues (excluding pull requests).
getIssueRetrieve issue metadata and discussion.
createIssueAuthor new repository issues.
updateIssueModify issue details, labels, milestones, or assignees.
closeIssueMark an issue closed.
listLabelsEnumerate repository issue labels.
createLabelCreate issue labels.
  1. Open your project in the Desktop application and navigate to Integrations → GitHub.
  2. Click Sign in with GitHub and authorize the device code displayed in your browser.
  3. Upon approval, tokens are stored securely in local token storage and the worker becomes active.

The GitHub worker container operates under standard Speedwave sandboxing: unprivileged user execution, read-only root filesystems, and strict credential isolation. Tokens are never exposed to Claude Code or other worker containers. See Credentials management for storage specifications.