Skip to main content

Repos, Issues, and Pull Requests

The GitHub integration connects Wolffish to the GitHub API for managing repositories, issues, pull requests, workflows, releases, and more. It uses a personal access token (PAT) for authentication.

Setup

1

Generate a Token

Go to github.com/settings/tokens and create a new personal access token (classic or fine-grained).
2

Select Scopes

For full functionality, select at minimum: repo and read:org. See the scopes table below for details.
3

Configure in Wolffish

Open Settings > Integrations > GitHub and paste your token.

Required Token Scopes

ScopeGrants Access To
repoFull control of private repositories (issues, PRs, code, releases, workflows)
read:orgRead-only access to organization membership and teams

Optional Scopes

ScopeGrants Access To
gistCreate and manage gists
notificationsRead notifications
workflowTrigger GitHub Actions workflow dispatches
Fine-grained tokens offer more precise permissions but require per-repository configuration. Classic tokens with repo + read:org are the simplest path to full functionality.

Two Capabilities, One Platform

Wolffish separates local git operations from remote GitHub API operations:

git (Pure Skill)

Local git operations — commit, branch, merge, rebase, diff, log. Uses shell_exec to run git commands. No token needed.

github (Plugin)

Remote GitHub API operations — issues, PRs, workflows, releases. Uses Octokit to call the GitHub REST API. Requires a PAT.
The git capability is always available (it’s a pure skill that uses shell commands). The github capability requires a configured token to make API calls.

Available Tools

Repositories

ToolDescription
github_list_reposList repositories for the authenticated user or an organization
github_star_repoStar a repository
github_fork_repoFork a repository to your account
github_compare_branchesCompare two branches (ahead/behind count, diff stats)
github_list_branchesList branches for a repository

Issues

ToolDescription
github_create_issueCreate a new issue
github_read_issueRead an issue with comments
github_update_issueUpdate issue title, body, labels, assignees, or state
github_list_issuesList issues with filters (state, labels, assignee)
github_manage_labelsCreate, update, or delete labels
github_manage_milestonesCreate, update, or delete milestones

Pull Requests

ToolDescription
github_create_prCreate a new pull request
github_list_prsList pull requests with filters
github_merge_prMerge a pull request (merge, squash, or rebase)
github_review_prSubmit a review (approve, request changes, comment)

CI/CD and Workflows

ToolDescription
github_list_workflowsList GitHub Actions workflows for a repository
github_trigger_workflowTrigger a workflow dispatch event
github_list_notificationsList unread notifications

Releases and Gists

ToolDescription
github_create_releaseCreate a new release with tag
github_manage_gistsCreate, list, or update gists

Triggers

The GitHub capability activates when your message matches any of these patterns:
github, pull request, PR, merge, issue, issues,
repo, repository, CI, actions, workflow, release,
gist, notification, star, fork, branch, compare
Local git commands (commit, push, diff, log) trigger the git capability, not github. If you say “push to origin”, the git skill runs git push via shell_exec. If you say “create a PR”, the github plugin calls the GitHub API.

Example Workflows

You: "Create a PR for my current branch"
Wolffish: Reads the current branch name, detects the remote, and calls
github_create_pr with the branch as head and main as base.
You: "What are the open issues on wolffish-app?"
Wolffish: Calls github_list_issues with state=open and returns a formatted list
with titles, labels, and assignees.
You: "What's the CI status on my latest PR?"
Wolffish: Lists recent PRs, finds yours, and checks the workflow run status.
You: "Trigger the deploy workflow on main"
Wolffish: Calls github_trigger_workflow with the workflow ID and ref=main.

Configuration Reference

The GitHub token is stored as a Variable in Settings:
{
  "variables": {
    "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  }
}
Alternatively, you can set it in config.json:
{
  "integrations": {
    "github": {
      "token": "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
  }
}
Never commit your GitHub PAT to version control. If you store your workspace in git, ensure config.json and any variables file are in .gitignore.