🎸

【n8n】「今日何やったっけ?」を撲滅。GitHubとSlackから「開発日報」を全自動生成するワークフロー

に公開

はじめに

エンジニアの皆さん、毎日の「日報」や「翌朝のスタンドアップ(朝会)の準備」、正直面倒くさくないですか?

「今日どんなコミットしたっけ……(GitHubの履歴を遡る)」

「あの件、誰とどこまで話したっけ……(Slackを検索する)」

「えーと、明日の予定は……」

この「思い出す時間」と「まとめる時間」は、生産的な開発時間ではありません。 そこで、n8n と Gemini を使って、「一日の終わりに、GitHubのコミット履歴とSlackの発言履歴を勝手に集計し、AIが日報の下書きを書いて送ってくれる」 ワークフローを作りました。

作ったもの

  • Smart Developer Journal

  • 収集: 指定したリポジトリの「今日のコミット」と、チームチャンネルの「自分の発言」を自動収集。

  • 思考: Gemini (AI) が内容を要約し、「Done(やったこと)」「Doing(進行中)」「Blockers(困っていること)」 に整理。

  • 出力: Slack(自分宛のDMや日報チャンネル)に、整形されたレポートを投稿。

システム構成

  • トリガー: Schedule Trigger (毎日18:00)

  • 情報源: GitHub API, Slack API

  • AI: Google Gemini (Gemini 1.5 Flash)

  • 出力: Slack

🔑 ここがキモ!Slackの「読み取り」権限設定

このワークフローを作る上で最大の壁になるのが、「Slackの会話履歴をどうやって取得するか」 です。

通常、Slack通知によく使われる Incoming Webhook は 「書き込み専用」 であり、チャンネルの過去ログを読み取ることはできません。 日報を書くには「今日チームで何を話したか」という情報が不可欠です。

そこで今回は、Slack App (Bot) を作成し、適切な権限(Scopes)を与えてAPI経由でアクセスします。手順は以下の通りです。

  1. Slack Appの作成
    Slack API にアクセスし、Create New App → From scratch を選択して、適当な名前(例: n8n-journal-bot)でアプリを作成します。

  2. 権限(Scopes)の付与
    左メニューの "OAuth & Permissions" を開き、下のほうにある "Bot Token Scopes" に以下の3つを追加します。

  • channels:history: パブリックチャンネルの会話履歴を読むため(必須)

  • chat:write: 日報を投稿するため(必須)

  • groups:history: (※プライベートチャンネルを読む場合は必要)

  1. ワークスペースへのインストール
    同ページ上部の Install to Workspace をクリックして承認します。 すると Bot User OAuth Token(xoxb- から始まる文字列)が発行されます。これがn8nに入力する鍵になります。

  2. n8nでの認証設定
    n8nのSlackノードを開き、Credentialの種類で "Slack API" を選択します。 OAuth2設定を行うか、もっと簡単に済ませたい場合は「Access Token」欄に先ほどの xoxb-... トークンを貼り付けるだけでも動作します。

  3. アプリの招待(忘れがち!)
    最後に、ボットに読み取らせたい(&投稿させたい)Slackチャンネルを開き、ボットを招待します。

/invite @n8n-journal-bot
これで、n8nが 「あなたの代わりに過去ログを読み、あなたに代わって日報を書く」 準備が整いました。

工夫した点:テストモード(Mock Data)

API連携の設定は少し手間がかかります。「まずはAIの挙動だけ見てみたい」という方もいるでしょう。 そこで、API設定をする前でも動作確認ができるよう、ワークフロー内に「テストモード」 を搭載しました。

  • Configノード: TEST_MODE を true に設定。

  • Mock Dataノード:

  • GitHub: "fix: Resolved API timeout", "feat: Added login screen"

  • Slack: "Discussed UI design with Sarah", "Investigating DB latency"

というダミーデータを生成し、AIに流し込みます。

これにより、インポートしてExecuteボタンを押すだけで、Geminiがどのような日報を書いてくれるのかを即座に試すことができます。

実際の出力例(AIが書いた日報)

Geminiには「Tech Leadとして振る舞い、箇条書きでまとめろ」というプロンプトを与えているため、以下のような構造化されたレポートが生成されます。

📝 Daily Developer Report

Done:

ログイン画面の新規コンポーネント実装 (feat: Added new login screen)

ユーザー取得時のAPIタイムアウト問題を修正 (fix: Resolved API timeout)

Doing:

本番環境におけるDB遅延の調査 (Slackでの議論より)

Blockers:

特になし

Tomorrow:

UIデザインについてのSarahとの合意事項を実装に反映させる

これをSlackの下書きとして送らせれば、あとは微調整して送信ボタンを押すだけ。 「日報作成」という憂鬱な作業が、「AIの成果物チェック」という管理作業に変わります。

GitHubで公開しています

今回作成したワークフロー(JSON)はGitHubで公開しています。 ぜひ、あなたの開発チームに合わせてカスタマイズして使ってみてください。

📂 GitHubリポジトリ: 10-smart-developer-journal
https://github.com/alternativescom/n8n-automation-workflows/tree/9917948cc28ee9c2f5bbdddf69b8d6900a844a6f/10-smart-developer-journal

さいごに

「思い出す」という単純作業をAIにオフロードするだけで、一日の終わりの疲労感が全然違います。 n8n × AIで、開発者体験(DX)を自分自身でハックしていきましょう!

ぜひご参考にしてください
https://alternativecomputers.org/tag/n8n/

Discussion