---
title: GitHub
description: Integrate with GitHub to work with issues, pull requests, repositories, and releases.
---

Open, update and comment on GitHub issues, read and review pull requests, and look up repositories and releases.

Pick a saved connection in the **Credential** field, or create one from there. It signs in with a Bearer Token.

## What it does

The GitHub node works on four kinds of things (**Resource**):

* **Issue**: create, get, update, comment on, list or close issues.
* **Pull request**: get or list pull requests, comment on one, submit a review (approve, request changes, comment), or list the files it changes.
* **Repository**: get one repository, list your own repositories, or search all public ones.
* **Release**: get the latest release, or list releases.

Every operation that targets a repository takes **Owner** and **Repository** as two fields. List operations return 30 results by default (**Limit**, up to 100).

## When to use it

* File an issue from a page or a stack trace you just selected.
* Post a comment on a pull request from a review checklist.
* Check a project's latest release every morning and get notified when it changes.
* List open issues with a given label and summarize them with an AI node.

## Inputs and settings

Call the GitHub API yourself with the HTTP Request node, and pick the same connection in its **Credential** field.

* Split the repository address: for `github.com/octocat/hello-world`, **Owner** is `octocat` and **Repository** is `hello-world`.
* **Issue Number** and **Pull Request Number** are the number after `#`, for example `42`.
* On **Issue → List**, **Labels** is a comma-separated list such as `bug,urgent`; on **Create** and **Update**, **Labels** and **Assignees** are lists of names.
* **Review Body** is required when **Review Event** is **Request changes** or **Comment**.
* **Search Query** uses GitHub's search syntax, for example `topic:automation language:typescript stars:>100`.

## Outputs

* Issue, pull request, repository and release operations return the GitHub object, with fields such as `number`, `title`, `state` and `html_url` (the link to open it in the browser).
* List operations return a list, one entry per issue, pull request, file or release. GitHub counts pull requests as issues, so **Issue → List** can include them.
* **Repository → Search** returns `total_count` and the matches in `items`.

## Dependencies and credentials

* **Credential** (connection, Bearer Token): required. See [Connect GitHub](/app/connections/github/).

Use a GitHub **personal access token**. A fine-grained token is safest: on GitHub, open **Settings → Developer settings → Personal access tokens → Fine-grained tokens**, limit it to the repositories you need, and give it only the permissions you use, for example **Issues: Read and write** or **Pull requests: Read and write** (plus **Contents: Read** for releases). A classic token also works but opens your whole account. See [Create a credential](/app/connections/create/).

## Example workflow

1. A [Context Menu](/nodes/builtin/trigger/contextmenu/) trigger runs when you right-click selected text.
2. [Get Selected Text](/nodes/extension/getselectedtext/) reads the error message you selected.
3. [Basic LLM Chain](/nodes/builtin/ai/aiagents/basicllmchainnode/) writes a short bug title and description.
4. GitHub, **Issue → Create**, **Owner** `my-org`, **Repository** `my-app`, **Title** and **Body** from the previous step, **Labels** `bug`.

## Common issues

* **"GitHub API Error: Bad credentials".** The token is wrong, expired or revoked. Create a new one and update the credential.
* **"GitHub API Error: Not Found" on a repository you can see.** The token does not include that repository, or lacks the permission for this operation. Edit the token on GitHub.
* **"GitHub API Error: rate limit exceeded".** You made too many requests in the last hour. Wait, or run the workflow less often.
* **"GitHub API Error: Validation Failed".** A value is not accepted, for example an unknown assignee, or an empty **Review Body** with **Request changes**.

## Related nodes

* [Linear](/nodes/builtin/integration/linear/): issues in Linear instead.
* [RSS Feed Read](/nodes/builtin/core/rss-feed-read/): follow a repository's release feed without a token.
* [Http Request](/nodes/builtin/core/http-request/): call GitHub API endpoints this node does not cover.