This workflow follows the GitHub → HTTP Request recipe pattern — see all workflows that pair these two integrations.
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 →
{
"active": false,
"activeVersion": null,
"activeVersionId": null,
"connections": {
"Globals": {
"main": [
[
{
"node": "Get all files in given path",
"type": "main",
"index": 0
}
]
]
},
"Split the result": {
"main": [
[
{
"node": "Get file content from GitHub",
"type": "main",
"index": 0
}
]
]
},
"Convert files to JSON": {
"main": [
[
{
"node": "Check for skipped Credentials",
"type": "main",
"index": 0
}
]
]
},
"Get all files in given path": {
"main": [
[
{
"node": "Split the result",
"type": "main",
"index": 0
}
]
]
},
"Get file content from GitHub": {
"main": [
[
{
"node": "Convert files to JSON",
"type": "main",
"index": 0
}
]
]
},
"Check for skipped Credentials": {
"main": [
[],
[
{
"node": "Restore n8n Credentials",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Globals",
"type": "main",
"index": 0
}
]
]
}
},
"createdAt": "2025-11-17T19:38:15.087Z",
"id": "0pSmlC05vTR8er3e",
"isArchived": false,
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Restore Credentials from GitHub",
"nodes": [
{
"parameters": {},
"id": "c5d32c8c-4c0a-4a0c-85b8-0802c61a1716",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-128,
-32
],
"typeVersion": 1
},
{
"parameters": {
"content": "## Restore from GitHub \nThis workflow will restore all instance credentials from GitHub backups.\n\n\n### Setup\nOpen `Globals` node and update the values below \ud83d\udc47\n\n- **repo.owner:** your Github username\n- **repo.name:** the name of your repository\n- **repo.path:** the folder to use within the repository.\n\n\nIf your username was `john-doe` and your repository was called `n8n-backups` and you wanted the credentials to go into a `credentials` folder you would set:\n\n- repo.owner - john-doe\n- repo.name - n8n-backups\n- repo.path - credentials/\n",
"height": 420,
"width": 320
},
"id": "6ab9de58-80cc-445e-b68a-b477f9acb5af",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-64
],
"typeVersion": 1
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "6cf546c5-5737-4dbd-851b-17d68e0a3780",
"name": "repo.owner",
"type": "string",
"value": "LePeanutButter"
},
{
"id": "452efa28-2dc6-4ea3-a7a2-c35d100d0382",
"name": "repo.name",
"type": "string",
"value": "n8n-workflows-aquasense"
},
{
"id": "81c4dc54-86bf-4432-a23f-22c7ea831e74",
"name": "repo.path",
"type": "string",
"value": "credentials"
}
]
},
"options": {}
},
"id": "26f8dadf-c0fc-4944-b485-d252c901781d",
"name": "Globals",
"type": "n8n-nodes-base.set",
"position": [
144,
-32
],
"typeVersion": 3.4
},
{
"parameters": {
"content": "## Edit this node \ud83d\udc47",
"height": 80,
"width": 150,
"color": 4
},
"id": "3f72ef4d-e0fb-4548-af40-3e211dbaf3aa",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-160
],
"typeVersion": 1
},
{
"parameters": {
"content": "## Skip credential\n- The empty json files\n- The n8n account api\n- ...edit this node at will",
"color": 4
},
"id": "6b6a3cb3-2d73-4030-b80c-2596a95a5596",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
624,
112
],
"typeVersion": 1
},
{
"parameters": {
"url": "=https://api.github.com/repos/{{ $json.repo.owner }}/{{ $json.repo.name }}/contents/{{ $json.repo.path }}",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "githubApi",
"options": {}
},
"id": "3100c932-b01b-4e9c-8077-7a2d5fd455f1",
"name": "Get all files in given path",
"type": "n8n-nodes-base.httpRequest",
"position": [
368,
-32
],
"typeVersion": 4.2,
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"fieldToSplitOut": "path",
"options": {}
},
"id": "bf34764c-d62f-49b8-a8ef-3010fb50ca13",
"name": "Split the result",
"type": "n8n-nodes-base.splitOut",
"position": [
-80,
288
],
"typeVersion": 1
},
{
"parameters": {
"resource": "file",
"operation": "get",
"owner": {
"__rl": true,
"value": "LePeanutButter",
"mode": "name"
},
"repository": {
"__rl": true,
"value": "={{ $('Globals').item.json.repo.name }}",
"mode": "name"
},
"filePath": "={{ $('Get all files in given path').item.json.path }}",
"additionalParameters": {}
},
"id": "b1d00970-8579-4441-9622-c6289041862a",
"name": "Get file content from GitHub",
"type": "n8n-nodes-base.github",
"position": [
160,
288
],
"typeVersion": 1,
"alwaysOutputData": true,
"credentials": {
"githubApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "fromJson",
"options": {}
},
"id": "676d63c7-4666-4ed5-862b-0501ad7c60c6",
"name": "Convert files to JSON",
"type": "n8n-nodes-base.extractFromFile",
"position": [
384,
288
],
"typeVersion": 1
},
{
"parameters": {
"resource": "credential",
"name": "={{ $json.data.name }}",
"credentialTypeName": "={{ $json.data.type }}",
"data": "={{ JSON.stringify($json.data.data) }}",
"requestOptions": {}
},
"id": "14f0247c-97bc-46e0-b51f-444a0af936de",
"name": "Restore n8n Credentials",
"type": "n8n-nodes-base.n8n",
"position": [
912,
304
],
"typeVersion": 1,
"credentials": {
"n8nApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "ad031296-4ac0-4087-bc35-7975a2cc25e6",
"operator": {
"type": "object",
"operation": "empty",
"singleValue": true
},
"leftValue": "={{ $json.data }}",
"rightValue": ""
},
{
"id": "ca912a57-6a4b-4b9a-be0e-37b69d3e4917",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.data.name }}",
"rightValue": "n8n account"
}
]
},
"options": {}
},
"id": "bf8b6e95-5965-4b7d-9e18-eca9b2329637",
"name": "Check for skipped Credentials",
"type": "n8n-nodes-base.if",
"position": [
624,
288
],
"typeVersion": 2.2
}
],
"settings": {
"executionOrder": "v1"
},
"shared": [
{
"updatedAt": "2025-11-17T19:38:15.091Z",
"createdAt": "2025-11-17T19:38:15.091Z",
"role": "workflow:owner",
"workflowId": "0pSmlC05vTR8er3e",
"projectId": "xno20arzPonor2IK"
}
],
"staticData": null,
"tags": [
{
"updatedAt": "2025-12-06T23:03:02.485Z",
"createdAt": "2025-12-06T23:03:02.485Z",
"id": "XhlHyiNabErISAFU",
"name": "GitHub"
}
],
"triggerCount": 0,
"updatedAt": "2025-12-06T23:03:03.000Z",
"versionId": "60942d7a-6888-43b7-a848-3cf67ec3b6a4"
}
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.
githubApin8nApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Restore Credentials from GitHub. Uses httpRequest, github, n8n. Event-driven trigger; 11 nodes.
Source: https://github.com/LePeanutButter/n8n-workflows-aquasense/blob/main/workflows/0pSmlC05vTR8er3e.json — 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.
Git Commit. Uses github, n8n, formTrigger, httpRequest. Event-driven trigger; 34 nodes.
Remixed Backup your workflows to GitHub from Solomon's work. Check out his templates.
This workflow provides everything you need to package and deploy multiple workflows from a single workflow you distribute.
Say goodbye to messy JSON exports. Treat your n8n automations like real software with a built-in CI/CD pipeline.
Based on Jonathan & Solomon work.