This template is inspired by Save your workflows into a GitHub repository by hikerspath and Back Up Your n8n Workflows To Github by jon-n8n.
Basic
Retrieve all workflows from an n8n instance and save it on a gitlab project. If the workflow exist, il will only save the changes.
Flow
What the workflow does :
- Sets custom parameters
- Gets workflows
- Iterates through each workflow one by one
- Get the file from Gitlab if exists
- Compare the files as objects (not as strings)
- Return a status on the workflow
- Create, Edit or ignore the file depending on the status
- Return a list of status for each workflow
Configuration
Select a credential in each Gitlab nodes.
Edit the data in node "Globals" :
- repo.owner : slug of the user or team owning the repo
- repo.name : slug of the repository
- repo.branch : branch to commit on
- repo.path : from root of the repository. Should end with /
Comments
Error on gitlab nodes will not stop the run but will list the current workflow as error in the results
Some fields are ignored to determined if there is changes :
- updatedAt : should be ignored if only ignores fields are changed
- globals : it's running information, no need to follow the changes