使用 GitHub 实现工作流版本控制的双向同步 - n8n 工作流

使用这款高级 n8n 模板,自动将你的 n8n 工作流与 GitHub 双向同步,以实现可靠的版本控制、备份和团队协作开发。

工作流预览

准备好自动化了吗?

下载此 n8n 工作流模板并立即开始使用。

适用人群

需要为其复杂的 n8n 工作流逻辑提供可靠版本控制的自动化开发者。
需要同步环境并能协作访问 n8n 模板的使用 n8n 的团队。
需要对 n8n 实例配置进行可靠、定时备份的用户。
正在寻找 n8n 工作流中关于流程控制和 API 交互的高级示例的技术用户。

概览

这个全面的 n8n 工作流解决了对关键 n8n 模板和自动化进行版本控制和可靠备份的迫切需求。开发者和高级 n8n 用户经常难以将本地 n8n 工作流定义与外部仓库保持同步,这使得协作和灾难恢复变得困难。这个专业的 n8n 模板采用复杂双向机制:它将每个本地 n8n 工作流与其在 GitHub 上的对应文件进行比较。如果工作流仅存在于 n8n 中,则将其上传到 GitHub;如果仅存在于 GitHub,则将其导入 n8n。最重要的是,它通过检查时间戳智能地解决版本冲突,确保最新版本(无论是本地还是远程)优先。这种强大的 n8n 节点比较能力可确保您的自动化流程始终被正确记录版本。

工作原理


  1. 流程由 n8n 触发器启动,具体来说是“定时触发器”(Schedule Trigger),设置为每周运行一次(即每周一)。

  2. 工作流首先使用 Set n8n 节点定义关键的配置变量:GitHub 凭据、仓库名称以及存储 n8n 工作流 JSON 文件的具体文件夹路径。

  3. 两个分支并行启动:一个使用内置的 n8n 节点来获取本地所有激活的 n8n 工作流的元数据,另一个使用 GitHub n8n 节点来列出仓库中存在的所有工作流文件。

  4. 然后单独拉取从 GitHub 获取的文件,并将其从 base64 解码成合适、可用的 JSON 格式。

  5. 核心是“比较数据集”(Compare Datasets) n8n 节点,它使用工作流 ID 作为唯一键,将本地 n8n 工作流列表(输入 A)与解码后的 GitHub 文件(输入 B)进行比较,并将流程分成四条路径:仅在 n8n 中、仅在 GitHub 中、有差异、相同。

  6. 新本地工作流 (仅在 n8n 中): 仅存在于本地的工作流将被转换为 base64,并使用 GitHub n8n 节点上传到 GitHub,创建一个新文件。

  7. 新远程工作流 (仅在 GitHub 中): 仅存在于 GitHub 上的工作流将使用特定的 n8n 节点操作——“创建工作流”(Create workflow)——导入到 n8n 实例中。

  8. 版本冲突 (有差异): 一个 If n8n 节点检查 updatedAt 时间戳。如果 GitHub 版本更新,则使用 GitHub 的版本通过“更新工作流”(Update workflow) n8n 节点来更新本地 n8n 工作流。如果本地 n8n 工作流是新的,则将其准备好、编码,并上传以覆盖 GitHub 上的文件,确保保存最新的更改。这种强大的 n8n 节点比较能力是保持同步的关键。

安装指南


  1. 导入 n8n 工作流: 复制提供的 JSON 并直接导入到您的 n8n 实例中。

  2. GitHub 凭据: 您必须配置一个对目标仓库具有读写访问权限的 GitHub 凭据。

  3. 设置 GitHub 详情 n8n 节点: 打开 "Set GitHub Details" n8n 节点,填入以下必填值:

githubaccountname:您的 GitHub 用户名或组织名称。
githubreponame:用于存储 n8n 模板的仓库名称。
* repoworkflowspath:仓库中存放工作流的目录路径(例如:workflows/n8n_backups/)。

  1. n8n 凭据: 确保您已配置一个有效的 n8n API 凭据,允许工作流与本地 n8n 实例交互(列出、创建和更新工作流)。

  2. 激活: 应用凭据和设置后,激活 n8n 触发器以开始定时同步。

节点详情

定时触发器 (Schedule Trigger) (n8n 触发器): 主要的 n8n 触发器,按周计划运行整个同步过程。
设置 GitHub 详情 (Set GitHub Details) (Set n8n 节点): 用于注入后续 GitHub n8n 节点操作所需的全局变量(仓库路径、账户名)。
n8n (n8n 节点): 三种主要用法:1) 列出所有激活的 n8n 工作流。2) 创建仅在 GitHub 中找到的新工作流。3) 如果 GitHub 版本更新,则更新 n8n 中的现有工作流。
GitHub (n8n 节点): 处理仓库上的文件操作,包括列出内容、获取单个文件、上传新工作流文件以及编辑现有文件。
比较数据集 (Compare Datasets) (n8n 节点): 核心决策节点。它根据 ID 比较本地和远程工作流数据集,以识别新的、已删除的或有差异的 n8n 模板。
GitHub 前的 If 节点 (If n8n node): 执行冲突解决逻辑,通过比较时间戳来确定哪个版本的 n8n 工作流更优先。


  • 转换为文件/从文件解压 (Convert to File / Extract From File) (n8n 节点): 对于准备 n8n 工作流 JSON 数据至关重要(例如,当本地工作流是最新版时),将其转换为二进制并编码为 base64 以便通过 GitHub API 上传。

相关 n8n 工作流

免费

节点: 11 节点
更新时间: 2025年12月26日
创建者
Wikus Bergh
Wikus Bergh

Software/ML engineer - happily ambling on the path of learning

精选*