DocumentationWorkflowsApps and services
GitHub Issues node
Issues in a repo: search, read, create, comment, close. Plus labels, assignees, milestones and locks. Learn how to configure it, map inputs and outputs, run a test and resolve common errors.
10 min readUpdated
What this node does
Issues in a repo: search, read, create, comment, close. Plus labels, assignees, milestones and locks.
Use GitHub Issues as a clearly defined step in an anymize workflow.
- Processes one input.
- Provides one output for following steps.
- Runs as a regular step in the flow.
Set up the node
- 01Open a workflow and add GitHub Issues from the node catalog.
- 02If your GitHub account is not connected yet, connect it right in the node panel or under Connectors.
- 03Complete the required fields and map values from previous steps.
- 04Run the node with a small test record and inspect its output.
- 05Connect the successful output and activate the workflow after an end-to-end test.
Operations and modes
Choose the required function in Action. The panel then shows the relevant settings.
- List issues
- Read issue
- Search issues
- Create issue
- Update issue
- Write comment
- List comments
- Edit comment
- Delete comment
- Add labels
- Remove label
- Replace labels
- Add assignees
- Remove assignees
- Lock conversation
- Unlock conversation
- Repo labels
- List milestones
Settings
| Field | Meaning | Area |
|---|---|---|
| Action | Choices: List issues, Read issue, Search issues, Create issue, Update issue, Write comment, List comments, Edit comment, Delete comment, Add labels, Remove label, Replace labels, Add assignees, Remove assignees, Lock conversation, Unlock conversation, Repo labels, List milestones | Standard |
| Owner (user or org) | The GitHub name the repo belongs to, e.g. anymize. | Standard |
| Repository | Name of the repository, e.g. hello-world. | Standard |
| Status | Choices: Open, Closed, All | Standard |
| Labels | Separate multiple with a comma, e.g. bug, urgent. | Standard |
| Assignee | GitHub name. * for anything assigned, none for unassigned. | Standard |
| Created by | GitHub name of the person who created the issue. | Standard |
| Changed since | Only entries changed since this time, e.g. 2026-01-31T00:00:00Z. | Standard |
| Sort by | Choices: Recently created, Recently updated, Most comments | Standard |
| Include pull requests | Configure this value in the node panel. | Standard |
| Count (max. 100) | How many entries to load per request. No effect with "Load all pages", which always loads 100 per page. | Standard |
| Load all pages | Keeps loading pages until everything is there, up to 1000 entries. | Standard |
| Page | Which page to start from, e.g. the next page from the previous request. Empty: the first one. No effect with "Load all pages". | Standard |
| Issue no. | The number of the issue or pull request. | Standard |
| Search term | A keyword is enough. Pros can use filters, e.g. is:open assignee:@me label:bug. | Standard |
| Title | Configure this value in the node panel. | Standard |
| Text | The content of the issue or comment. Markdown is supported. | Standard |
| Assignees | GitHub names, separated by commas, e.g. octocat. | Standard |
| Milestone no. | Configure this value in the node panel. | Standard |
| New status | Choices: Don't change, Open, Closed | Standard |
| Reason | Only when closing or reopening. | Standard |
| Comment ID | Configure this value in the node panel. | Standard |
| Label | Configure this value in the node panel. | Standard |
| Reason | Choices: No reason, Resolved, Off topic, Too heated, Spam | Standard |
| GitHub account | Leave empty and the step uses your connected GitHub account. | Standard |
| Run once per item | Off (default): the node runs once for the whole input. On: if it receives several items (e.g. from Split Out), it runs once PER item, and {{ $json }} is that one item each time. This is how you work through a file list entry by entry. | Standard |
| If one item fails | "Skip" writes an `error` field for the failed item and keeps processing the rest, instead of losing the whole run to a single unreadable file. | Standard |
| Pause between items (milliseconds) | Wait before every run except the first. 1000 = 1 second per item. Useful when the other side would otherwise throttle you. Maximum 300000 (5 minutes). | Standard |
Inputs and outputs
| Input | Meaning | Type |
|---|---|---|
| Standard | Receives the complete result from the previous step. | JSON |
| Output | Meaning | Type |
|---|---|---|
| Standard | Makes the result available to the next step as JSON. | JSON |
This node can process lists item by item. Error handling and the delay between items are available in advanced settings.
Example and test run
Bug triage: open issues with label "bug": begin with a small, recognizable record. Inspect the output and only map fields that are present there.
Test-run example
{
"owner": "octocat",
"repo": "hello-world"
}Access and security
The node works with your own connected GitHub account. It only sees and changes what this account is allowed to. Check the permissions shown when you connect. The matching area (Issues, Pull Requests, Repos) must also be switched on in the settings of your GitHub connection under Connectors. All areas are on by default.
"Allowed actions" in the settings of your GitHub connection under Connectors also applies to this node and is checked on every run. With "Read only" or "Read and draft", only the read actions run: List issues, Read issue, Search issues, List comments, Repo labels, List milestones. These actions need "Allow changes": Create issue, Update issue, Write comment, Edit comment, Delete comment, Add labels, Remove label, Replace labels, Add assignees, Remove assignees, Lock conversation, Unlock conversation.
Keys and credentials belong in Workflow Secrets or your connected accounts. Never paste them as plain text into workflow fields, test data or descriptions.
Troubleshooting
- No output: inspect the latest run and confirm that the previous node returned the expected fields.
- Empty variable: open the previous step output and use a field name from the real test data.
- Connection rejected: reconnect the service and grant the permissions required by this step.
- Action blocked: set "Allowed actions" of the connection under Connectors to "Allow changes", or pick a read action.
- List processed once: enable per-item execution in advanced settings.