Skip to content

在环境之间复制工作#

将工作从一个 n8n 实例发送到另一个实例的步骤因您使用单个 Git 分支还是多个分支而有所不同。

单分支#

如果您有单个 Git 分支,复制工作的步骤是:

  1. 从一个实例将工作推送到 Git 分支。
  2. 登录到另一个实例以从 Git 拉取工作。您可以自动化拉取

多分支#

如果您有多个 Git 分支,您需要在 Git 提供商中合并分支以在环境之间复制工作。您不能在 n8n 中直接在环境之间复制工作。

常见模式是:

  1. 在您的开发实例中进行工作。
  2. 将工作推送到 Git 中的开发分支。
  3. 将您的开发分支合并到生产分支。有关执行此操作的指导,请参考您的 Git 提供商的文档:
  4. 在您的生产 n8n 实例中,拉取更改。您可以自动化拉取

自动向 n8n 发送更改#

您可以使用 /source-control/pull API 端点自动化复制工作过程的一部分。在合并更改后调用 API:

1
2
3
4
5
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 }}'