n8nとGitHubを連携させることで、Issueの作成やPull Requestの検知、コードの変更に応じた通知などを自動化できます。
しかし、API認証やWebhookの設定、特にセルフホスト版環境での接続手順は複雑になりがちで、設定ミスによるエラーも少なくありません。
本記事では、n8nとGitHubを確実に連携させるための手順を、環境準備から認証設定、Webhookの疎通テストまでステップバイステップで解説します。
Cloud版だけでなく、セルフホスト版(Docker)で必須となる環境設定や、自動登録がうまくいかない場合の手動設定についても網羅しています。
【法人向け】現場で使える実践型AI研修!
株式会社KAGEMUSHAのAI研修は、現場業務に直結する実践型カリキュラムで、AI活用を「知識」で終わらせず「使えるスキル」として定着させます。
DX担当者・現場メンバーそれぞれのレベルに合わせ、生成AI・業務自動化・AIエージェント活用まで幅広く対応。
対面からオンライン・eラーニングと幅広い研修形式に対応しており、内製化や業務改善につながる設計が強みです。
研修内容・導入事例・カリキュラム詳細は、こちらのAI研修資料でご確認ください。

n8nとGitHub連携に必要な事前準備
n8nでGitHubを操作したり、GitHubからの通知を受け取ったりするためには、事前の環境と権限の確認が不可欠です。
まずは連携の全体像を把握しましょう。
連携の仕組みと全体像(APIとWebhook)
n8nとGitHubの連携には、大きく分けて2つの通信方向があります。
- n8n → GitHub(API操作)
n8nからGitHubの情報を取得したり、Issueを作成したりする操作です。これには「GitHub API」を使用し、認証にはPersonal Access Token(PAT)を使います。 - GitHub → n8n(Webhook通知)
GitHub上で「Issueが作られた」「Pushされた」などのイベントが発生した際、n8nに通知を送る仕組みです。これにはWebhookを使用し、n8n側で待ち受けるURLが必要になります。
本記事の手順通りに進めることで、この双方向の通信を確立できます。
必要なアカウントと権限の確認
作業を始める前に、以下のアカウントと権限が揃っているか確認してください。
- n8nアカウント
n8n Cloud版は登録済みであれば問題ありません。セルフホスト版はDocker等で稼働しており、管理者権限で設定変更が可能である必要があります。 - GitHubアカウント
連携させたいリポジトリに対してAdmin(管理者)権限を持っている必要があります。これはWebhookの設定を自動または手動で行うために必須です。
Webhookの設定にはリポジトリの管理者権限が必須となるため、事前に権限レベルを確認しておきましょう。
Step1:n8n環境の準備とWebhook受信設定
GitHubからの通知(Webhook)を受け取るためには、n8nがインターネットからアクセス可能な状態である必要があります。
利用しているn8nの環境によって手順が異なります。
n8n Cloud版を利用する場合(推奨)
n8nの公式Cloud版を利用している場合、特別なネットワーク設定は不要です。
アカウント作成時点で、外部からアクセス可能なWebhook URLが自動的に割り当てられています。このまま次のステップへ進んでください。
セルフホスト版(Docker)を利用する場合の必須設定
ローカル環境やVPS上のDockerでn8nをセルフホストしている場合、そのままではGitHubからのWebhookを受信できません。
以下の2点を設定する必要があります。
- 外部公開URLの確保(トンネリング)
ローカル環境(localhost)で動かしている場合は、ngrokなどのトンネリングツールを使用して、インターネットからアクセスできるURL(例:https://xxxx.ngrok.io)を発行してください。 - 環境変数 WEBHOOK_URL の設定
n8nに対して「自身の公開URL」を認識させる必要があります。Docker起動時の環境変数に以下を追加してください。
# Docker起動コマンドの例
docker run -it --rm
--name n8n
-p 5678:5678
-e WEBHOOK_URL=https://あなたの公開ドメイン/
n8n/n8n
この設定を行わないと、n8nが生成するWebhook URLが http://localhost:5678/... となり、GitHubから接続できず連携に失敗します。
セルフホスト版では、環境変数 WEBHOOK_URL を正しく設定しないと外部連携が機能しません。
Step2:GitHub認証情報(PAT)の取得と設定
n8nがGitHubを操作するための「鍵」となるPersonal Access Token(PAT)を発行し、n8nに登録します。
GitHubでのPAT発行手順と最小スコープの選び方
パスワード認証は廃止されているため、必ずトークンを発行します。
- GitHubにログインし、右上のアイコンから Settings を開きます。
- 左サイドバー最下部の Developer settings > Personal access tokens > Tokens (classic) を選択します。
- Generate new token (classic) をクリックします。
- Note には「n8n-integration」など用途がわかる名前を入力します。
- Select scopes(権限設定)では、以下の項目にチェックを入れます。
・repo:プライベートリポジトリを含むコード操作、Issue管理などに必要です。
・admin:repo_hook:n8nからWebhookを自動設定・削除するために必要です。 - Generate token をクリックし、表示されたトークン文字列(
ghp_...)をコピーします。
トークン文字列は画面を閉じると二度と表示されないため、必ず安全な場所に控えてください。
n8nへのCredential(認証情報)登録手順
取得したトークンをn8nに設定します。
- n8nの画面左側メニューから Credentials を選択し、Add Credential をクリックします。
- 検索窓で「GitHub API」を検索して選択します。
- 以下の情報を入力します。
・User:あなたのGitHubユーザー名
・Access Token:先ほどコピーしたPAT(ghp_...) - Save をクリックします。接続が成功すると「Connection tested successfully」と表示されます。
Step3:GitHubトリガーノードの設定(Webhook連携)
GitHubでのイベント発生を検知してワークフローを開始するためのトリガーを設定します。
監視イベントの選択とトリガーの配置
- n8nのワークフロー編集画面で + ボタンを押し、「GitHub Trigger」ノードを検索して追加します。
- Credential for GitHub API で、先ほど作成した認証情報を選択します。
- Repository 欄に、連携したいリポジトリを
Owner/Nameの形式で入力します(例:my-org/my-repo)。 - Events で監視したいイベントを選択します。
例:Issue(作成・更新時)、Push(コードプッシュ時)、Pull requestなど。
Webhookの自動登録と疎通テスト
n8nのGitHub Triggerノードは、設定完了時にGitHub側へWebhook設定を自動的に書き込みに行きます。
- ノード設定画面の下部にある Listen for test event をクリックします。
- GitHub側で、設定したイベント(例:Issue作成)を実際に実行します。
- n8nの画面が切り替わり、イベントデータ(JSON)が受信できれば成功です。
これで、GitHub側の「Settings > Webhooks」にもn8nのURLが自動登録されています。
【対処法】Webhookが自動登録できない場合の手動設定
セルフホスト版や権限設定によっては、自動登録時に「403 Forbidden」やエラーが発生することがあります。その場合は手動で設定します。
- n8nのGitHub Triggerノードにある Webhook URLs をクリックし、「Production URL」をコピーします。
- GitHubのリポジトリ画面を開き、Settings > Webhooks > Add webhook をクリックします。
- 以下の通り入力します。
・Payload URL:コピーしたn8nのURL
・Content type:application/json
・Secret:空欄(またはn8n側で設定した場合は入力)
・Which events would you like to trigger this webhook?:n8nで指定したイベントと同じものを選択。 - Add webhook を保存します。
自動登録がエラーになる場合は、GitHubの設定画面から手動でWebhook URLを追加すれば解決します。
Step4:アクションノード設定とワークフローの有効化
トリガーで受け取ったデータを元に、次の処理を実行する設定を行います。
実行したい操作(Action)の設定
トリガーノードの右側に、実行したい処理を行うノードを接続します。
ここでは例として、Issueが作成されたらSlackに通知する、あるいはGitHub上でコメントを返すなどの操作が考えられます。
- 「GitHub」ノードを追加します。
- Resource を選択(例:
Issue)。 - Operation を選択(例:
Create Comment)。 - 必要なパラメータ(Issue Numberやコメント本文)を、トリガーノードから受け取ったデータを使って設定します。
動作テストとワークフローのActive化
画面下部の Execute Workflow をクリックし、再度GitHub側でイベントを起こして、最後まで処理が流れるかテストします。
問題なければ、画面右上の Active スイッチを ON(緑色) に切り替えます。
ActiveスイッチをONにしない限り、本番環境として自動実行されないため注意してください。
安定運用のための注意点とエラー回避策
連携後に発生しやすいトラブルと、その回避策について解説します。
GitHub APIレート制限の仕組みと対策
GitHub APIには利用制限(Rate Limit)があります。PATを使用した認証の場合、通常 1時間あたり5,000リクエスト まで許可されています。
対策:ポーリング(定期的にデータを見に行く方式)ではなく、本記事で解説したWebhook(通知を受け取る方式)を利用することで、API消費量を大幅に節約できます。
n8nの「GitHub Trigger」はWebhook方式のため、効率的な運用が可能です。
よくあるエラー(401/403/Not Found)の原因
運用中にエラーが発生した場合、以下のポイントを確認してください。
- 401 Bad credentials
PATが無効になっているか、削除されています。トークンを再発行し、n8nのCredentialsを更新してください。 - 403 Forbidden
PATのスコープ(権限)不足です。特にWebhookの自動登録にはadmin:repo_hookが必要です。 - 404 Not Found
リポジトリ名(Owner/Name)が間違っているか、PATを発行したユーザーにそのリポジトリへのアクセス権がありません。 - Webhookが反応しない
セルフホスト版の場合、WEBHOOK_URLの設定ミスや、ngrok等のトンネルが切断されている可能性があります。
まとめ
n8nとGitHubを連携させることで、開発フローの自動化や通知の効率化が実現できます。
- 事前準備:GitHubのPAT発行(
repo,admin:repo_hook)とn8nの環境確認。 - セルフホスト版の注意:
WEBHOOK_URL環境変数の設定と外部公開URLの確保が必須。 - Webhook設定:基本は自動登録を利用し、エラー時はGitHub設定画面から手動登録を行う。
- 運用:ワークフローの「Active」化を忘れずに行い、APIレート制限を意識した設計にする。
まずはシンプルな「Issue作成通知」などのワークフローから作成し、徐々に自動化の範囲を広げてみてください。
【法人向け】現場で使える実践型AI研修!
株式会社KAGEMUSHAのAI研修は、現場業務に直結する実践型カリキュラムで、AI活用を「知識」で終わらせず「使えるスキル」として定着させます。
DX担当者・現場メンバーそれぞれのレベルに合わせ、生成AI・業務自動化・AIエージェント活用まで幅広く対応。
対面からオンライン・eラーニングと幅広い研修形式に対応しており、内製化や業務改善につながる設計が強みです。
研修内容・導入事例・カリキュラム詳細は、こちらのAI研修資料でご確認ください。

