Sauvegarde automatisée quotidienne des workflows vers GitHub
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
- •Personal Access Token GitHub
Nœuds utilisés (13)
{
"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
}
]
]
}
}
}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.
Workflows recommandés
Hugo
@hugopPartager ce workflow