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

# GitHub

> Manage repositories, pull requests, and issues

Connect your agent to GitHub to work with your code repositories — browse files, create and review pull requests, manage issues, and react to events like new issues or PRs.

## How to enable

Go to **Settings → Capabilities** and enable **GitHub**. Then enter your personal access token, and optionally specify which repositories to watch (see below for details).

## Example use cases

* **Code Review Assistant** — "Review PR 254 and flag any potential issues or security concerns"
* **Release Notes Generator** — "Summarize all commits since the last release and generate release notes"
* **Issue Triage** — "When a new issue is created, analyze it and add appropriate labels"
* **Dependency Updates** — "Check for outdated dependencies and create a PR with updates"

## How to connect your GitHub account

<Steps>
  <Step title="Create a personal access token">
    Go to [GitHub Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens) and create a new token. GitHub offers two types:

    <Note>
      On GitHub Enterprise, create the token on your own instance — for example `https://yourcompany.ghe.com/settings/tokens` — not on github.com. Tokens are not valid across instances. See [GitHub Enterprise](#github-enterprise) below.
    </Note>

    **Fine-grained tokens** (recommended) — Create a [fine-grained token](https://github.com/settings/personal-access-tokens/new) with for example these permissions:

    * **Contents**: Read and write
    * **Metadata**: Read-only (required)
    * **Pull requests**: Read and write
    * **Issues**: Read and write

    **Classic tokens** — If you need simpler setup or access across multiple organizations, create a [classic token](https://github.com/settings/tokens/new) with the `repo` scope.

    See GitHub's [documentation on personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) for more details.
  </Step>

  <Step title="Configure in Abundly">
    Go to **Settings → Capabilities** and enable **GitHub**. Paste your personal access token.

    Leave **GitHub host** empty if you use github.com. On GitHub Enterprise, enter your instance's host name — for example `yourcompany.ghe.com` or `github.yourcompany.com`. Enter the host name only, without `https://` and without a path.

    If you want the agent to react to GitHub events (via webhooks), enter the repositories to watch in the **Watched repositories** field — for example, `owner/repo` or `myorg/myrepo`. Multiple repos can be comma-separated.
  </Step>

  <Step title="Set up webhooks (optional)">
    To trigger your agent when events happen in GitHub (new issues, pull requests, etc.), configure a webhook in each repository you're watching:

    1. Go to your repository → **Settings → Webhooks → Add webhook** (on GitHub Enterprise, on your own instance)
    2. Set the Payload URL to:
       ```
       https://service.abundly.ai/api/github/webhook
       ```
           <Note>
             Enterprise customers on a dedicated deployment will have a different base URL. Replace `service.abundly.ai` with your organization's service host, in the form `<your-tenant>.service.abundly.ai`.
           </Note>
    3. Set Content type to `application/json`
    4. Select which events should trigger the webhook (e.g., Issues, Pull requests, Pushes)
    5. Click **Add webhook**

    With webhooks configured, your agent will be notified whenever events happen in the repository. However, you also need to instruct the agent on what to do with these events — otherwise it will likely ignore them. For example, add to your agent's instructions: "When a new issue is created, analyze it and add appropriate labels."

    <Tip>
      Without webhooks, your agent can still work with GitHub — but only when you ask it to (via chat or scheduled tasks).
    </Tip>
  </Step>
</Steps>

## GitHub Enterprise

Both GitHub Enterprise products are supported. Enter your host name in the **GitHub host** field and Abundly detects which one you use — there is nothing else to configure.

| Product                              | Host looks like                                   | What to enter            |
| ------------------------------------ | ------------------------------------------------- | ------------------------ |
| GitHub.com                           | `github.com`                                      | Leave empty              |
| Enterprise Cloud with data residency | `yourcompany.ghe.com`                             | `yourcompany.ghe.com`    |
| Enterprise Server (self-hosted)      | Your own domain, such as `github.yourcompany.com` | `github.yourcompany.com` |

Two things are specific to Enterprise:

* **Create the token on your own instance.** A github.com token does not work against an Enterprise host, and the reverse is also true.
* **Use your instance for repository settings.** Watched repositories are still written as `owner/repo`, but you add webhooks in the repository settings on your own instance.

### IP allowlisting

If your enterprise restricts access by IP address — GitHub's own **IP allow list** setting on Enterprise Cloud, or your firewall in front of a self-hosted instance — allow Abundly's outbound IP address:

```
34.51.233.91
```

<Note>
  Enterprise customers connect from a different, dedicated IP address. If you're an enterprise customer and need to allowlist Abundly, [contact us](mailto:support@abundly.ai) and we'll provide your specific address.
</Note>

The IP allow list is an Enterprise Cloud feature and doesn't depend on data residency, so it can apply even when you leave the **GitHub host** field empty — an organization on Enterprise Cloud without data residency still uses github.com. GitHub.com Free, Pro, and Team accounts have no IP restrictions, so there is nothing to allowlist.

### Self-hosted reachability

These two requirements apply only to Enterprise Server. An instance that is reachable only inside your network cannot be used, because the connection has to work in both directions:

* Abundly calls your instance's API at `https://your-host/api/v3`, so the host must be reachable from the internet.
* Your instance calls Abundly at `https://service.abundly.ai/api/github/webhook` if you use webhooks, so it needs outbound access to that address. On a dedicated deployment, allowlist your own service host instead — `https://<your-tenant>.service.abundly.ai/api/github/webhook`.

<Note>
  Enterprise Cloud with data residency (`*.ghe.com`) is hosted by GitHub and reaches Abundly the same way github.com does, so neither reachability requirement applies to it.
</Note>
