GitHubを利用したワークフローバージョン管理のための双方向同期 - n8n ワークフロー

この高度なn8nテンプレートを使用して、n8nワークフローとGitHubとの間の双方向同期を自動化し、堅牢なバージョン管理、バックアップ、共同開発を実現します。

ワークフロープレビュー

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

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

こんな方におすすめ

複雑なn8nワークフローロジックに対して信頼性の高いバージョン管理を必要とするオートメーション開発者。
環境の同期とn8nテンプレートへの共同アクセスが必要なチーム。
n8nインスタンス設定の堅牢なスケジュールバックアップを必要とするユーザー。
n8nワークフロー内での高度なフロー制御とAPI連携の具体例を探している技術系ユーザー。

概要

この包括的なn8nワークフローは、重要なn8nテンプレートと自動化のバージョン管理および確実なバックアップという重要なニーズに対応します。開発者や上級n8nユーザーは、ローカルのn8nワークフロー定義と外部リポジトリの状態を同期させ続けることに苦労しており、共同作業や障害復旧が困難になっています。この専用n8nテンプレートは高度な双方向アプローチを採用しています。ローカルのn8nワークフローとGitHub上の対応ファイルをすべて比較します。ワークフローがn8nにしかない場合はGitHubにアップロードし、GitHubにしかない場合はn8nにインポートします。最も重要な点として、タイムスタンプをチェックしてバージョン競合をインテリジェントに解決し、最新バージョン(ローカルかリモートかを問わない)が優先されるようにします。この強力なn8nノードロジックにより、自動化プロセスは常にバージョン管理された状態に保たれます。

仕組み


  1. プロセスはn8nのトリガー、具体的には毎週(月曜)実行されるように設定されたスケジュールトリガーによって開始されます。

  2. ワークフローはまず、Set n8nノードを使用して、GitHub認証情報、リポジトリ名、n8nワークフローJSONファイルが保存されている特定のフォルダパスなどの重要な設定変数を定義します。

  3. 2つの並列ブランチが開始されます。一方は内部のn8nノードを使用してアクティブな全ローカルn8nワークフローのメタデータを取得し、もう一方はGitHub n8nノードを使用してリポジトリ内の既存の全ワークフローファイルを一覧表示します。

  4. GitHubから取得したファイルは個別に取得され、base64から実用的なJSON形式にデコードされます。

  5. 中心となるのはCompare Datasets n8nノードで、ワークフローIDをユニークキーとして使用し、ローカルのn8nワークフローリスト(入力A)とデコードされたGitHubファイル(入力B)を比較し、フローを「n8nのみ」「GitHubのみ」「差分あり」「同一」の4つのパスに分割します。

  6. ローカルの新規ワークフロー(n8nのみ): ローカルにのみ存在するワークフローはbase64に変換され、GitHub n8nノードを使用してアップロードされ、新しいファイルが作成されます。

  7. リモートの新規ワークフロー(GitHubのみ): GitHubにのみ存在するワークフローは、専用のn8nノード操作「ワークフローを作成 (Create workflow)」を使用してn8nインスタンスにインポートされます。

  8. バージョン競合(差分あり): If n8nノードが updatedAt タイムスタンプを確認します。GitHubのバージョンが新しい場合、Update workflow n8nノードを介してローカルのn8nワークフローが更新されます。ローカルのn8nワークフローが新しい場合は、準備、エンコードが行われ、GitHub上のファイルが上書きされるようにアップロードされ、最新の変更が確実に保存されます。この強力なn8nノードの比較機能が同期維持の鍵となります。

インストールガイド


  1. n8nワークフローのインポート: 提供されたJSONをコピーし、お使いのn8nインスタンスに直接インポートします。

  2. GitHub認証情報: 対象リポジトリに対して読み取りおよび書き込みアクセス権を持つGitHub認証情報を設定する必要があります。

  3. 「Set GitHub Details」n8nノードの設定: 「Set GitHub Details」n8nノードを開き、以下の必須項目に入力します。

githubaccountname: あなたのGitHubユーザー名または組織名。
githubreponame: n8nテンプレートを保存するために専用に設定するリポジトリ名。
* repoworkflowspath: リポジトリ内のワークフローが存在するディレクトリパス(例: workflows/ または n8n_backups/)。

  1. n8n認証情報: ワークフローがローカルのn8nインスタンス(一覧表示、作成、更新)と対話できるように、アクティブなn8n API認証情報が設定されていることを確認してください。

  2. 有効化: 認証情報と設定が適用されたら、n8nトリガーを有効にしてスケジュールされた同期を開始します。

ノード詳細

スケジュールトリガー (n8nトリガー): ワークフロー全体の同期プロセスを週次スケジュールで実行する主要なn8nトリガー。
GitHub詳細設定 (Set n8nノード): 後続のGitHub n8nノード操作で必要となるグローバル変数(リポジトリパス、アカウント名)を注入するために使用されます。
n8n (n8nノード): 3つの主要な方法で使用されます。1) アクティブな全n8nワークフローの一覧表示。2) GitHubでのみ見つかった新規ワークフローの作成。3) GitHub側が最新の場合のn8nワークフローの更新。
GitHub (n8nノード): リポジトリの内容一覧表示、個別ファイルの取得、新規ワークフローファイルのアップロード、既存ファイルの編集など、リポジトリ上でのファイル操作を処理します。
データセットの比較 (n8nノード): 中核となる意思決定を行うn8nノード。IDに基づいてローカルとリモートのワークフローデータセットを比較し、新規、削除済み、または異なるn8nテンプレートを識別します。
GitHubより前のIf n8n (If n8nノード): 競合解決ロジックを実行し、タイムスタンプを比較することで、どちらのバージョンのn8nワークフローが最新(優先)かを判断します。


  • ファイルへの変換 / ファイルからの抽出 (n8nノード): ローカルワークフローが最新である場合など、GitHub APIアップロードのためにn8nワークフローJSONデータを準備(バイナリへの変換やbase64へのエンコード)するのに不可欠です。

関連するn8nワークフロー

無料

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

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

特徴*