GitLab 供已標記客戶的工作流進行版本控制 - n8n 工作流程

使用 GitLab 自動化管理您關鍵 n8n 工作流資產的穩健版本控制。此動態 n8n 範本會將備份整理到特定客戶的資料夾中,追蹤變更並避免不必要的版本提交。

工作流預覽

準備好自動化了嗎?

下載此 n8n 工作流程範本並立即開始使用。

適用對象


  • 自動化開發人員:需要為其複雜的 n8n 工作流設計提供可靠的版本控制。

  • 顧問服務機構:需要在單一 n8n 實例中,為所管理的各個客戶解決方案提供可獨立稽核的備份資料夾。

  • DevOps 工程師:希望將 n8n 範本的部署和備份策略整合到現有的 CI/CD 管線中。

  • 任何人員:希望為其關鍵任務 n8n 資產提供高可用性及稽核軌跡的人員。

總覽

維護複雜自動化解決方案的稽核軌跡並確保其可復原性至關重要。這個進階的 n8n 工作流解決了分散式工作流管理的問題,方法是將所有關鍵的 n8n 工作流資產集中到結構化的 GitLab 儲存庫中。

它具備智慧過濾功能——僅處理已標記為 backup-workflows 的工作流。此外,它會分析工作流名稱中的 [customer: NAME] 標籤,以自動建立特定客戶的子目錄,確保與客戶相關的 n8n 範本被整齊區分。

透過將目前的 n8n 工作流 JSON 與 GitLab 中的最新版本進行比較,它避免了過多的版本提交,僅在偵測到功能性變更時才執行更新,從而維持乾淨且高效率的 Git 歷程記錄。此方法確保您的 n8n 備份是穩定、有條理且易於重新匯入的。

運作方式

此流程始於一個 n8n 觸發器,可以是手動執行,也可以是每日凌晨 03:00 的 Schedule Trigger(排程觸發器)。


  1. 初始化:Set Global GitLab Variables 這個 n8n 節點用來定義參數,如 GitLab 儲存庫詳細資訊、分支(main)以及所需的標籤過濾器(backup-workflows)。

  2. 擷取工作流:Fetch Workflows from n8n 這個 n8n 節點使用 n8n 的內部 API 來檢索所有符合指定標籤的工作流,最大限度地減少 API 流量和處理時間。

  3. 資料標準化:對於每個檢索到的工作流,Clean & Normalize Workflow Name 這個程式碼 n8n 節點會將 [customer: NAME] 格式標準化。接著,Prepare Workflow JSON for UI-Compatible Export 這個 n8n 節點會清理 JSON,以確保它符合標準的 UI 匯出格式,使其完全適合重新匯入。

  4. 路徑生成:Prepare GitLab File Path 這個程式碼 n8n 節點會利用工作流的穩定 ID 和擷取到的客戶代稱(slug)來建構最終的儲存路徑(例如:workflow_definitions/acme/workflowId.json)。

  5. 變更偵測:Fetch Existing File from GitLab 這個 n8n 節點會嘗試檢索現有的備份。如果失敗(代表是新工作流),流程會被導向至 Create New File in GitLab。

  6. 比較:如果檔案存在,Compare Workflow with GitLab Version 這個 n8n 節點會執行嚴格的 JSON 內容比對。如果偵測到變更,Update Existing File in GitLab 這個 n8n 節點就會提交變更。如果沒有發現變更,該工作流將被標記為 unchanged(未變更)。

  7. 報告:最後,所有路徑都透過 Merge(合併)n8n 節點匯合。輸出由 Normalize Backup Output n8n 節點進行標準化,並由 Summarize Backup Results 這個程式碼 n8n 節點進行彙總,提供關於已建立、已更新和未變更工作流的最終回顧。

安裝指南

若要使用此 n8n 範本,請遵循以下步驟:


  1. 匯入:複製完整的 JSON 代碼,並直接將其匯入您的 n8n 實例中,作為一個新的 n8n 工作流。

  2. 憑證設定:您需要兩種憑證:

n8n API:設定一個內部的 n8n API 憑證,以允許工作流查詢現有工作流列表(Fetch Workflows from n8n 這個 n8n 節點需要)。
GitLab API:為目標儲存庫設定一個具有 api 或 writerepository 權限的 GitLab 憑證。此憑證將被 GitLab n8n 節點使用。

  1. 設定:

找到 Set Global GitLab Variables 這個 n8n 節點。
更新 gitlab
owner、gitlabproject 和 gitlabbranch 以符合您的 GitLab 儲存庫詳細資訊。
* 確保 tag_backup 的值(預設為 backup-workflows)是您用來標記關鍵 n8n 範本的標籤。

  1. 標記工作流:導航到您想要備份的 n8n 工作流,並加上 backup-workflows 標籤(或步驟 3 中定義的自訂標籤)。

  2. 啟用:啟用 n8n 工作流以啟動每日排程備份。

節點詳情


  • Schedule Trigger (排程觸發器):作為主要的 n8n 觸發器,設定為每日凌晨 3 點運行,以盡量減少在尖峰時段的干擾。

  • Set Global GitLab Variables (Set 節點):初始化在整個流程中使用的關鍵全域變數,包括 GitLab 專案詳細資訊和備份標籤名稱。

  • Fetch Workflows from n8n (n8n 節點):使用 n8n 的內部 API 擷取實際的工作流資料,並特別依 backup-workflows 標籤進行過濾。

  • Clean & Normalize Workflow Name (Code 節點):一個專門的 n8n 節點,使用正則表達式(regex)來尋找和標準化 [customer: NAME] 標籤,這將決定 GitLab 中的資料夾結構。

  • Prepare Workflow JSON for UI-Compatible Export (Code 節點):確保從 n8n 輸出的 JSON 移除了內部的執行資料,從而得到一個乾淨的匯出結果,其格式與從 UI 下載的完全一致。

  • Prepare GitLab File Path (Code 節點):根據工作流 ID 和選擇性的客戶代稱(slug)建立一個唯一且穩定的檔案路徑,防止工作流名稱變更時出錯。

  • Fetch Existing File from GitLab (GitLab 節點):嘗試檢索現有的檔案。關鍵設定是「發生錯誤時 → 繼續 (On Error → Continue)」,以便將新工作流(找不到檔案)的流程導向到建立路徑。

  • Compare Workflow with GitLab Version (If 節點):對字串化的 JSON 進行位元組逐一比對,以決定是否需要更新,從而減少不必要的 Git 版本提交。

  • Update/Create File in GitLab (GitLab 節點):在 GitLab 中執行必要的寫入操作,建立新檔案或更新現有檔案,並附上反映特定 n8n 工作流名稱和路徑的詳細提交訊息。

  • Summarize Backup Results (Code 節點):最後的 n8n 節點,它彙總了結果(created、updated、unchanged),用於監控和最終報告。

相關 n8n 工作流程

免費

節點: 9 節點
更新时间: 2025年12月26日
建立者
Omar Kennouche | AI Nexus One
Omar Kennouche | AI Nexus One

Automation & AI consultant. I design practical n8n workflows connecting APIs, business tools and AI—focused on saving time, reducing errors and enabling growth.

精選*