GitHub
Interact with GitHub repositories from a workflow — create issues and pull requests, comment on issues, list repos, and read or write files via the GitHub REST API.
Create a GitHub Personal Access Token with the scopes required for your operations (typically repo for private repositories, or public_repo for public repos only).
Add it as an environment variable on the Env Vars page:
| Variable | Description |
|----------|-------------|
| GITHUB_TOKEN | GitHub Personal Access Token (e.g. ghp_...) |
Each node run executes a single operation.
Create a new issue in a repository.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | enum | Yes | create_issue |
| owner | string | Yes | Repository owner (user or organization). |
| repo | string | Yes | Repository name. |
| title | string | Yes | Issue title. Supports {{ }} bindings. |
| body | string | No | Issue body (Markdown). |
| labels | string | No | Comma-separated label names. |
Add a comment to an existing issue.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | enum | Yes | comment_on_issue |
| owner | string | Yes | Repository owner. |
| repo | string | Yes | Repository name. |
| issue_number | number | Yes | Issue number to comment on. |
| body | string | Yes | Comment body (Markdown). |
Open a pull request.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | enum | Yes | create_pr |
| owner | string | Yes | Repository owner. |
| repo | string | Yes | Repository name. |
| title | string | Yes | Pull request title. |
| body | string | No | Pull request description. |
| head_branch | string | Yes | Source branch containing your changes. |
| base_branch | string | No | Target branch (default main). |
List repositories accessible to the authenticated token.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | enum | Yes | list_repos |
Read a file from a repository.
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | enum | Yes | get_file |
| owner | string | Yes | Repository owner. |
| repo | string | Yes | Repository name. |
| file_path | string | Yes | Path to the file in the repo (e.g. src/index.ts). |
Create or update a file in a repository (commits directly to a branch).
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | enum | Yes | create_or_update_file |
| owner | string | Yes | Repository owner. |
| repo | string | Yes | Repository name. |
| file_path | string | Yes | Path for the file in the repo. |
| file_content | string | Yes | File content to write. |
| commit_message | string | Yes | Commit message for the change. |
Connect a GitHub node to an AI Agent Tools handle to let the agent interact with your repositories.
Use Allowed Operations (Agent) to restrict which GitHub actions the agent can perform — for example, allow create_issue and comment_on_issue but not create_or_update_file. This setting is excluded from the tool schema.
Example agent use cases:
- "Create a bug report" — agent calls
create_issuewith a title and body derived from the conversation. - "Comment on the PR" — agent calls
comment_on_issuewith the issue/PR number and a review comment.
When used as a tool, the agent supplies operation and the relevant fields as tool arguments.
All operations emit a result object on the result handle, accessible downstream as {{ github.* }}:
| Field | Type | Description |
|-------|------|-------------|
| success | boolean | Whether the operation succeeded |
| url | string | URL to the created resource (issue, PR, or file) when applicable |
| data | object | Raw GitHub API response payload |
| error | string | Error message if success is false |
{
"success": true,
"url": "https://github.com/owner/repo/issues/42",
"data": { "number": 42, "title": "Bug report", "state": "open" },
"error": null
}
