Reference · Tools

GitHub

Manage files, issues, releases, reviews, repositories, organizations, users, and workflows via the GitHub REST API.

Action (binary) Development v1 Binary data

The GitHub node connects directly to the GitHub REST API to read and write across your repositories — files, issues, releases, reviews, and Actions workflows. You could, for example, automatically open a GitHub issue whenever an upstream monitoring alert fires, attach a binary asset to a release, or dispatch a workflow run from another automation. It covers both individual user operations and organization-level tasks in one node.

Node type
Action (binary)
Parameters
50
Outputs
Output, Error
Credentials
GitHub API

GitHub

Manage GitHub repos, files, issues, releases, reviews, and Actions workflows

Overview

The GitHub tool provides access to the GitHub REST API v3. It supports file operations (create, edit, delete, get with binary download, and list files in repositories), issue management (create, edit, get, comment, and lock issues), release management (create, get, list, update, and delete releases), pull request reviews (create, get, list, and update reviews), repository info (details, issues, pull requests, license, community profile, popular paths, and referrers), user operations (list repos, get assigned issues, invite to an organization), organization repository listing, and GitHub Actions workflows (dispatch, enable, disable, get, list, and usage). File Get downloads file content as binary data; File Create and Edit can upload binary data.

Category: Development
Tool Name: github
Version: 1

Appearance: Icon: si-github | Color: #24292E

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires GitHub API credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Filefile
Issueissue
Organizationorganization
Releaserelease
Repositoryrepository
Reviewreview
Useruser
Workflowworkflow

Operations

Each resource offers its own set of operations.

ResourceOperationValueDescription
FileCreatecreateCreate a new file in a repository
FileDeletedeleteDelete a file from a repository
FileEditeditEdit an existing file in a repository
FileGetgetGet the content of a single file
FileListlistList contents of a folder
IssueCreatecreateCreate a new issue
IssueCreate CommentcreateCommentCreate a comment on an issue
IssueEditeditEdit an issue
IssueGetgetGet a single issue
IssueLocklockLock an issue
OrganizationGet RepositoriesgetRepositoriesReturns all repositories of an organization
ReleaseCreatecreateCreate a new release
ReleaseDeletedeleteDelete a release
ReleaseGetgetGet a release
ReleaseGet ManygetAllGet many releases
ReleaseUpdateupdateUpdate a release
RepositoryGetgetGet a repository
RepositoryGet IssuesgetIssuesGet issues of a repository
RepositoryGet LicensegetLicenseGet the license of a repository
RepositoryGet ProfilegetProfileGet the community profile
RepositoryGet Pull RequestsgetPullRequestsGet pull requests of a repository
RepositoryList Popular PathslistPopularPathsGet top 10 popular content paths
RepositoryList ReferrerslistReferrersGet top 10 referring domains
ReviewCreatecreateCreate a review
ReviewGetgetGet a review
ReviewGet ManygetAllGet many reviews
ReviewUpdateupdateUpdate a review
UserGet RepositoriesgetRepositoriesReturns a user’s repositories
UserGet IssuesgetUserIssuesReturns issues assigned to the authenticated user
UserInviteinviteInvite a user to an organization
WorkflowDisabledisableDisable a workflow
WorkflowDispatchdispatchDispatch a workflow event
WorkflowEnableenableEnable a workflow
WorkflowGetgetGet a workflow
WorkflowGet UsagegetUsageGet the usage of a workflow
WorkflowListlistList workflows

Parameters

File: Create

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
File Path (filePath)stringYesThe full file path of the file. Supports expressions.
Binary FilebooleanNofalseWhether the data to upload should be taken from a binary field.
File ContentstringYesThe text content of the file. Supports expressions like {{ $json.body }}. (shown when Binary File is false)
Input Binary Field (binaryPropertyName)stringYesdataThe name of the input binary field containing the file to be written. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Binary File is true)
Commit MessagestringYesThe commit message for the file operation. Supports expressions.
Additional Parameters (additionalParameters)fixedCollectionNo{}Additional fields for the commit.
— AuthorNoThe commit author.
— — NamestringNoThe name of the author of the commit.
— — EmailstringNoThe email of the author of the commit.
— BranchNoThe branch to commit to.
— — BranchstringNoThe branch to commit to. Defaults to the repository’s default branch.
— CommitterNoThe commit committer.
— — NamestringNoThe name of the committer.
— — EmailstringNoThe email of the committer.

File: Delete

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
File Path (filePath)stringYesThe full file path of the file. Supports expressions.
Commit MessagestringYesThe commit message for the file operation. Supports expressions.
Additional Parameters (additionalParameters)fixedCollectionNo{}Additional fields for the commit.
— AuthorNoThe commit author.
— — NamestringNoThe name of the author of the commit.
— — EmailstringNoThe email of the author of the commit.
— BranchNoThe branch to commit to.
— — BranchstringNoThe branch to commit to. Defaults to the repository’s default branch.
— CommitterNoThe commit committer.
— — NamestringNoThe name of the committer.
— — EmailstringNoThe email of the committer.

File: Edit

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
File Path (filePath)stringYesThe full file path of the file. Supports expressions.
Binary FilebooleanNofalseWhether the data to upload should be taken from a binary field.
File ContentstringYesThe text content of the file. Supports expressions like {{ $json.body }}. (shown when Binary File is false)
Input Binary Field (binaryPropertyName)stringYesdataThe name of the input binary field containing the file to be written. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when Binary File is true)
Commit MessagestringYesThe commit message for the file operation. Supports expressions.
Additional Parameters (additionalParameters)fixedCollectionNo{}Additional fields for the commit.
— AuthorNoThe commit author.
— — NamestringNoThe name of the author of the commit.
— — EmailstringNoThe email of the author of the commit.
— BranchNoThe branch to commit to.
— — BranchstringNoThe branch to commit to. Defaults to the repository’s default branch.
— CommitterNoThe commit committer.
— — NamestringNoThe name of the committer.
— — EmailstringNoThe email of the committer.

File: Get

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
File Path (filePath)stringYesThe full file path of the file. Supports expressions.
As Binary PropertybooleanNotrueWhether to return the file content as binary data instead of the raw API response.
Put Output File in Field (binaryPropertyName)stringYesdataThe name of the output binary field. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. (shown when As Binary Property is true)
Additional Parameters (additionalParameters)collectionNo{}Additional fields.
— ReferencestringNoThe name of the commit/branch/tag. Defaults to the repository’s default branch.

File: List

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Path (filePath)stringNoThe path of the folder to list. Leave empty for the repository root. Supports expressions.

Issue: Create

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
TitlestringYesThe title of the issue. Supports expressions like {{ $json.title }}.
Body (body)stringNoThe body of the issue. Supports expressions.
LabelsstringNoComma-separated list of label names to add to the issue.
AssigneesstringNoComma-separated list of usernames to assign.

Issue: Create Comment

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Issue NumbernumberYes0The number of the issue. Supports expressions.
Comment BodystringYesThe body of the comment. Supports expressions.

Issue: Edit

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Issue NumbernumberYes0The number of the issue. Supports expressions.
Edit FieldscollectionNo{}Fields to update on the issue. Only the fields you add are sent.
— TitlestringNoThe title of the issue.
— BodystringNoThe body of the issue.
— StateoptionsNoopenThe state to move the issue to.
Options: open, closed
— State ReasonoptionsNocompletedWhy the issue changed state.
Options: completed, not_planned, reopened
— LabelsstringNoComma-separated label names.
— AssigneesstringNoComma-separated usernames.

Issue: Get

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Issue NumbernumberYes0The number of the issue. Supports expressions.

Issue: Lock

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Issue NumbernumberYes0The number of the issue. Supports expressions.
Lock ReasonoptionsNoresolvedThe reason for locking the issue.
Options: off-topic, too heated, resolved, spam

Organization: Get Repositories

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe organization whose repositories to list. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Release: Create

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
TagstringYesThe tag of the release. Supports expressions like {{ $json.version }}.
Additional Fields (additionalFields)collectionNo{}Optional release fields.
— NamestringNoThe display name of the release.
— BodystringNoThe release notes.
— DraftbooleanNofalseWhether to create the release as a draft.
— PrereleasebooleanNofalseWhether to mark the release as a prerelease.
— Target CommitishstringNoThe branch or commit the tag is created from.

Release: Delete

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Release IDstringYesThe ID of the release. Supports expressions.

Release: Get

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Release IDstringYesThe ID of the release. Supports expressions.

Release: Get Many

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Release: Update

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Release IDstringYesThe ID of the release. Supports expressions.
Additional Fields (additionalFields)collectionNo{}The release fields to change. Only the fields you add are sent.
— NamestringNoThe display name of the release.
— BodystringNoThe release notes.
— Tag NamestringNoThe tag the release points at.
— DraftbooleanNofalseWhether the release is a draft.
— PrereleasebooleanNofalseWhether the release is a prerelease.
— Target CommitishstringNoThe branch or commit the tag is created from.

Repository: Get

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.

Repository: Get Issues

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
Filters (getRepositoryIssuesFilters)collectionNo{}Narrow the returned issues.
— AssigneestringNoOnly issues assigned to this user.
— CreatorstringNoOnly issues opened by this user.
— MentionedstringNoOnly issues mentioning this user.
— LabelsstringNoComma-separated label names.
— Updated SincestringNoISO 8601 datetime — return only issues updated at or after this time.
— StateoptionsNoopenWhich issue states to include.
Options: all, closed, open
— SortoptionsNocreatedWhat to sort the issues by.
Options: created, updated, comments
— DirectionoptionsNodescSort direction.
Options: asc, desc

Repository: Get License

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.

Repository: Get Profile

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.

Repository: Get Pull Requests

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
Filters (getRepositoryPullRequestsFilters)collectionNo{}Narrow the returned pull requests.
— StateoptionsNoopenWhich pull request states to include.
Options: all, closed, open
— SortoptionsNocreatedWhat to sort the pull requests by.
Options: created, updated, popularity, long-running
— DirectionoptionsNodescSort direction.
Options: asc, desc
ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.

Repository: List Referrers

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.

Review: Create

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
PR NumbernumberYes0The number of the pull request. Supports expressions.
EventoptionsNoapproveThe review action to perform.
Options: approve, requestChanges, comment, pending
Body (reviewBody)stringNoThe body of the review (required for Request Changes or Comment events). (shown when Event is requestChanges, comment)
Additional Fields (reviewAdditionalFields)collectionNo{}Optional review fields.
— Commit IDstringNoThe SHA of the commit that needs a review.

Review: Get

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
PR NumbernumberYes0The number of the pull request. Supports expressions.
Review IDstringYesThe ID of the review. Supports expressions.

Review: Get Many

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
PR NumbernumberYes0The number of the pull request. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

Review: Update

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
PR NumbernumberYes0The number of the pull request. Supports expressions.
Review IDstringYesThe ID of the review. Supports expressions.
Body (reviewUpdateBody)stringNoThe body of the review. Supports expressions.

User: Get Repositories

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe user whose repositories to list. Supports expressions.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)

User: Get Issues

ParameterTypeRequiredDefaultDescription
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo50Max number of results to return. (shown when Return All is false)
Filters (getUserIssuesFilters)collectionNo{}Narrow the returned issues.
— MentionedstringNoOnly issues mentioning this user.
— LabelsstringNoComma-separated label names.
— Updated SincestringNoISO 8601 datetime — return only issues updated at or after this time.
— StateoptionsNoopenWhich issue states to include.
Options: all, closed, open
— SortoptionsNocreatedWhat to sort the issues by.
Options: created, updated, comments
— DirectionoptionsNodescSort direction.
Options: asc, desc

User: Invite

ParameterTypeRequiredDefaultDescription
OrganizationstringYesThe GitHub organization to invite the user to. Supports expressions.
EmailstringYesThe email address of the user to invite. Supports expressions like {{ $json.email }}.

Workflow: Disable

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Workflow IDstringYesThe ID or filename of the workflow (e.g. 12345678 or main.yml). Supports expressions.

Workflow: Dispatch

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Workflow IDstringYesThe ID or filename of the workflow (e.g. 12345678 or main.yml). Supports expressions.
RefstringYesmainThe git reference for the workflow dispatch (branch or tag name). Supports expressions.
InputsjsonNo{}JSON object with input parameters for the workflow. Must be valid JSON.

Workflow: Enable

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Workflow IDstringYesThe ID or filename of the workflow (e.g. 12345678 or main.yml). Supports expressions.

Workflow: Get

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Workflow IDstringYesThe ID or filename of the workflow (e.g. 12345678 or main.yml). Supports expressions.

Workflow: Get Usage

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.
Workflow IDstringYesThe ID or filename of the workflow (e.g. 12345678 or main.yml). Supports expressions.

Workflow: List

ParameterTypeRequiredDefaultDescription
Repository OwnerstringYesThe owner (user or organization) of the repository. Supports expressions.
Repository NamestringYesThe name of the repository. Supports expressions.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

This node replaces the input item’s JSON with the GitHub API response. Fields the item arrived with do not pass through, so capture anything a later node needs before this node or re-join it afterwards. Binary data on the input item is forwarded.

The one exception is File Get with As Binary Property on: there the item JSON passes through untouched and the file is added as a binary property under the field you named, alongside any binary the item already carried. The binary’s file name comes from the file’s path in the repository and its MIME type is detected from that name.

Operations that fan out — one output item per record instead of one per input item:

file:list, repository:getIssues, repository:getPullRequests, repository:listPopularPaths, repository:listReferrers, release:getAll, review:getAll, user:getRepositories, user:getUserIssues, organization:getRepositories, workflow:list.

An empty result from any of them produces no output items at all.

Everything else emits exactly one item carrying the API object — the created issue, the updated release, the repository, the workflow, and so on. Operations where GitHub returns no body instead emit { "success": true }; Workflow Dispatch emits { "success": true, "dispatched": true }.

Reference the response downstream by expression, e.g. {{ $json.number }} after creating an issue, {{ $json.html_url }} after creating a release, or {{ $json.name }} after listing files.

Usage Examples

  • Download a file from a GitHub repository as binary data
  • Create a new file in a repository from binary data
  • Create an issue in a GitHub repository
  • List all releases for a repository
  • Dispatch a GitHub Actions workflow
  • Get pull request reviews

Example Configuration

Create a text file and commit it:

{
  "type": "github",
  "parameters": {
    "resource": "file",
    "operation": "create",
    "owner": "octocat",
    "repository": "Hello-World",
    "filePath": "docs/readme.md",
    "binaryData": false,
    "fileContent": "# Hello World\nThis is a test file.",
    "commitMessage": "Add readme file"
  }
}

Edit a file on a branch with explicit commit author details:

{
  "type": "github",
  "parameters": {
    "resource": "file",
    "operation": "edit",
    "owner": "octocat",
    "repository": "Hello-World",
    "filePath": "docs/readme.md",
    "binaryData": false,
    "fileContent": "# Hello World\nUpdated content.",
    "commitMessage": "Update readme file",
    "additionalParameters": {
      "author": { "name": "John Doe", "email": "john@example.com" },
      "branch": { "branch": "feature-branch" }
    }
  }
}

Download a file as binary data:

{
  "type": "github",
  "parameters": {
    "resource": "file",
    "operation": "get",
    "owner": "octocat",
    "repository": "Hello-World",
    "filePath": "image.png",
    "asBinaryProperty": true,
    "binaryPropertyName": "fileData"
  }
}

Create an issue with labels and assignees:

{
  "type": "github",
  "parameters": {
    "resource": "issue",
    "operation": "create",
    "owner": "octocat",
    "repository": "Hello-World",
    "title": "{{ $json.title }}",
    "body": "There seems to be a bug in the application.",
    "labels": "bug,urgent",
    "assignees": "octocat,contributor"
  }
}

Edit an existing issue:

{
  "type": "github",
  "parameters": {
    "resource": "issue",
    "operation": "edit",
    "owner": "octocat",
    "repository": "Hello-World",
    "issueNumber": 123,
    "editFields": {
      "title": "Updated bug report",
      "body": "Updated description of the bug.",
      "state": "open",
      "labels": "bug,high-priority"
    }
  }
}

List open bug issues, newest first:

{
  "type": "github",
  "parameters": {
    "resource": "repository",
    "operation": "getIssues",
    "owner": "octocat",
    "repository": "Hello-World",
    "returnAll": false,
    "limit": 50,
    "getRepositoryIssuesFilters": {
      "state": "open",
      "labels": "bug",
      "sort": "created",
      "direction": "desc"
    }
  }
}

Cut a release:

{
  "type": "github",
  "parameters": {
    "resource": "release",
    "operation": "create",
    "owner": "octocat",
    "repository": "Hello-World",
    "releaseTag": "v1.0.0",
    "additionalFields": {
      "name": "Version 1.0.0",
      "body": "First stable release",
      "draft": false,
      "prerelease": false
    }
  }
}

Request changes on a pull request:

{
  "type": "github",
  "parameters": {
    "resource": "review",
    "operation": "create",
    "owner": "octocat",
    "repository": "Hello-World",
    "pullRequestNumber": 456,
    "event": "requestChanges",
    "reviewBody": "Please fix the coding style issues.",
    "reviewAdditionalFields": {
      "commitId": "abc123def456"
    }
  }
}

Invite someone to an organization:

{
  "type": "github",
  "parameters": {
    "resource": "user",
    "operation": "invite",
    "organization": "my-org",
    "email": "{{ $json.email }}"
  }
}

List the issues assigned to the authenticated user:

{
  "type": "github",
  "parameters": {
    "resource": "user",
    "operation": "getUserIssues",
    "returnAll": false,
    "limit": 20,
    "getUserIssuesFilters": {
      "state": "open",
      "sort": "updated",
      "direction": "desc"
    }
  }
}

Dispatch a GitHub Actions workflow with inputs:

{
  "type": "github",
  "parameters": {
    "resource": "workflow",
    "operation": "dispatch",
    "owner": "octocat",
    "repository": "Hello-World",
    "workflowId": "deploy.yml",
    "ref": "main",
    "inputs": "{\"environment\": \"production\", \"version\": \"{{ $json.version }}\"}"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage GitHub repositories, files, issues, releases, reviews, users, organizations, and Actions workflows via the REST API.

Behavior notes

  • The item JSON is replaced, not merged. Only File Get in binary mode keeps the incoming fields. Plan for that when chaining GitHub nodes together — a second node can still read the first node’s output, but not the data that came before it.
  • Repository Owner doubles as the account name. For Organization Get Repositories it is the organization; for User Get Repositories it is the user. It is hidden for User Invite and User Get Issues, which do not target a repository.
  • User Get Issues works on the authenticated account — the one the credential belongs to — and takes no owner or repository.
  • Binary uploads are base64 encoded for you, and File Get in binary mode decodes GitHub’s base64 back into real bytes. Pointing File Get at a folder path fails with an explicit error.
  • Deleting a file resolves its SHA first, so you only supply the path, the commit message and (optionally) the branch.
  • Commit author, branch and committer are nested objects under Additional Parameters — for example additionalParameters.branch.branch is the branch name. Leave the branch out to commit to the repository’s default branch.
  • Edit-style collections send only what you fill in. Issue Edit Fields and Release Additional Fields are partial updates; omitted fields are left untouched.
  • Review bodies are required for two events. requestChanges and comment need a body; approve and pending do not.
  • Return All pages through every result. With it off, the request is capped at Limit, which GitHub itself limits to 100 per page.
  • Workflow Dispatch only starts a run. GitHub returns no body, so the item reports dispatched: true rather than a run ID; a missing workflow fails with an explicit “could not be found” error.

Frequently asked questions

What happens to the data from earlier nodes when I chain two GitHub nodes together?

Each GitHub node replaces the item's JSON entirely — it does not merge its output with whatever came before. The one exception is File Get in binary mode, which preserves the incoming fields alongside the downloaded file. If you need data from an earlier step in a later GitHub node, read it from that node's output directly, not from the original incoming item.

How do I upload or download binary files like images or zip archives?

File Create and File Edit both accept binary data as input — the node handles the base64 encoding that the GitHub API requires. File Get works in the opposite direction: it fetches a file and decodes GitHub's base64 back into real bytes. Note that pointing File Get at a folder path rather than a file path will fail with an explicit error.

I triggered a Workflow Dispatch but got no run ID back — did it work?

That is expected. GitHub returns an empty response body for a successful dispatch, so the node reports `dispatched: true` instead of a run ID. If the workflow file cannot be found, you will get an explicit 'could not be found' error rather than a silent failure. To track the triggered run you would need a separate API call to list workflow runs.

What credential does this node require, and does 'User Get Issues' need a repository specified?

The node uses a GitHub API credential (type: githubApi). User Get Issues is the one operation that takes no owner or repository at all — it returns issues assigned to whichever GitHub account the credential belongs to. Every other operation that targets repository content requires the Repository Owner field, which doubles as the organization name for organization-scoped operations.

When creating a pull request review, is a body always required?

Only for the `requestChanges` and `comment` events — both require a body text. The `approve` and `pending` events do not. Submitting a `requestChanges` review without a body will result in an API error, so make sure your workflow conditionally populates the body field when those events are used.

Build with the GitHub node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need GitHub API credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.