The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"nodes": [
{
"name": "Github Trigger",
"type": "n8n-nodes-base.githubTrigger",
"position": [
450,
300
],
"parameters": {
"owner": "harshil1712",
"events": [
"issue_comment",
"issues"
],
"repository": "build-discord-bot",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Github Trigger",
"type": "n8n-nodes-base.githubTrigger",
"position": [
450,
300
],
"parameters": {
"owner": "harshil1712",
"events": [
"issue_comment",
"issues"
],
"repository": "build-discord-bot",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
650,
300
],
"parameters": {
"rules": {
"rules": [
{
"value2": "opened"
},
{
"output": 1,
"value2": "created"
}
]
},
"value1": "={{$json[\"body\"][\"action\"]}}",
"dataType": "string"
},
"typeVersion": 1
},
{
"name": "IF no assignee?",
"type": "n8n-nodes-base.if",
"position": [
1050,
150
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"assignees\"].length}}",
"operation": "equal"
}
],
"string": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"body\"]}}",
"value2": "/[a,A]ssign[\\w*\\s*]*me/gm",
"operation": "regex"
}
]
}
},
"typeVersion": 1
},
{
"name": "NoOp",
"type": "n8n-nodes-base.noOp",
"position": [
1250,
250
],
"parameters": {},
"typeVersion": 1
},
{
"name": "IF wants to work?",
"type": "n8n-nodes-base.if",
"position": [
850,
500
],
"parameters": {
"conditions": {
"number": [],
"string": [
{
"value1": "={{$json[\"body\"][\"comment\"][\"body\"]}}",
"value2": "/[a,A]ssign[\\w*\\s*]*me/gm",
"operation": "regex"
}
]
}
},
"typeVersion": 1
},
{
"name": "IF not assigned?",
"type": "n8n-nodes-base.if",
"position": [
1050,
450
],
"parameters": {
"conditions": {
"number": [
{
"value1": "={{$json[\"body\"][\"issue\"][\"assignees\"].length}}",
"operation": "equal"
}
],
"string": []
}
},
"typeVersion": 1
},
{
"name": "Assign Issue Creator",
"type": "n8n-nodes-base.github",
"position": [
1250,
50
],
"parameters": {
"owner": "={{$node[\"Switch\"].json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "edit",
"editFields": {
"labels": [
{
"label": "assigned"
}
],
"assignees": [
{
"assignee": "={{$json.body.issue[\"user\"][\"login\"]}}"
}
]
},
"repository": "={{$node[\"Switch\"].json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{ $json[\"body\"][\"issue\"][\"number\"] }}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "<your credential>"
},
"typeVersion": 1
},
{
"name": "Add Comment",
"type": "n8n-nodes-base.github",
"position": [
1350,
600
],
"parameters": {
"body": "=Hey @{{$json[\"body\"][\"comment\"][\"user\"][\"login\"]}},\n\nThis issue is already assigned to {{$json[\"body\"][\"issue\"][\"assignee\"][\"login\"]}} \ud83d\ude42",
"owner": "={{$json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "createComment",
"repository": "={{$json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{$json[\"body\"][\"issue\"][\"number\"]}}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "<your credential>"
},
"typeVersion": 1
},
{
"name": "NoOp1",
"type": "n8n-nodes-base.noOp",
"position": [
1050,
650
],
"parameters": {},
"typeVersion": 1
},
{
"name": "Assign Commenter",
"type": "n8n-nodes-base.github",
"position": [
1350,
400
],
"parameters": {
"owner": "={{$json[\"body\"][\"repository\"][\"owner\"][\"login\"]}}",
"operation": "edit",
"editFields": {
"labels": [
{
"label": "assigned"
}
],
"assignees": [
{
"assignee": "={{$json[\"body\"][\"comment\"][\"user\"][\"login\"]}}"
}
]
},
"repository": "={{$json[\"body\"][\"repository\"][\"name\"]}}",
"issueNumber": "={{$json[\"body\"][\"issue\"][\"number\"]}}",
"authentication": "oAuth2"
},
"credentials": {
"githubOAuth2Api": "<your credential>"
},
"typeVersion": 1
}
],
"connections": {
"Switch": {
"main": [
[
{
"node": "IF no assignee?",
"type": "main",
"index": 0
}
],
[
{
"node": "IF wants to work?",
"type": "main",
"index": 0
}
]
]
},
"Github Trigger": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"IF no assignee?": {
"main": [
[
{
"node": "Assign Issue Creator",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp",
"type": "main",
"index": 0
}
]
]
},
"IF not assigned?": {
"main": [
[
{
"node": "Assign Commenter",
"type": "main",
"index": 0
}
],
[
{
"node": "Add Comment",
"type": "main",
"index": 0
}
]
]
},
"IF wants to work?": {
"main": [
[
{
"node": "IF not assigned?",
"type": "main",
"index": 0
}
],
[
{
"node": "NoOp1",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
githubOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow streamlines open-source project management by automatically assigning GitHub issues to contributors who have expressed interest, ensuring faster resolutions and better engagement without manual oversight. It benefits repository maintainers and team leads handling high-volume issue trackers, particularly in collaborative communities. The key step involves checking for unassigned issues via the GitHub trigger, then evaluating contributor signals before using the GitHub node to reassign appropriately.
Use this workflow for event-driven automation in active GitHub repositories where contributors self-nominate for tasks, such as in popular libraries or community projects. Avoid it for private repos with strict access controls or when assignments require human review beyond simple interest flags. Common variations include adding Slack notifications for assignees or integrating with Google Sheets to log assignment history.
About this workflow
Assign Issues To Interested Contributors. Uses githubTrigger, noOp, github. Event-driven trigger; 11 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Streamline your open source project with intelligent issue assignment automation.
Automate Assigning Github Issues. Uses noOp, github, githubTrigger. Event-driven trigger; 10 nodes.
Automate assigning GitHub issues. Uses noOp, github, githubTrigger. Event-driven trigger; 10 nodes.
This workflow assigns a user to an issue if they include "assign me" when opening or commenting. To use this workflow you will need to update the credentials used for the Github nodes.
GitHub Issue Triage - Auto-Label by Complexity. Uses githubTrigger, github. Event-driven trigger; 6 nodes.