GitHubへのn8nワークフロー自動バックアップ(差分チェック機能付き) - n8n ワークフロー

n8nの全ワークフローをGitHubへ自動バックアップする強力なn8nワークフローです。バージョン管理と履歴を確保。動的なパス指定と効率的な差分チェック機能を搭載。

ワークフロープレビュー

自動化の準備はいいですか?

このn8nワークフローテンプレートをダウンロードして、今すぐ使い始めましょう。

こんな方におすすめ

信頼性の高いバージョン管理を求めるn8n管理者およびDevOpsチーム。
自己呼び出し再帰ワークフローを活用した高度なn8nテンプレートを求めるユーザー。


  • n8nインスタンスの自動化された一元バックアップソリューションを必要とする開発者。

概要

本ワークフローは、本番環境でn8nを運用する組織にとって不可欠なメンテナンスソリューションです。すべてのn8nワークフローファイル(ID.json)をGitHubに堅牢にバージョン管理された状態でバックアップすることで、ワークフローの紛失や設定のズレ(コンフィギュレーションドリフト)の問題に対処します。
このシステムは、洗練された再帰型n8nノードのアプローチを採用し、実行中のワークフローの現在の状態を取得し、リポジトリに保存されているバージョンと比較するために、ワークフローを反復処理します。

このn8nワークフローの重要な利点はその効率性にあります。専用のCode n8nノード内でカスタム比較ロジックを採用することにより、実際に機能的な差分が検出された場合にのみGitHub APIを操作して更新を行います。これにより、不要なAPI呼び出しを最小限に抑え、リポジトリの履歴が明確で意味のあるものになります。このn8nワークフローを基盤として使用することで、自動化ロジックが確実にバックアップされ、追跡されることを保証できます。

仕組み

プロセスは、実行クリック時 n8nトリガーを使用して手動で開始するか、通常は午前7時に設定されるスケジュールトリガー n8nノード経由で自動的に開始されます。


  1. ワークフローの検出: n8n n8nノードが、現在のインスタンス上で公開されている全ワークフローの完全なリストを取得します。

  2. 再帰的な反復処理: アイテムをループ n8nノードとそれに続くワークフロー実行 n8nノードにより、自己呼び出し型の再帰ループが確立されます。このパターンは、各アイテムをサブワークフローとして呼び出すことで、数百のワークフローを効率的に処理するために実装されています。

  3. コンテキストとグローバル変数: サブワークフロー内で、設定 n8nノードが対象となるGitHubパラメータ(オーナー、リポジトリ、および先行するタグチェックノードで処理されるワークフロータグに基づく動的なパス)を定義します。

  4. 既存バックアップの確認: ファイルデータを取得 GitHub n8nノードは、リポジトリから既存のJSONファイルの取得を試みます。重要な点として、ファイルが新規の場合はエラーを無視して処理を継続します。ファイルが大きすぎて直接取得できない場合、ファイルが大きすぎる場合の分岐がアイテムをファイル取得(HTTPリクエスト)にルーティングし、提供されたURL経由でコンテンツをダウンロードします。

  5. 差分解析: アイテムを結合ノードがワークフローデータとGitHubファイルデータを統合します。次にisDiffOrNew Code n8nノードが既存ファイルの内容をデコード(存在する場合)、両方のJSONオブジェクトのキーをソートし、比較を実行します。その結果に基づき、「same(同じ)」「different(異なる)」「new(新規)」のステータスを割り当てます。

  6. アクションの実行: ステータス確認スイッチn8nノードは、決定されたステータスに基づいてフローを分岐させます。「new」の場合は新規ファイル作成 GitHub n8nノードが実行されます。「different」の場合は既存ファイル編集 GitHub n8nノードがコンテンツを更新します。「same」の場合は、n8nワークフローはそのアイテムの処理をアクションなしで完了します。

インストールガイド

この強力なn8nワークフローをデプロイするには、以下の手順に従ってください:


  1. インポート: このn8nワークフローJSONをお使いのn8nインスタンスにインポートします。

  2. 認証情報(GitHub): ファイルデータを取得新規ファイル作成既存ファイル編集の各n8nノードでGitHub API認証情報の設定または選択を行います。使用するトークンがリポジトリへの読み書きアクセス権限を持っていることを確認してください。

  3. API認証情報(n8n): インスタンス上のワークフロー一覧を取得できるように、メインのn8nノードでn8n API認証情報を設定します。

  4. 設定: 設定 n8nノードを開き、[割り当て]タブ内のパラメータを更新します:

repo.owner: あなたのGitHubユーザー名、または組織名。
repo.name: バックアップに使用したいリポジトリの名前。
* repo.path: 目的のサブディレクトリパス(例: workflows/)。ダイナミックタグ機能を利用したい場合は、既存の式をそのまま維持してください。

  1. 実行: 手動トリガー n8nノード経由でワークフローを手動で実行するか、設定済みのスケジュールトリガー n8nトリガーに頼って日次の自動化を実行します。

ノード詳細

このn8nワークフローは、その目的を達成するためにいくつかの主要なノードを利用しています:

スケジュールトリガー / 手動トリガー (n8nトリガー): バックアッププロセスを開始し、スケジュール実行またはアドホック(都度)実行の柔軟性を提供します。
n8n (n8nノード): n8nインスタンスから全ワークフローのリストを取得し、メインループへの入力データを提供します。
ワークフロー実行 (n8nノード): 再帰的なサブワークフローパターンに不可欠であり、メモリを過負荷にすることなく全ワークフローの反復処理を可能にします。
設定 (Set n8nノード): n8nワークフローがアクティブになる前に編集が必要な、重要な設定変数(GitHubリポジトリ詳細)を保持します。
ファイルデータを取得 (GitHub n8nノード): 比較ステップのために、GitHubから既存のワークフローバックアップファイルの取得を試みます。失敗時には処理を継続するように設定されています。
ファイルが大きすぎる場合 (If n8nノード) & ファイル取得 (HTTPリクエスト n8nノード): GitHubがコンテンツの代わりにダウンロードURLを返すケースを処理し、大きなワークフローファイルが確実に取得されるようにします。
isDiffOrNew (Code n8nノード): 中核となるカスタムスクリプトロジックを内包。base64コンテンツのデコード、JSONキーの順序付け、文字列化されたオブジェクトの比較を実行し、意味のある変更があったかどうかを判断して githubstatus プロパティを設定します。
ステータス確認 (Switch n8nノード): Code n8nノードによって計算された github
status(new, different, or same)に基づいてフローを分岐させます。


  • 新規ファイル作成 / 既存ファイル編集 (GitHub n8nノード): 現在のn8nワークフローJSONデータを使用し、ステータスに基づいた適切な操作を利用してリポジトリへのコミットに必要なAPI操作を実行します。

関連するn8nワークフロー

無料

ノード: 15 ノード
更新済み: 12月 26 2025
すべて表示
作成者

特徴*