使用 n8n/Enterprise_features/Source_control_and_environments/Using
在环境之间复制工作#
将工作从一个 n8n 实例发送到另一个实例的具体步骤,取决于你使用的是单个 Git 分支还是多个分支。
单分支#
如果你使用单个 Git 分支,复制工作的步骤如下:
- 将工作从一个实例推送到 Git 分支。
- 登录到另一个实例,从 Git 拉取工作。你可以自动执行拉取操作。
多分支#
如果你使用多个 Git 分支,则需要通过你的 Git 服务提供商将分支合并,以在不同环境之间复制工作。你无法直接在 n8n 中跨环境复制工作。
常见的操作模式是:
- 在开发环境的 n8n 实例中进行工作。
- 将更改推送到 Git 中的
development(开发)分支。 - 将你的开发分支合并到生产分支中。有关具体操作,请参考你所使用的 Git 服务提供商的文档:
- GitHub:创建拉取请求(Creating a pull request)
- GitLab:创建合并请求(Creating merge requests)
- Git:基础分支与合并(Basic branching and merging)
- 在生产环境的 n8n 实例中拉取变更。你可以自动执行拉取操作。
自动向 n8n 发送变更#
你可以通过使用 /source-control/pull API 端点来自动化部分复制工作流程。在完成分支合并后调用该 API:
curl --request POST \
--location '<YOUR-INSTANCE-URL>/api/v1/source-control/pull' \
--header 'Content-Type: application/json' \
--header 'X-N8N-API-KEY: <YOUR-API-KEY>' \
--data '{"force": true}'
---|---
这意味着你可以使用 GitHub Action 或 GitLab CI/CD,在合并时自动将更改拉取到生产实例。
GitHub Action 示例:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ```
name: CI
on:
# 在 "production" 分支上触发 push 或 pull request 事件时运行工作流
push:
branches: ["production"]
# 允许你从 Actions 标签页手动运行此工作流
workflow_dispatch:
jobs:
run-pull:
runs-on: ubuntu-latest
steps:
- name: PULL
# 使用 GitHub Secrets 来保护敏感信息
run: >
curl --location '${{ secrets.INSTANCE_URL }}/version-control/pull' --header
'Content-Type: application/json' --header 'X-N8N-API-KEY: ${{ secrets.INSTANCE_API_KEY }}'---|---