Sauvegarde des workflows dans un référentiel git
Avancé
Ceci est unOtherworkflow d'automatisation du domainecontenant 17 nœuds.Utilise principalement des nœuds comme If, N8n, Set, Code, Github. Sauvegarde des workflows dans un dépôt git sur Github
Prérequis
- •Personal Access Token GitHub
Nœuds utilisés (17)
Catégorie
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
{
"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": "Boucle sur les éléments",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-280,
-100
],
"parameters": {
"options": {}
},
"executeOnce": false,
"typeVersion": 3
},
{
"id": "41a7da89-1c8c-4100-8c30-d0788962efc1",
"name": "Si",
"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": "Si1",
"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": "Code",
"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": "Créer un fichier et valider",
"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": "Mettre à jour le contenu du fichier et valider",
"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": "Déclencheur planifié",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-960,
-100
],
"parameters": {
"rule": {
"interval": [
{
"field": "minutes"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ea026e96-0db1-41fd-b003-2f2bf4662696",
"name": "Note adhésive",
"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": "Note adhésive1",
"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": "Note adhésive2",
"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": "Note adhésive3",
"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": "Note adhésive4",
"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": "Note adhésive5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-560,
-200
],
"parameters": {
"height": 80,
"content": "Get all workflows"
},
"typeVersion": 1
},
{
"id": "617bea19-341a-4e9d-b6fd-6b417e58d756",
"name": "Note adhésive6",
"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": "72e4a5a4-6dfe-4b5c-b57b-7c1c9625e967",
"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
}
]
]
},
"72e4a5a4-6dfe-4b5c-b57b-7c1c9625e967": {
"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
}
]
]
},
"4b2d375c-a339-404c-babd-555bd2fc4091": {
"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
}
]
]
}
}
}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é ?
Avancé - Autres
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.
Workflows recommandés
Sauvegarde des workflows sur GitHub (sous-dossier)
Sauvegarde des workflows dans GitHub (sous-dossier)
If
N8n
Set
+
If
N8n
Set
25 NœudsNazmy
Autres
Sauvegarde des workflows sur GitHub
Sauvegarde des workflows dans GitHub
If
N8n
Set
+
If
N8n
Set
23 NœudsSolomon
Autres
Sauvegarde des workflows dans un référentiel git sur Gitea
Sauvegarde des workflows dans un dépôt git sur Gitea
If
N8n
Set
+
If
N8n
Set
20 NœudsOctoleo
Autres
Agent IA restaurant [Modèle]
🤖 Assistant IA pour WhatsApp, Instagram et Messenger
If
N8n
Set
+
If
N8n
Set
239 NœudsAmanda Benks
Autres
Système automatisé de sauvegarde de workflows avec Google Drive, GitHub et alertes par message
Système automatisé de sauvegarde de workflows avec Google Drive, GitHub et alertes par message
If
N8n
Set
+
If
N8n
Set
20 NœudsKhairul Muhtadin
Création de contenu
Workflow n8n avancé synchronisé avec GitHub
Sauvegarde automatisée des workflows avec une détection intelligente des changements via GitHub
If
N8n
Set
+
If
N8n
Set
38 NœudsMaksym Brashenko
DevOps
Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds17
Catégorie1
Types de nœuds8
Description de la difficulté
Auteur
Shashikanth
@shashikanthLiens externes
Voir sur n8n.io →
Partager ce workflow