feat: Version control mvp (#6271)

* implement basic git service

* cleanup connected prop

* add skeleton of git functions

* initial import/export setup

* split out export service

* refactor and improve export

* begin import

* more commands and basic import

* clean up imports with transactions

* work folder import functions

* reintroduce versionid

* add missing import to pull workfolder

* add get-status endpoint

* add cleanup to disconnect

* add initRepo options

* add more checks and cleanup

* minor cleanup

* refactor prefs

* fix server.ts

* fix sending deleted files

* rename files to ee

* add variable override and fix critical cred import bug

* fix mkdir race condition

* make initRepo default to true

* fix front back integration

* improve connect flow

* add comment to generated ssh key

* fix(editor): use useToast composable

* fix buttons size

* commenting out repo init for now

* fix(editor): update UI logic

* fix(editor): remove console.log

* fix(editor): remove unused ref

* adjust endpoints for improved UI

* fix(editor): add push and pull buttons

* keep or not ssh key

* switching file name to id

* fix(editor): add success messages, fix save button

* fixed faulty diff preventing pull

* fix build

* fix(editor): adding loader to VC components

* removing duplicate exports

* improve conflict finding on push pull

* manage pull conflict

* alternate push pull

* fix pull confirmation

* fix rm and credential export/import

* switch to alternative pull implementation

* fix initial commit

* fix(editor): subscribing to VC store action to refresh lists

* fix(editor): wrap VC store actions with try

* feat: add fine-grained file selection for push action

* fix: close modal after successful push

* fix(editor): VC preferences validation

* fix confirm

* fix: update endpoint to /get-status

* feat: update pull modal override changes message

* fix missing wf error

* undo

* removing connect endpoint

* fix(editor): add button titles

* fix(editor): cleaning up store action

* add version-control/set-read-only protection

* fix(editor): adding set branch readonly

* fix(editor): remove Push button if branch set to readonly

* fix(editor): fix some styles

* fix(editor): remove duplicate and delete actions in WF list when branch is readonly

* fix: load status before opening selective push modal

* fix(editor): extend readonly logic

* add cleanup after failed initRepo

* fix deleted files crashing get-status

* fix n8n-checkbox in staging dialog

* fix(editor): fix loading

* fix(editor): resize buttons

* fix(editor): fix translation

* fix(editor): fix copy text size

* fix(editor): fix copy text size

* fix(editor): add disconnection confirmation

* fix(editor): add disconnection confirmation

* fix(editor): set large buttons

* add public api Pull endpoint

* feat: add refresh ssh key

* return prefs when new keys are generated

* fix(editor): adding readOnly mode to main header

* fix(editor): adding readOnly mode to workflow settings

* improve credential owner import

* add middleware to endpoints

* improve public api error/doc

* do not create branch if one already exists

* update wordings for connect toasts

* fix(editor): updating and separating readonly modes

* fix(editor): fix readonly mode in WF list

* fix(editor): disable elements dragging on canvas in readonly mode (WIP: not working when NodeView page is loaded first)

* fix(editor): fix canvas draggables in readonly env

* fix(editor): remove unused variables

* fix(editor): hide actions in node connections when readonly

* fix(editor): hide actions in node connections when readonly

* fix(editor): disable Save button when readonly

* fix(editor): disable Save settings if no branch is selected

* fix(editor): lint fix

* fix(editor): update snapshots

* fix(editor): replace Loading... text

* fix(editor): reset Loading... text

* reset branchname on disconnect

* fix(editor): adding some translations

* fix(editor): fix unit test

* fix(editor): fix loading

* fix(editor): set settings saved message

* fix(editor): update connection flag

* fix branchName not returning after connect

* temporary (but still breaking) fix for postgres

* fix(editor): adding tooltip to Push/Pull buttons when they're collapsed

* fix(editor): enabled activator in readonly mode

* fix test

* fix(editor): disabling new item addition for workflows in readonly mode

* fix(editor): modify Pull/Push button tooltips

* do not commit empty variables file

---------

Co-authored-by: Michael Auerswald <michael.auerswald@gmail.com>
Co-authored-by: Romain Minaud <romain.minaud@gmail.com>
Co-authored-by: Alex Grozav <alex@grozav.com>
This commit is contained in:
Csaba Tuncsik
2023-05-31 15:01:57 +02:00
committed by GitHub
parent 04cfa548af
commit 1b321416c0
75 changed files with 3720 additions and 460 deletions

View File

@@ -1339,13 +1339,19 @@
"settings.versionControl.repoUrl": "Git repository URL (SSH)",
"settings.versionControl.repoUrlPlaceholder": "e.g. git@github.com:my-team/my-repository",
"settings.versionControl.repoUrlDescription": "The SSH url of your Git repository",
"settings.versionControl.repoUrlInvalid": "The Git repository URL is not valid",
"settings.versionControl.authorName": "Commit author name",
"settings.versionControl.authorEmail": "Commit author email",
"settings.versionControl.authorEmailInvalid": "The provided email is not correct",
"settings.versionControl.sshKey": "SSH Key",
"settings.versionControl.sshKeyDescription": "Paste the SSH key in yout git repository settings. {link}.",
"settings.versionControl.sshKeyDescriptionLink": "More info.",
"settings.versionControl.sshKeyDescription": "Paste the SSH key in your git repository settings. {link}.",
"settings.versionControl.sshKeyDescriptionLink": "More info",
"settings.versionControl.refreshSshKey": "Refresh Key",
"settings.versionControl.refreshSshKey.successful.title": "SSH Key refreshed successfully",
"settings.versionControl.refreshSshKey.error.title": "SSH Key refresh failed",
"settings.versionControl.button.continue": "Continue",
"settings.versionControl.button.connect": "Connect",
"settings.versionControl.button.disconnect": "Disconnect Git",
"settings.versionControl.button.save": "Save settings",
"settings.versionControl.instanceSettings": "Instance settings",
"settings.versionControl.branches": "Branch connected to this n8n instance",
@@ -1359,6 +1365,44 @@
"settings.versionControl.sync.prompt.description": "All the changes on your n8n instances will be synced with branch {branch} on the remote git repository. The following git sequence will be executed: pull > commit > push.",
"settings.versionControl.sync.prompt.placeholder": "Commit message",
"settings.versionControl.sync.prompt.error": "Please enter a commit message",
"settings.versionControl.button.push": "Push",
"settings.versionControl.button.pull": "Pull",
"settings.versionControl.modals.push.title": "Commit and push changes",
"settings.versionControl.modals.push.description": "Select the files you want to stage in your commit and add a commit message. ",
"settings.versionControl.modals.push.description.workflows": "Since you are on the Workflows page, the modified workflow files have been pre-selected for you.",
"settings.versionControl.modals.push.description.workflow": "Since you are currently editing a Workflow, the modified workflow file has been pre-selected for you.",
"settings.versionControl.modals.push.description.credentials": "Since you are on the Credentials page, the modified credential files have been pre-selected for you.",
"settings.versionControl.modals.push.description.learnMore": "Learn more",
"settings.versionControl.modals.push.description.learnMore.url": "https://n8n.io/docs",
"settings.versionControl.modals.push.filesToCommit": "Files to commit",
"settings.versionControl.modals.push.everythingIsUpToDate": "Everything is up to date",
"settings.versionControl.modals.push.commitMessage": "Commit message",
"settings.versionControl.modals.push.commitMessage.placeholder": "e.g. My commit",
"settings.versionControl.modals.push.buttons.cancel": "Cancel",
"settings.versionControl.modals.push.buttons.save": "Commit and Push",
"settings.versionControl.modals.push.success.title": "Pushed successfully",
"settings.versionControl.modals.push.success.description": "The files you selected were committed and pushed to the remote repository",
"settings.versionControl.modals.pull.title": "Override local changes",
"settings.versionControl.modals.pull.description": "Some remote changes are going to override some of your local changes. Are you sure you want to continue?",
"settings.versionControl.modals.pull.buttons.cancel": "@:_reusableBaseText.cancel",
"settings.versionControl.modals.pull.buttons.save": "Pull and override",
"settings.versionControl.modals.disconnect.title": "Disconnect Git repository",
"settings.versionControl.modals.disconnect.message": "Please confirm you want to disconnect this n8n instance from the Git repository",
"settings.versionControl.modals.disconnect.confirm": "Disconnect Git",
"settings.versionControl.modals.disconnect.cancel": "@:_reusableBaseText.cancel",
"settings.versionControl.modals.refreshSshKey.title": "Refresh SSH Key",
"settings.versionControl.modals.refreshSshKey.message": "This will delete the current SSH key and create a new one. You will not be able to authenticate with the current key anymore.",
"settings.versionControl.modals.refreshSshKey.cancel": "Cancel",
"settings.versionControl.modals.refreshSshKey.confirm": "Refresh key",
"settings.versionControl.toast.connected.title": "Git repository connected",
"settings.versionControl.toast.connected.message": "Select the branch to complete the configuration",
"settings.versionControl.toast.connected.error": "Error connecting to Git",
"settings.versionControl.toast.disconnected.title": "Git repository disconnected",
"settings.versionControl.toast.disconnected.message": "You can no longer sync your instance with the remote repository",
"settings.versionControl.toast.disconnected.error": "Error disconnecting from Git",
"settings.versionControl.loading.pull": "Pulling from remote",
"settings.versionControl.loading.push": "Pushing to remote",
"settings.versionControl.saved.title": "Settings successfully saved",
"showMessage.cancel": "@:_reusableBaseText.cancel",
"showMessage.ok": "OK",
"showMessage.showDetails": "Show Details",