自動工作流程備份至 GitHub 並進行差異檢查 - n8n 工作流程

使用這個強大的 n8n 工作流程,即可自動將您所有的 n8n 工作流程備份到 GitHub,確保版本控制和歷史記錄。具備動態路徑設定和高效率的差異比對功能。

工作流預覽

準備好自動化了嗎?

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

適用對象

n8n 管理員和 DevOps 團隊,需要針對所有正式環境 (production) 的 n8n 工作流程配置進行可靠的版本控制。
尋找會使用自我呼叫遞迴工作流程 (self-calling recursive workflows) 的進階 n8n 範本的使用者。


  • 需要為其 n8n 實例建立集中式、自動化備份解決方案的開發人員。

總覽

這是一個針對在正式環境中運行 n8n 的組織設計的關鍵維護 n8n 解決方案。它透過對每個 n8n 工作流程檔案 (ID.json) 提供強固、具備版本控制的備份到 GitHub,來解決工作流程遺失和配置漂移 (configuration drift) 的挑戰。該系統使用複雜的遞迴 n8n 節點方法,來反覆獲取並比較運行中工作流程的當前狀態與其在儲存庫中儲存的版本。

A 關鍵優勢在於其效率。它透過在專用的 Code n8n 節點中使用自訂比對邏輯,僅在偵測到實際功能差異時,才會與 GitHub API 進行互動以執行更新。這最大程度地減少了不必要的 API 呼叫,並確保您的儲存庫歷史記錄是乾淨且有意義的。使用這個 n8n 工作流程作為基礎,您可以保證您的自動化邏輯始終被一致地備份和追蹤。

運作方式

此程序可以透過手動使用 On clicking 'execute' n8n 觸發器啟動,或透過 Schedule Trigger n8n 節點自動啟動(通常設定為每日早上 7 點運行)。


  1. 工作流程探索 (Workflow Discovery): n8n n8n 節點會從當前的實例中檢索所有已發佈工作流程的完整列表。

  2. 遞迴迭代 (Recursive Iteration): Loop Over Items n8n 節點和後續的 Execute Workflow n8n 節點建立了一個自我呼叫的遞迴迴圈。實作此模式是為了透過將每個項目作為子工作流程呼叫來有效處理數百個工作流程。

  3. 上下文與全域變數 (Context and Globals): 在子工作流程中,Globals n8n 節點定義了目標 GitHub 參數(擁有者、儲存庫,以及由前置的 tag?/ n8n 節點處理的、基於工作流程標籤的動態路徑)。

  4. 檢查現有備份 (Check Existing Backup): Get file data GitHub n8n 節點會嘗試從儲存庫中擷取現有的 JSON 檔案。關鍵在於,如果檔案是新的,它會設定為即使失敗也要繼續執行。如果檔案太大而無法直接擷取,If file too large 會將該項目導向至 Get File (HTTP Request) 以透過提供的 URL 下載內容。

  5. 差異分析 (Difference Analysis): Merge Items 節點會合併工作流程資料和 GitHub 檔案資料。接著,isDiffOrNew Code n8n 節點會解碼現有檔案內容(如果存在),對舊版和新版的 JSON 物件進行鍵排序,並執行比較。它會指派一個狀態:「same」(相同)、「different」(不同)或「new」(新增)。

  6. 執行動作 (Action Execution): Check Status Switch n8n 節點會根據確定的狀態引導流程。如果狀態是「new」,則執行 Create new file GitHub n8n 節點。如果狀態是「different」,則執行 Edit existing file GitHub n8n 節點來更新內容。如果狀態是「same」,則 n8n 工作流程會對該項目完成,不執行任何動作。

安裝指南

若要部署這個強大的 n8n 工作流程,請遵循以下步驟:


  1. 匯入 (Import): 將這個 n8n 工作流程 JSON 匯入到您的 n8n 實例中。

  2. 憑證 (Credentials):Get file dataCreate new fileEdit existing file n8n 節點中設定或選取您的 GitHub API 憑證。請確保憑證令牌 (token) 具有儲存庫的讀/寫權限。

  3. API 憑證 (API Credentials): 在主要的 n8n 節點中設定您的 n8n API 憑證,使其能夠列出實例上的工作流程。

  4. 配置 (Configuration): 開啟 Globals n8n 節點,並在「指定 (Assignments)」分頁下更新參數:

repo.owner: 您的 GitHub 使用者名稱/組織名稱。
repo.name: 您希望用於備份的儲存庫名稱。
* repo.path: 想要的子目錄路徑(例如 workflows/)。如果您希望使用動態標記功能,請保留現有的表達式。

  1. 執行 (Execution): 您可以透過 Manual Trigger n8n 節點手動執行工作流程,或依賴已配置的 Schedule Trigger n8n 觸發器進行每日自動化。

節點詳情

這個 n8n 工作流程利用了幾個關鍵節點來達成其目標:

Schedule Trigger / Manual Trigger (n8n trigger): 啟動備份程序,提供排程或臨時執行的靈活性。
n8n (n8n node): 從 n8n 實例中檢索所有工作流程的列表,為主要迴圈提供輸入資料。
Execute Workflow (n8n node): 對於遞迴子工作流程模式至關重要,可有效迭代所有工作流程而不會使記憶體超載。
Globals (Set n8n node): 儲存關鍵配置變數(GitHub 儲存庫詳細資料),必須在 n8n 工作流程啟動前進行編輯。
Get file data (GitHub n8n node): 嘗試從 GitHub 擷取現有的工作流程備份檔案,對於比較步驟至關重要。設定為失敗時繼續執行。
If file too large (If n8n node) & Get File (HTTP Request n8n node): 處理 GitHub 回傳下載 URL 而非內容的情況,確保大型工作流程檔案能成功擷取。
isDiffOrNew (Code n8n node): 包含核心的客製化腳本邏輯。此 n8n 節點會解碼 base64 內容、對 JSON 鍵進行排序,並比較字串化的物件以判斷是否有有意義的變更,進而設定 githubstatus 屬性。
Check Status (Switch n8n node): 根據 Code n8n 節點計算出的 github
status(新增、不同或相同)來引導流程。


  • Create new file / Edit existing file (GitHub n8n node): 根據狀態,執行必要的 API 操作,將當前的 n8n 工作流程 JSON 資料提交到儲存庫。

相關 n8n 工作流程

免費

節點: 15 節點
更新时间: 2025年12月26日
建立者

精選*