n8n-workflows/workflows/1222_workflow_1222.json
2025-05-14 11:58:29 +03:00

301 lines
6.3 KiB
JSON

{
"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
}
]
]
}
}
}