Sauvegarde automatisée quotidienne des workflows vers GitHub

Intermédiaire

Ceci est unEngineering, DevOps, AIworkflow d'automatisation du domainecontenant 13 nœuds.Utilise principalement des nœuds comme If, N8n, Set, Github, Aggregate, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Sauvegarde quotidienne automatisée des workflows vers GitHub

Prérequis
  • Personal Access Token GitHub
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "nodes": [
    {
      "id": "2aafc10f-0bb7-419f-a6b3-fa90f5f68653",
      "name": "Déclencheur planifié",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        100,
        -20
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "da87b4f8-4507-456b-bfc3-3ae7d9400449",
      "name": "Récupérer les workflows",
      "type": "n8n-nodes-base.n8n",
      "position": [
        580,
        -20
      ],
      "parameters": {
        "filters": {},
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "6cd7d968-6fa0-4ab0-ac58-ceb15c8b7b4a",
      "name": "Agréger",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        420,
        -20
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "name"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "854f6e82-babb-474e-a138-2a6c398fd60e",
      "name": "Lister les fichiers du dépôt",
      "type": "n8n-nodes-base.github",
      "position": [
        260,
        -20
      ],
      "webhookId": "354d699e-44b0-4444-9d31-af7fd4ff5561",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": ""
        },
        "filePath": "=",
        "resource": "file",
        "operation": "list",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "authentication": "oAuth2"
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "8abba016-1f34-420a-b10b-3c8e44297725",
      "name": "Mettre à jour le fichier",
      "type": "n8n-nodes-base.github",
      "position": [
        1380,
        -100
      ],
      "webhookId": "27218087-8df7-474d-a39f-70cfa9c34ec8",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": ""
        },
        "filePath": "={{ $('Retrieve workflows').item.json.name.replace(/\\s+/g, '-').toLowerCase() }}-{{ $('Retrieve workflows').item.json.tags[0].name }}.json",
        "resource": "file",
        "operation": "edit",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "fileContent": "={{ $('To base64').item.json.data }}",
        "commitMessage": "=backup-{{ $('Commit date & file name').item.json.commitDate }}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "d55efcc7-5873-4c9a-b374-b7b31814905b",
      "name": "Téléverser le fichier",
      "type": "n8n-nodes-base.github",
      "position": [
        1380,
        60
      ],
      "webhookId": "ce4b561b-acb9-4cd8-b76f-4928dada9674",
      "parameters": {
        "owner": {
          "__rl": true,
          "mode": "name",
          "value": ""
        },
        "filePath": "={{ $('Retrieve workflows').item.json.name.replace(/\\s+/g, '-').toLowerCase() }}-{{ $('Retrieve workflows').item.json.tags[0].name }}.json",
        "resource": "file",
        "repository": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "fileContent": "={{ $('To base64').item.json.data }}",
        "commitMessage": "=backup-{{ $node['Commit date & file name'].json.commitDate }}",
        "authentication": "oAuth2"
      },
      "typeVersion": 1
    },
    {
      "id": "09909c9f-8a68-4670-8396-65fae9be51ff",
      "name": "Vérifier si le fichier existe",
      "type": "n8n-nodes-base.if",
      "position": [
        1220,
        -20
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{ $('Aggregate').item.json.name }}",
              "value2": "={{ $('Retrieve workflows').item.json.name.replace(/\\s+/g, '-').toLowerCase() }}-{{ $('Retrieve workflows').item.json.tags[0].name }}.json",
              "operation": "contains"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "43990124-eac4-4c57-9da3-39053d9e5850",
      "name": "Fichier Json",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        740,
        -20
      ],
      "parameters": {
        "mode": "each",
        "options": {
          "format": true
        },
        "operation": "toJson"
      },
      "typeVersion": 1.1
    },
    {
      "id": "956de457-4d05-4ea8-be7b-390861a739d4",
      "name": "Convertir en base64",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        900,
        -20
      ],
      "parameters": {
        "options": {},
        "operation": "binaryToPropery"
      },
      "typeVersion": 1
    },
    {
      "id": "fc258985-2621-42a3-9bc6-01048a92b702",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 380,
        "content": "### Retrieve previous file names from Github"
      },
      "typeVersion": 1
    },
    {
      "id": "1bfedd8f-1921-4f33-aa45-7ab612f26059",
      "name": "Date de commit & nom du fichier",
      "type": "n8n-nodes-base.set",
      "position": [
        1060,
        -20
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "fe4a36ef-9f04-40e3-99bd-cc517a49b440",
              "name": "commitDate",
              "type": "string",
              "value": "={{ $now.format('dd-MM-yyyy/H:mm') }}"
            },
            {
              "id": "b0fe1bcc-e79c-4a6b-b8b4-44222c8bf4e8",
              "name": "fileName",
              "type": "string",
              "value": "={{ $('Retrieve workflows').item.json.name.replace(/\\s+/g, '-').toLowerCase() }}-{{ $('Retrieve workflows').item.json.tags[0].name }}.json"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2f36af66-12ca-451a-a1ca-c5a71b94b644",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        -160
      ],
      "parameters": {
        "color": 3,
        "width": 460,
        "height": 380,
        "content": "### Retrieve and process workflows from n8n"
      },
      "typeVersion": 1
    },
    {
      "id": "dc914f31-e6b5-43b0-8a4e-f9f46118fa30",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        -160
      ],
      "parameters": {
        "color": 4,
        "width": 460,
        "height": 380,
        "content": "### Commit + edit/create files if needed"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "6cd7d968-6fa0-4ab0-ac58-ceb15c8b7b4a": {
      "main": [
        [
          {
            "node": "da87b4f8-4507-456b-bfc3-3ae7d9400449",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "43990124-eac4-4c57-9da3-39053d9e5850": {
      "main": [
        [
          {
            "node": "956de457-4d05-4ea8-be7b-390861a739d4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "956de457-4d05-4ea8-be7b-390861a739d4": {
      "main": [
        [
          {
            "node": "1bfedd8f-1921-4f33-aa45-7ab612f26059",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2aafc10f-0bb7-419f-a6b3-fa90f5f68653": {
      "main": [
        [
          {
            "node": "854f6e82-babb-474e-a138-2a6c398fd60e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da87b4f8-4507-456b-bfc3-3ae7d9400449": {
      "main": [
        [
          {
            "node": "43990124-eac4-4c57-9da3-39053d9e5850",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09909c9f-8a68-4670-8396-65fae9be51ff": {
      "main": [
        [
          {
            "node": "8abba016-1f34-420a-b10b-3c8e44297725",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "d55efcc7-5873-4c9a-b374-b7b31814905b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "854f6e82-babb-474e-a138-2a6c398fd60e": {
      "main": [
        [
          {
            "node": "6cd7d968-6fa0-4ab0-ac58-ceb15c8b7b4a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1bfedd8f-1921-4f33-aa45-7ab612f26059": {
      "main": [
        [
          {
            "node": "09909c9f-8a68-4670-8396-65fae9be51ff",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Ingénierie, DevOps, Intelligence Artificielle

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds13
Catégorie3
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34