Copiar flujos de trabajo a un repositorio git
Este es unOtherflujo de automatización del dominio deautomatización que contiene 17 nodos.Utiliza principalmente nodos como If, N8n, Set, Code, Github. Respaldar flujos de trabajo en un repositorio git en Github
- •Personal Access Token de GitHub
Nodos utilizados (17)
Categoría
{
"name": "Backup workflows to git repository",
"nodes": [
{
"id": "b09ae4c6-ad75-4b3b-a78a-4cc2d48b2d24",
"name": "GitHub",
"type": "n8n-nodes-base.github",
"position": [
-40,
-20
],
"parameters": {
"owner": "={{$node[\"Globals\"].json[\"repo\"][\"owner\"]}}",
"filePath": "={{$node[\"Globals\"].json[\"repo\"][\"path\"]}}{{$json[\"name\"]}}.json",
"resource": "file",
"operation": "get",
"repository": "={{$node[\"Globals\"].json[\"repo\"][\"name\"]}}",
"asBinaryProperty": false,
"additionalParameters": {}
},
"credentials": {
"githubApi": {
"id": "lSdxakI6ik5M2np2",
"name": "Shashikanth | GitHub account"
}
},
"typeVersion": 1,
"continueOnFail": true,
"alwaysOutputData": true
},
{
"id": "639582ef-f13e-4844-bd10-647718079121",
"name": "Globals",
"type": "n8n-nodes-base.set",
"position": [
-740,
-100
],
"parameters": {
"values": {
"string": [
{
"name": "repo.owner",
"value": "shashikanth171"
},
{
"name": "repo.name",
"value": "n8n-backup"
},
{
"name": "repo.path",
"value": "workflows/"
}
]
},
"options": {}
},
"typeVersion": 1
},
{
"id": "9df89713-220e-43b9-b234-b8f5612629cf",
"name": "n8n",
"type": "n8n-nodes-base.n8n",
"position": [
-500,
-100
],
"parameters": {
"filters": {},
"requestOptions": {}
},
"credentials": {
"n8nApi": {
"id": "RgwFr3HsPUEjFJNO",
"name": "n8n account"
}
},
"typeVersion": 1
},
{
"id": "43a60315-d381-4ac4-be4c-f6a158651a00",
"name": "Iterar sobre elementos",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-280,
-100
],
"parameters": {
"options": {}
},
"executeOnce": false,
"typeVersion": 3
},
{
"id": "41a7da89-1c8c-4100-8c30-d0788962efc1",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
160,
-20
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "16a9182d-059d-4774-ba95-654fb4293fdb",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.error }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "ab9246eb-a253-4d76-b33b-5f8f12342542",
"name": "If1",
"type": "n8n-nodes-base.if",
"position": [
1040,
260
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e0c66624-429a-4f1f-bf7b-1cc1b32bad7b",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.content }}",
"rightValue": "={{ $('Loop Over Items').item.json.toJsonString() }}"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "72e4a5a4-6dfe-4b5c-b57b-7c1c9625e967",
"name": "Código",
"type": "n8n-nodes-base.code",
"position": [
720,
-40
],
"parameters": {
"jsCode": "let items = $input.all()\n\nfor (item of items) {\n item.json.content = Buffer.from(item.json.content, 'base64').toString('utf8')\n}\n\nreturn items;\n"
},
"typeVersion": 2
},
{
"id": "68f14ac5-14d6-432e-9e6b-25df610eadac",
"name": "Crear archivo nuevo y confirmar",
"type": "n8n-nodes-base.github",
"position": [
340,
140
],
"parameters": {
"owner": "={{$node[\"Globals\"].json[\"repo\"][\"owner\"]}}",
"filePath": "={{$node[\"Globals\"].json[\"repo\"][\"path\"]}}{{ $('Loop Over Items').item.json.name }}.json",
"resource": "file",
"repository": "={{$node[\"Globals\"].json[\"repo\"][\"name\"]}}",
"fileContent": "={{ $('Loop Over Items').item.json.toJsonString() }}",
"commitMessage": "=[N8N Backup] {{ $('Loop Over Items').item.json.name }}.json"
},
"credentials": {
"githubApi": {
"id": "lSdxakI6ik5M2np2",
"name": "Shashikanth | GitHub account"
}
},
"typeVersion": 1
},
{
"id": "e50f00a3-292c-4285-b767-8d6ee4606575",
"name": "Actualizar contenido de archivo y confirmar",
"type": "n8n-nodes-base.github",
"position": [
1400,
460
],
"parameters": {
"owner": "={{$node[\"Globals\"].json[\"repo\"][\"owner\"]}}",
"filePath": "={{$node[\"Globals\"].json[\"repo\"][\"path\"]}}{{ $('Loop Over Items').item.json.name }}.json",
"resource": "file",
"operation": "edit",
"repository": "={{$node[\"Globals\"].json[\"repo\"][\"name\"]}}",
"fileContent": "={{ $('Loop Over Items').item.json.toJsonString() }}",
"commitMessage": "=[N8N Backup] {{ $('Loop Over Items').item.json.name }}.json"
},
"credentials": {
"githubApi": {
"id": "lSdxakI6ik5M2np2",
"name": "Shashikanth | GitHub account"
}
},
"typeVersion": 1
},
{
"id": "4b2d375c-a339-404c-babd-555bd2fc4091",
"name": "Disparador programado",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-960,
-100
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ea026e96-0db1-41fd-b003-2f2bf4662696",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
1560,
480
],
"parameters": {
"height": 80,
"content": "Workflow changes committed to the repository"
},
"typeVersion": 1
},
{
"id": "9c402daa-6d03-485d-b8a0-58f1b65d396d",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1180,
260
],
"parameters": {
"height": 80,
"content": "Check if there are any changes in the workflow"
},
"typeVersion": 1
},
{
"id": "1d9216d9-bf8d-4945-8a58-22fb1ffc9be8",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
460,
160
],
"parameters": {
"height": 80,
"content": "Create a new file for the workflow"
},
"typeVersion": 1
},
{
"id": "60a3953b-d9f1-4afd-b299-e314116b96c6",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
160,
-120
],
"parameters": {
"height": 80,
"content": "Check if file exists in the repository"
},
"typeVersion": 1
},
{
"id": "6df689fb-cb49-4634-9d1e-59648a1e7219",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
660,
-140
],
"parameters": {
"height": 80,
"content": "Convert the file contents to JSON string"
},
"typeVersion": 1
},
{
"id": "f2340ad0-71a1-4c74-8d90-bcb974b8b305",
"name": "Nota adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-200
],
"parameters": {
"height": 80,
"content": "Get all workflows"
},
"typeVersion": 1
},
{
"id": "617bea19-341a-4e9d-b6fd-6b417e58d756",
"name": "Nota adhesiva6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
40
],
"parameters": {
"height": 80,
"content": "Set variables"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"41a7da89-1c8c-4100-8c30-d0788962efc1": {
"main": [
[
{
"node": "Code",
"type": "main",
"index": 0
}
],
[
{
"node": "68f14ac5-14d6-432e-9e6b-25df610eadac",
"type": "main",
"index": 0
}
]
]
},
"ab9246eb-a253-4d76-b33b-5f8f12342542": {
"main": [
[
{
"node": "e50f00a3-292c-4285-b767-8d6ee4606575",
"type": "main",
"index": 0
}
],
[
{
"node": "43a60315-d381-4ac4-be4c-f6a158651a00",
"type": "main",
"index": 0
}
]
]
},
"9df89713-220e-43b9-b234-b8f5612629cf": {
"main": [
[
{
"node": "43a60315-d381-4ac4-be4c-f6a158651a00",
"type": "main",
"index": 0
}
]
]
},
"Code": {
"main": [
[
{
"node": "ab9246eb-a253-4d76-b33b-5f8f12342542",
"type": "main",
"index": 0
}
]
]
},
"b09ae4c6-ad75-4b3b-a78a-4cc2d48b2d24": {
"main": [
[
{
"node": "41a7da89-1c8c-4100-8c30-d0788962efc1",
"type": "main",
"index": 0
}
]
]
},
"639582ef-f13e-4844-bd10-647718079121": {
"main": [
[
{
"node": "9df89713-220e-43b9-b234-b8f5612629cf",
"type": "main",
"index": 0
}
]
]
},
"43a60315-d381-4ac4-be4c-f6a158651a00": {
"main": [
[],
[
{
"node": "b09ae4c6-ad75-4b3b-a78a-4cc2d48b2d24",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "639582ef-f13e-4844-bd10-647718079121",
"type": "main",
"index": 0
}
]
]
},
"68f14ac5-14d6-432e-9e6b-25df610eadac": {
"main": [
[
{
"node": "43a60315-d381-4ac4-be4c-f6a158651a00",
"type": "main",
"index": 0
}
]
]
},
"e50f00a3-292c-4285-b767-8d6ee4606575": {
"main": [
[
{
"node": "43a60315-d381-4ac4-be4c-f6a158651a00",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Otros
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Shashikanth
@shashikanthCompartir este flujo de trabajo