Workflow: develop a modular n8n workflow that supports Http Github Create Scheduled
Integrations: cron, function, github, httpRequest, merge

{"nodes": [{"name": "GitHub Edit", "type": "n8n-nodes-base.github", "position": [1190, 610], "parameters": {"owner": "YOUR_USERNAME", "filePath": "={{$json[\"data\"][\"name\"]}}.json", "resource": "file", "operation": "edit", "repository": "REPO_NAME", "fileContent": "={{JSON.stringify($json[\"data\"])}}", "commitMessage": "=[N8N Backup] {{$json.data[\"name\"]}} ({{new Date(Date.now()).toLocaleDateString()}})"}, "credentials": {"githubApi": "GitHub@harshil1712"}, "typeVersion": 1}, {"name": "Get Files", "type": "n8n-nodes-base.github", "position": [200, 500], "parameters": {"owner": "YOUR_USERNAME", "filePath": "/", "resource": "file", "operation": "get", "repository": "REPO", "asBinaryProperty": false}, "credentials": {"githubApi": "GitHub@harshil1712"}, "executeOnce": true, "typeVersion": 1, "alwaysOutputData": false}, {"name": "Transform", "type": "n8n-nodes-base.function", "position": [400, 500], "parameters": {"functionCode": "return items[0].json.map(item => {\n  return {\n    json: item\n  }\n});\n"}, "typeVersion": 1}, {"name": "Create file", "type": "n8n-nodes-base.github", "position": [1240, 280], "parameters": {"owner": "YOUR_USERNAME", "filePath": "={{$json[\"data\"][\"name\"]}}.json", "resource": "file", "repository": "REPO", "fileContent": "={{JSON.stringify($node['Merge'].json[\"data\"])}}", "commitMessage": "=[N8N Backup] {{$json.data[\"name\"]}}.json ({{new Date(Date.now()).toLocaleDateString()}})"}, "credentials": {"githubApi": "GitHub@harshil1712"}, "typeVersion": 1}, {"name": "Merge", "type": "n8n-nodes-base.merge", "position": [930, 280], "parameters": {"mode": "removeKeyMatches", "propertyName1": "data.name", "propertyName2": "data.name"}, "typeVersion": 1}, {"name": "Get workflows", "type": "n8n-nodes-base.httpRequest", "position": [200, 300], "parameters": {"url": "http://localhost:5678/rest/workflows", "options": {}, "authentication": "basicAuth"}, "credentials": {"httpBasicAuth": "n8n instance auth"}, "typeVersion": 1}, {"name": "Get workflow data", "type": "n8n-nodes-base.httpRequest", "position": [600, 300], "parameters": {"url": "=http://localhost:5678/rest/workflows/{{$json[\"id\"]}}", "options": {}, "authentication": "basicAuth"}, "credentials": {"httpBasicAuth": "n8n instance auth"}, "typeVersion": 1}, {"name": "Download Raw Content", "type": "n8n-nodes-base.httpRequest", "position": [600, 500], "parameters": {"url": "={{$json[\"download_url\"]}}", "options": {}, "authentication": "headerAuth", "responseFormat": "string"}, "credentials": {"httpHeaderAuth": "GitHub Token"}, "typeVersion": 1}, {"name": "transform", "type": "n8n-nodes-base.function", "position": [390, 300], "parameters": {"functionCode": "const newItems = [];\nfor (item of items[0].json.data) {\n  newItems.push({json: item});\n}\nreturn newItems;"}, "typeVersion": 1}, {"name": "Daily at 23:59", "type": "n8n-nodes-base.cron", "position": [-20, 300], "parameters": {"triggerTimes": {"item": [{"hour": 23, "minute": 59}]}}, "typeVersion": 1}, {"name": "Merge1", "type": "n8n-nodes-base.merge", "position": [970, 610], "parameters": {"mode": "removeKeyMatches", "propertyName1": "data.updatedAt", "propertyName2": "data.updatedAt"}, "typeVersion": 1}], "connections": {"Merge": {"main": [[{"node": "Create file", "type": "main", "index": 0}]]}, "Merge1": {"main": [[{"node": "GitHub Edit", "type": "main", "index": 0}]]}, "Get Files": {"main": [[{"node": "Transform", "type": "main", "index": 0}]]}, "Transform": {"main": [[{"node": "Download Raw Content", "type": "main", "index": 0}]]}, "transform": {"main": [[{"node": "Get workflow data", "type": "main", "index": 0}]]}, "Get workflows": {"main": [[{"node": "transform", "type": "main", "index": 0}]]}, "Daily at 23:59": {"main": [[{"node": "Get workflows", "type": "main", "index": 0}]]}, "Get workflow data": {"main": [[{"node": "Merge", "type": "main", "index": 0}, {"node": "Merge1", "type": "main", "index": 0}]]}, "Download Raw Content": {"main": [[{"node": "Merge", "type": "main", "index": 1}, {"node": "Merge1", "type": "main", "index": 1}]]}}}