Copiar flujos de trabajo a un repositorio git

Avanzado

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

Requisitos previos
  • Personal Access Token de GitHub

Categoría

Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿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.

Información del flujo de trabajo
Nivel de dificultad
Avanzado
Número de nodos17
Categoría1
Tipos de nodos8
Descripción de la dificultad

Adecuado para usuarios avanzados, flujos de trabajo complejos con 16+ nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34