Workflow: Splitout GitHub Automation

Workflow Details

Download Workflow
{
    "id": "7zRCNv7B5WFRg7ux",
    "meta": {
        "instanceId": "e634e668fe1fc93a75c4f2a7fc0dad807ca318b79654157eadb9578496acbc76"
    },
    "name": "Restore your credentials from GitHub",
    "tags": [
        {
            "id": "2RWIfLUVCa0bnmGX",
            "name": "N8n",
            "createdAt": "2025-03-06T09:58:39.214Z",
            "updatedAt": "2025-03-06T09:58:39.214Z"
        }
    ],
    "nodes": [
        {
            "id": "f8aff38c-3e40-4820-b8f5-50e3e1f878c8",
            "name": "When clicking \u2018Test workflow\u2019",
            "type": "n8n-nodes-base.manualTrigger",
            "position": [
                -640,
                -120
            ],
            "parameters": [],
            "typeVersion": 1
        },
        {
            "id": "f838e0c6-36aa-4c0b-bdd2-ef096ffd3d1d",
            "name": "Sticky Note1",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -1020,
                -140
            ],
            "parameters": {
                "width": 320,
                "height": 420,
                "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"
            },
            "typeVersion": 1
        },
        {
            "id": "8f59b7b0-ea9d-4209-8c6b-d48fe9d8cf7b",
            "name": "Globals",
            "type": "n8n-nodes-base.set",
            "position": [
                -380,
                -120
            ],
            "parameters": {
                "options": [],
                "assignments": {
                    "assignments": [
                        {
                            "id": "6cf546c5-5737-4dbd-851b-17d68e0a3780",
                            "name": "repo.owner",
                            "type": "string",
                            "value": "BeyondspaceStudio"
                        },
                        {
                            "id": "452efa28-2dc6-4ea3-a7a2-c35d100d0382",
                            "name": "repo.name",
                            "type": "string",
                            "value": "n8n-backup"
                        },
                        {
                            "id": "81c4dc54-86bf-4432-a23f-22c7ea831e74",
                            "name": "repo.path",
                            "type": "string",
                            "value": "credentials"
                        }
                    ]
                }
            },
            "typeVersion": 3.399999999999999911182158029987476766109466552734375
        },
        {
            "id": "d72bf1a6-f3a0-4dc0-afc0-e39c7e8b16f3",
            "name": "Sticky Note4",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                -440,
                -240
            ],
            "parameters": {
                "color": 4,
                "width": 150,
                "height": 80,
                "content": "## Edit this node \ud83d\udc47"
            },
            "typeVersion": 1
        },
        {
            "id": "4eeb0ed5-7e90-4f09-8296-04c0349de49b",
            "name": "Sticky Note",
            "type": "n8n-nodes-base.stickyNote",
            "position": [
                100,
                20
            ],
            "parameters": {
                "color": 4,
                "content": "## Skip credential\n- The empty json files\n- The n8n account api\n- ...edit this node at will"
            },
            "typeVersion": 1
        },
        {
            "id": "40856ade-3ff7-43ef-8c45-ec5a126a5787",
            "name": "Get all files in given path",
            "type": "n8n-nodes-base.httpRequest",
            "position": [
                -160,
                -120
            ],
            "parameters": {
                "url": "=https:\/\/api.github.com\/repos\/{{ $json.repo.owner }}\/{{ $json.repo.name }}\/contents\/{{ $json.repo.path }}",
                "options": [],
                "authentication": "predefinedCredentialType",
                "nodeCredentialType": "githubApi"
            },
            "credentials": {
                "githubApi": {
                    "id": "3FYHiPFtycAFT8V0",
                    "name": "GitHub account"
                }
            },
            "typeVersion": 4.20000000000000017763568394002504646778106689453125
        },
        {
            "id": "4284aadd-4840-4754-9416-6bb74a1df192",
            "name": "Split the result",
            "type": "n8n-nodes-base.splitOut",
            "position": [
                -600,
                200
            ],
            "parameters": {
                "options": [],
                "fieldToSplitOut": "path"
            },
            "typeVersion": 1
        },
        {
            "id": "48a04e72-5f9e-4dc3-863d-a8bb30f1c8c2",
            "name": "Get file content from GitHub",
            "type": "n8n-nodes-base.github",
            "position": [
                -360,
                200
            ],
            "parameters": {
                "owner": {
                    "__rl": true,
                    "mode": "name",
                    "value": "BeyondspaceStudio"
                },
                "filePath": "={{ $('Get all files in given path').item.json.path }}",
                "resource": "file",
                "operation": "get",
                "repository": {
                    "__rl": true,
                    "mode": "name",
                    "value": "n8n-backup"
                },
                "additionalParameters": []
            },
            "credentials": {
                "githubApi": {
                    "id": "3FYHiPFtycAFT8V0",
                    "name": "GitHub account"
                }
            },
            "typeVersion": 1,
            "alwaysOutputData": true
        },
        {
            "id": "507c8514-6acf-4568-83cc-bb07f06e6a96",
            "name": "Convert files to JSON",
            "type": "n8n-nodes-base.extractFromFile",
            "position": [
                -140,
                200
            ],
            "parameters": {
                "options": [],
                "operation": "fromJson"
            },
            "typeVersion": 1
        },
        {
            "id": "084e7306-4c7b-4a9b-8f3e-f844ab340f6a",
            "name": "Restore n8n Credentials",
            "type": "n8n-nodes-base.n8n",
            "position": [
                380,
                200
            ],
            "parameters": {
                "data": "={{ JSON.stringify($json.data.data) }}",
                "name": "={{ $json.data.name }}",
                "resource": "credential",
                "requestOptions": [],
                "credentialTypeName": "={{ $json.data.type }}"
            },
            "credentials": {
                "n8nApi": {
                    "id": "dzYjDgtEXtpRPKhe",
                    "name": "n8n account"
                }
            },
            "typeVersion": 1
        },
        {
            "id": "f8267df1-eb0a-491e-bed4-01480583a535",
            "name": "Check for skipped Credentials",
            "type": "n8n-nodes-base.if",
            "position": [
                100,
                200
            ],
            "parameters": {
                "options": [],
                "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"
                        }
                    ]
                }
            },
            "typeVersion": 2.20000000000000017763568394002504646778106689453125
        }
    ],
    "active": false,
    "pinData": [],
    "settings": {
        "executionOrder": "v1"
    },
    "versionId": "8a89a054-697f-4705-89a8-5d3288936206",
    "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
                    }
                ]
            ]
        }
    }
}
Back to Workflows

Related Workflows

Lemlist Slack Automate Webhook
View
Datetime Slack Automate Scheduled
View
Limit Code Automation Scheduled
View
Bubble Data Access
View
mails2notion V2
View
My workflow 6
View
Google Site Index - sitemap.xml example
View
Splitout Schedule Update Scheduled
View
Get the price of BTC in EUR and send an SMS when the price is larger than EUR 9000
View
Limit Code Automation Scheduled
View