在环境之间复制工作
将工作从一个 n8n 实例发送到另一个实例的步骤因您使用单个 Git 分支还是多个分支而有所不同。
单分支
如果您有单个 Git 分支,复制工作的步骤是:
- 从一个实例将工作推送到 Git 分支。
- 登录到另一个实例以从 Git 拉取工作。您可以自动化拉取。
多分支
如果您有多个 Git 分支,您需要在 Git 提供商中合并分支以在环境之间复制工作。您不能在 n8n 中直接在环境之间复制工作。
常见模式是:
- 在您的开发实例中进行工作。
- 将工作推送到 Git 中的开发分支。
- 将您的开发分支合并到生产分支。有关执行此操作的指导,请参考您的 Git 提供商的文档:
- 在您的生产 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:
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 }}'
|