How to enable
Go to Settings → Capabilities and enable GitHub. Then choose how the agent signs in — a personal access token or a GitHub App — 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 — “Every morning, go through the issues opened since yesterday and add appropriate labels”
- Dependency Updates — “Check for outdated dependencies and create a PR with updates”
Choose how the agent signs in
- Personal access token — quickest to set up. The agent acts as the person who created the token, with that person’s access.
- GitHub App — for organizations that don’t allow personal tokens. The agent acts as the app itself, limited to the app’s permissions and the repositories it is installed on. See Connect with a GitHub App.
How to connect with a personal access token
1
Create a personal access token
Go to GitHub Settings → Developer settings → Personal access tokens and create a new token. GitHub offers two types:Fine-grained tokens (recommended) — Create a fine-grained token with for example these permissions:
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 below.- Contents: Read and write
- Metadata: Read-only (required)
- Pull requests: Read and write
- Issues: Read and write
repo scope.See GitHub’s documentation on personal access tokens for more details.2
Configure in Abundly
Go to Settings → Capabilities and enable GitHub. The capability has two cards: Outgoing (API calls) lets the agent call the GitHub API, Incoming (webhooks) wakes it on pull requests. Tick Outgoing (API calls), choose Personal access token as the authentication method, click Add Secret, paste your personal access token, and give the secret a name. The token is encrypted and stored at the workspace level, so other agents can reuse the same secret and you rotate it in one place.If you entered a token directly in an earlier version, it keeps working. Use Save as workspace secret on the capability card whenever you want to switch: the stored token is copied into a new secret, so you never have to enter it again.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), tick Incoming (webhooks) and enter the repositories to watch in the Watched repositories field — for example, owner/repo or myorg/myrepo. Multiple repos can be comma-separated. An agent can have only one of the two cards ticked: outgoing-only agents call GitHub when asked, incoming-only agents just react to pull requests.3
Set up webhooks (optional)
To trigger your agent when a pull request is opened in GitHub, configure a webhook in each repository you’re watching:
- Go to your repository → Settings → Webhooks → Add webhook (on GitHub Enterprise, on your own instance)
- Set the Payload URL to:
Enterprise customers on a dedicated deployment will have a different base URL. Replace
service.abundly.aiwith your organization’s service host, in the form<your-tenant>.service.abundly.ai. - Set Content type to
application/json - In Secret, enter a long random string. Save the same string as a Webhook signing secret in your workspace’s Secrets and select it in the Webhook secret field on the capability (the capability shows the webhook URL next to that field)
- Under Which events would you like to trigger this webhook?, choose Let me select individual events and tick only Pull requests
- Click Add webhook
Connect with a GitHub App
1
Create and install the app
In GitHub, go to your organization’s Settings → Developer settings → GitHub Apps and create an app. Give it the repository permissions your agent needs (for example Contents, Pull requests and Issues), then install it on the repositories the agent should reach.Note the App ID shown at the top of the app’s settings page. Under Private keys, generate a key and download the
.pem file.The installation ID is on the account the app is installed on, not on the app itself: for an organization, go to Organization settings → Third-party access → GitHub Apps; for a user account, Settings → Applications → Installed GitHub Apps. Click Configure next to the app — the installation ID is the number at the end of the page’s address, …/settings/installations/12345678.2
Configure in Abundly
In the GitHub capability, tick Outgoing (API calls), choose GitHub App as the authentication method and add a GitHub App workspace secret with the App ID, installation ID and the contents of the
.pem file. Abundly uses the key to request short-lived tokens for the app as the agent needs them; the key itself is never sent to GitHub.Optionally narrow what this agent can do with the app:- Limit to repositories — for example
api, web. The agent can only reach these, even if the app is installed on more. - Limit permissions — for example
contents:read, pull_requests:write. This can only narrow the app’s own permissions, never add to them.
3
Webhooks (optional)
Instead of adding a webhook to every repository, you can use the app’s own webhook: on the app’s settings page, enable Webhook, set the URL to
https://service.abundly.ai/api/github/webhook (on a dedicated deployment, https://<your-tenant>.service.abundly.ai/api/github/webhook; the capability shows the URL next to the Webhook secret field), set a Webhook secret, and subscribe to Pull request events under Permissions & events. Then tick Incoming (webhooks) on the capability, save the same secret as a Webhook signing secret in your workspace’s Secrets, select it in the Webhook secret field, and list the repositories to react to under Watched repositories. As with repository webhooks, the secret is required whenever repositories are watched, and only newly opened pull requests reach the agent — for anything else, use the agent’s own webhook endpoint.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.
Two things are specific to Enterprise:
- Create the token or app on your own instance. A github.com token or app 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:Enterprise customers connect from a different, dedicated IP address. If you’re an enterprise customer and need to allowlist Abundly, contact us and we’ll provide your specific address.
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/webhookif 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.
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.
