The catalogue/GitHub

GitHub

app.github

Manage repos, issues, PRs, and actions on GitHub

Migrated and runningGitHub AppdevelopmentRead the source
Version2.0.0
Categorydevelopment
AuthGitHub App
Tools70
Transportstdio
LicenceMIT
01

What it does

The app, in its own words.

GitHub repository management + local git development environment - repos, issues, pull requests, actions, commits, branches, releases, plus local git operations on cloned repos

githubgitrepositoriesissuespull-requestsci-cdactions
02

Tools

70 tools the agent can call.

Every one is declared with typed parameters and returns structured results, so the host can render them instead of narrating them.

  • add-issue-commentAdd a comment to an issue
  • add-labels-to-issueAdd labels to an issue or pull request. Returns the full label set after addition.
  • cancel-workflow-runCancel a workflow run that is in progress.
  • clone-repoClone a GitHub repository to the local filesystem. Returns {path, branch, sha, recentCommits[]}.
  • compare-commitsCompare two commits or branches. `basehead` format `BASE...HEAD`.
  • create-branchCreate a new branch from a reference
  • create-check-runCreate a check run on a commit (GitHub App exclusive).
  • create-issueCreate a new issue in a repository
  • create-or-update-fileCreate or update a file in a repo. Pass `sha` of the existing file when updating.
  • create-pr-reviewCreate a pull request review. `event` controls the verdict: APPROVE / REQUEST_CHANGES / COMMENT.
  • create-pullCreate a new pull request
  • create-releaseCreate a GitHub release tagged at `tag_name`.
  • create-repoCreate a new repository
  • dispatch-eventSend a `repository_dispatch` event to trigger workflows.
  • get-branchGet information about a specific branch
  • get-commitGet details of a specific commit
  • get-file-contentGet the content of a file in a repository
  • get-installation-contextList the GitHub App installations reachable by the current user, with accessible repos, granted permissions, and manage/install URLs.
  • get-issueGet details of a specific issue
  • get-pullGet details of a specific pull request
  • get-rate-limitRead the current GitHub API rate-limit budget.
  • get-repoGet detailed information about a specific repository
  • get-userDeprecated alias for get-installation-context.
  • get-workflow-runGet a workflow run.
  • git-addStage local changes. Pass an array of paths to stage selectively, or omit `paths` (default `.`) to stage everything.
  • git-batch-commitApply multiple file changes (create/update/delete/rename) and create ONE atomic commit. Use this for refactors and any multi-file change where the intermediate states should not be visible in git history.
  • git-bisectBinary search for the commit that introduced a bug. Workflow: start → mark each step good/bad → done. Use `reset` to abort.
  • git-blamePer-line attribution for a file. Returns `[{ sha, author, date, lineNumber, content }]`. Restrict with `range: "10,50"` or `ref`.
  • git-checkoutSwitch branches, create a new branch, or restore specific paths. Returns the new HEAD ref. Set `force: true` to discard local changes (destructive).
  • git-cherry-pickCherry-pick commits onto the current branch. Pass `commits: ["sha", ...]` or drive an in-progress pick with `mode: continue/skip/abort`.
  • git-commitCreate a commit with the staged changes. Returns `{ sha, branch, message }`. Use `amend: true` to amend the previous commit instead.
  • git-configRead or write git config (whitelisted keys only). Default scope is `local` (the repo). For identity, prefer `user.name` and `user.email`.
  • git-diffShow differences as unified diff + numstat. Defaults to working tree vs HEAD. `from: staged` for index vs HEAD; pass `from`+`to` commit SHAs for arbitrary diffs.
  • git-fetchFetch refs from the remote without merging. Use `refspec` to fetch arbitrary refs (e.g. `pull/<n>/head:pr-<n>` for a PR head, `refs/tags/v1.0.0:refs/tags/v1.0.0` for a tag).
  • git-list-filesList files in the repo, respecting `.gitignore`. Returns `{ tracked, untracked, ignored }` arrays. Optionally filter by `pattern` (glob, relative to repo root).
  • git-logLocal commit history with structured entries. Defaults to last 20 commits on the current branch. Filter by `ref`, `path`, `author`, `since`/`until`.
  • git-mergeMerge a branch/tag/commit into the current branch. On conflict, throws `GIT_CONFLICT` and the agent should resolve via `git-status` + edit + `git-add`.
  • git-mvMove or rename a tracked file/directory while preserving git history. Both `from` and `to` are relative to repo root.
  • git-pullPull commits from the remote into the current branch. `rebase: true` for a linear history (no merge commit).
  • git-pushPush commits to the remote. `force: true` uses `--force-with-lease`; `forceUnsafe: true` uses raw `--force` (destructive).
  • git-read-fileRead a file from the working tree or from a specific git revision. Pass `ref` (commit/branch/tag) to read the version at that point.
  • git-rebaseRebase the current branch onto another ref (linear history). Or drive an in-progress rebase with `mode: continue/skip/abort`.
  • git-remoteList, add, remove, or update git remotes. `list` returns name + fetch/push URLs.
  • git-resetReset HEAD to `target`. `mode: soft` keeps staging; `mode: mixed` (default) keeps working tree; `mode: hard` discards everything (destructive).
  • git-rmRemove tracked files from the working tree and stage the deletion. Pass `cached: true` to only unstage (without deleting from disk).
  • git-stashManage the stash. Default action `push` saves uncommitted changes. Other actions: pop, apply, drop, list, clear.
  • git-statusLocal git status: branch, ahead/behind vs upstream, and lists of staged, modified, untracked, and conflicted files.
  • git-tagList, create, or delete local git tags. Pass `message` on create for an annotated tag (otherwise lightweight).
  • git-write-fileWrite file content into the working tree (creates parent dirs) and stage it. Use `stage: false` to skip staging.
  • list-branchesList branches in a repository
  • list-commitsList commits in a repository
  • list-issuesList issues for a repository with optional filters
  • list-pr-commitsList commits on a pull request.
  • list-pr-filesList files changed in a pull request.
  • list-pr-review-commentsList review comments (inline comments on diff) of a pull request.
  • list-pullsList pull requests for a repository
  • list-releasesList releases of a repository, newest first.
  • list-reposList repositories accessible to the current user via the GitHub App (across every installation reachable). Pass `owner` to filter.
  • list-workflow-run-jobsList jobs of a workflow run.
  • list-workflow-runsList workflow runs for a repository
  • list-workflowsList workflows in a repository
  • merge-pullMerge a pull request
  • request-reviewersRequest reviewers on a pull request.
  • rerun-workflow-runRe-run a workflow run. Default re-runs only failed jobs.
  • search-codeSearch for code across GitHub repositories
  • search-issuesSearch issues and pull requests across GitHub. Use GitHub search syntax in `q`.
  • search-reposSearch for repositories on GitHub
  • trigger-workflowTrigger a workflow dispatch event
  • update-check-runUpdate an existing check run.
  • update-issueUpdate an existing issue. Setting `state: "closed"` closes it. `labels` REPLACES the entire label set — use add-labels-to-issue to append.
03

Auth and permissions

What it asks for.

Declared in the manifest, in advance. The app cannot reach anything it did not ask for here.

System secrets

GITHUB_APP_IDGITHUB_APP_CLIENT_IDGITHUB_APP_CLIENT_SECRETGITHUB_APP_PRIVATE_KEYGITHUB_APP_WEBHOOK_SECRETGITHUB_APP_SLUG

User secrets

INSTALLATION_IDUSER_ACCESS_TOKENUSER_REFRESH_TOKENUSER_TOKEN_EXPIRES_ATUSER_LOGIN

Reading further

The manifest and the source for GitHub live in the monorepo, alongside the other apps.

Read the sourceBack to the catalogue

GitHub · Agent Apps