> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tai42.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# tools-github

> GitHub provisioning tools for the TAI ecosystem: manifest-loaded repository-webhook setup tools that create a repository webhook, list a repository's webhooks with Link-header pagination, and delete a repository webhook — the provider-side counterpart to the runtime signature verifier.

<Info>`Tool` plugin · listing `tai42/tools-github`</Info>

## Install

```bash theme={null}
tai plugins install tai42-tools-github
```

## Permissions

| Capability | Declared |
| ---------- | -------- |
| Network    | yes      |
| Subprocess | no       |
| Filesystem | no       |

## Provides

<h3 id="create-github-webhook">
  create\_github\_webhook
</h3>

`Tool` — Create a repository webhook and return its id, url, events, and active flag.

<h3 id="list-github-webhooks">
  list\_github\_webhooks
</h3>

`Tool` — List a repository's webhooks, following Link-header pagination to exhaustion.

<h3 id="delete-github-webhook">
  delete\_github\_webhook
</h3>

`Tool` — Delete a repository webhook by id.

Three tools that provision a GitHub repository's webhooks over the REST API: create a
webhook, list a repository's webhooks, and delete one. They are the provider-side setup
counterpart to a runtime webhook-signature verifier — the tools register the hook a
verifier later authenticates.

## Configuration

| Variable                               | Default                  | Effect                                                                              |
| -------------------------------------- | ------------------------ | ----------------------------------------------------------------------------------- |
| `TOOLS_GITHUB_TOKEN`                   | unset                    | GitHub token (`Authorization: Bearer`). Missing or empty raises on every tool call. |
| `TOOLS_GITHUB_API_BASE`                | `https://api.github.com` | GitHub REST API origin. Privileged — receives the `Authorization` header.           |
| `TOOLS_GITHUB_REQUEST_TIMEOUT_SECONDS` | `20`                     | Per-request HTTP timeout in seconds.                                                |

The token needs the scope GitHub requires to administer repository webhooks (the
`admin:repo_hook` scope on a classic token, or repository `Webhooks` read/write on a
fine-grained token). A missing or empty token raises loudly (fails closed) — never a
silently-unauthenticated request.

## create\_github\_webhook

Creates a repository webhook on `owner/name` and returns its id, delivery url, events and
active flag. GitHub does not mint the signing secret: the caller supplies it, GitHub keys
`X-Hub-Signature-256` with it, and the caller keeps its own copy — GitHub never returns
it and the tool never echoes it.

## list\_github\_webhooks

Lists every webhook on `owner/name`, following the `Link` response header to exhaustion,
and returns each hook's id, delivery url, events and active flag. GitHub never returns a
hook's secret.

## delete\_github\_webhook

Deletes the webhook `hook_id` from `owner/name`. Succeeds only on GitHub's `204`; an
unknown hook (404) or any other non-2xx raises, never a silent success.
