Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】How I Built an Event-Driven Go Microservice to Automate Tech Updates from GitHub to LinkedIn

2026年10月03日に「Dev.to」が公開したITニュース「How I Built an Event-Driven Go Microservice to Automate Tech Updates from GitHub to LinkedIn」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

GitHubの技術更新をLinkedInへ自動投稿するGo製マイクロサービス「Git-To-Feed」を構築した。GitHub Webhookを起点にGemini AIで記事を作成し、Discordでの承認を経てLinkedInへ公開する仕組みだ。開発者の更新作業を自動化し、人間による最終確認を組み込んでいる。オープンソースで公開中。

ITニュース解説

システムエンジニアを目指す皆さんにとって、日々の開発作業と情報発信は密接な関係にあります。特に、新機能のリリースやバグ修正といった技術的なアップデートを、社内外に効果的に伝えることは非常に重要です。しかし、開発者が日々大量のコードを書き、多くの新機能を生み出す一方で、その技術的な内容を分かりやすく、魅力的な形でブログ記事やSNS(ソーシャルネットワーキングサービス)にまとめる作業は、後回しにされがちだったり、手動で行うには骨の折れる作業になりがちです。今回紹介する「Git-To-Feed」というシステムは、まさにこの課題を解決するために作られた、画期的なツールだ。

Git-To-Feedは、GitHub上での開発活動の更新情報を、自動的に加工し、承認を経てLinkedInに投稿する「イベント駆動型マイクロサービス」である。まず「イベント駆動型」とは、特定の出来事(イベント)が発生したことをきっかけに、一連の処理が自動的に開始され、次々と連鎖していくシステム設計の考え方を指す。例えば、GitHubでプルリクエストがマージされたり、新しいリリースが作成されたりする、といった出来事が「イベント」となる。また、「マイクロサービス」とは、大きな一つのアプリケーションを、それぞれが独立して機能する小さなサービスの集まりとして構築する手法である。これにより、各サービスは独立して開発・デプロイ・スケール(規模の拡張)できるため、柔軟性が高く、障害の影響範囲も小さく抑えられる。Git-To-Feedは、Googleが開発したプログラミング言語であるGoを使って構築されており、高いパフォーマンスと信頼性が期待できる。

このシステムの全体像は、GitHubからLinkedInへの情報の流れに沿って理解することができる。まず、GitHubで何らかの技術的な更新(プルリクエストのマージや新しいリリースの公開など)が発生すると、GitHubは「Webhook」と呼ばれる仕組みを使って、そのイベント情報をGit-To-Feedのシステムに送信する。Webhookは、特定のイベントが発生したときに、あらかじめ設定されたURLにHTTPリクエストを自動的に送る通知機能のようなものだ。

Git-To-Feedシステムは、このGitHubからのWebhook通知を受け取る「Webhook Handler」という部分から処理を開始する。ここで特に重要なのが「HMAC Signature Verification」というセキュリティ対策である。これは、送られてきたWebhook通知が本当にGitHubから発信されたものなのか、途中で改ざんされていないかを検証する仕組みだ。これにより、悪意のある第三者による不正な情報送信やシステムへの攻撃を防ぎ、データの信頼性を確保する。

Webhook HandlerがGitHubからの通知を検証し終えると、次にそのイベントの内容を処理する「Pipeline Gemini AI」という部分に引き渡される。ここで、Googleが開発した高度なAIであるGeminiが活躍する。AIの役割は、GitHubから送られてきた技術的な内容(例えば、プルリクエストの変更点やリリースノートの詳細など)を解析し、それをLinkedInの投稿に適した、分かりやすく魅力的な文章に変換することだ。開発者が書いた専門用語だらけの技術文書を、一般の読者にも理解しやすい言葉に、そしてビジネスシーンで受け入れられるような表現に生まれ変わらせるのだ。この際、「Anti-Cringe & Few-Shot Prompting」という技術が使われる。これは、AIに対して特定のパターンや例をいくつか示すことで、いわゆる「企業っぽすぎる」硬い表現や、逆に「ふざけすぎた」表現を避け、洗練された魅力的な文章を生成させるための工夫だ。

AIによって生成されたLinkedIn投稿のドラフトは、次のステップで「Discord Bot」を通じて開発者のDiscordチャンネルに送信される。Discordは、開発者コミュニティで広く使われているチャットツールだ。このDiscord Botは、生成された投稿案とともに「承認」と「却下」のインタラクティブなボタンを表示する。これが「Human-in-the-Loop」と呼ばれる、人間がシステムの一連の処理に介入する重要なポイントである。AIがどんなに高性能であっても、最終的に公開する情報の内容が意図通りか、間違いがないか、適切なトーンであるかを人間の目で確認することは不可欠だ。開発者はDiscord上で投稿案を確認し、問題なければ「承認」ボタンをタップし、修正が必要であれば「却下」してAIに再生成を指示したり、手動で修正したりする。

開発者によって承認された投稿内容は、次に「Approval Engine」という承認エンジンを通過する。承認エンジンは、Discordでの開発者の決定に基づいて、実際にLinkedInへの投稿を進めるか、それとも破棄するかを判断する。承認された場合のみ、いよいよ最終ステップである「LinkedIn API」を通じて、自動的にLinkedInのフィードに投稿される。LinkedIn APIは、LinkedInが提供する機能の一部を外部のアプリケーションから利用するためのインターフェースであり、Git-To-FeedはこのAPIを介して、スムーズかつ自動的に情報発信を行うことができる。

システムの内部構造にも、洗練された設計思想が見られる。「Package-by-Feature Layout」とは、コードを機能ごとに整理する手法である。具体的には、承認に関するロジック(internal/approval)、AIを使ったパイプライン処理(internal/pipeline)、投稿を行う機能(internal/publisher)といった、システムの核となるビジネスロジックをまとめた部分と、外部システムとの連携を行う部分(internal/platform、例えばGitHub Webhookの受け口やLinkedIn APIへの接続など)を明確に分離している。これにより、コードの見通しが良くなり、開発やメンテナンスが容易になるだけでなく、特定の機能だけを独立して改善したり、新しい機能を追加したりする際の柔軟性が高まる。

このGit-To-Feedプロジェクトは、オープンソースとしてGitHub上で公開されており、MITライセンスの下で誰でも自由に利用、改変、配布することができる。これは、開発者が協力してより良いツールを作り上げるというオープンソースの精神に基づいている。プロジェクトには、初心者でも取り組みやすい「good first issue」や、経験豊富な開発者向けの「help wanted」といったラベルが付けられた課題が公開されており、CI/CD(継続的インテグレーション/継続的デリバリー)のセットアップ、複数のSNSチャネルへの同時投稿機能、テストカバレッジの向上など、様々な分野での貢献が歓迎されている。

Git-To-Feedは、単にGitHubの更新をLinkedInに転記するだけでなく、その過程でAIを活用して情報を洗練させ、人間の承認を挟むことで品質を保ち、さらにセキュリティやコードの構造化にも配慮した、非常に実用的なシステムである。システムエンジニアを目指す皆さんにとって、このプロジェクトは、イベント駆動型アーキテクチャ、マイクロサービス、AIとの連携、APIの利用、セキュリティ対策、オープンソース開発への貢献といった、現代のソフトウェア開発に必要な多くの知識とスキルを実践的に学ぶための優れた教材となるだろう。

関連コンテンツ

関連IT用語

関連ITニュース