このプロジェクトは、Unreal EngineのプライベートGitHubリポジトリの更新を定期的に監視し、AI(Google Gemini)が重要な変更(新機能や仕様変更など)を要約して、GitHub Discussionsにレポートとして投稿する自動化ツールです。
|
注意:この画像はレポートの一例で、内容はすべてダミーです。Unreal Engineで実際に行われた更新ではありません。
このツールを自分でセットアップしなくても、生成済みのレポートを購読できます。 以下のリポジトリでは、毎日定時に生成したレポートをGitHub Discussionsに投稿しています。
UnrealEngine-UpdateTrackerReport リポジトリを購読する
注意: このレポートリポジトリはプライベートのため、閲覧にはUnreal Engineのソースコードリポジトリへのアクセスが許可されたGitHubアカウントが必要です。
- 自動更新チェック: GitHub Actionsで、毎日決まった時刻(日本時間 午前8時 / UTC 23:00)または手動で、UEリポジトリの最新コミットを取得します。
- 複数ブランチの並行追跡: 既定で
ue5-mainとue6-mainを同時に追跡します(UE_BRANCHESで変更可能)。 - AIによる要約: Gemini APIがコミット内容を分析し、「新機能」「仕様変更」などのカテゴリに分類して要約します。
- Discussionへの投稿: 生成したレポートを、リポジトリのGitHub Discussionsに「Unreal Engine Daily Report」として投稿します。追跡している各ブランチ(UE5 / UE6 など)は、1つのレポート内に見出しで分けて併記されます。
- Slack通知: レポートを指定のSlackチャンネルにも同時に通知できます。
- Discord通知: レポートを指定のDiscordチャンネルにも同時に通知できます。
このツールが日々のUEキャッチアップに役立っていれば嬉しいです。
開発は個人が趣味と実益を兼ねて、コーヒー代やAPI利用料を自腹でやりくりしながら続けています☕ もし気に入っていただけたら、GitHub Sponsorsで応援していただけると開発の励みになります。
ここから先は、このツールをフォークして自分でカスタマイズしたい方向けのドキュメントです。
-
このリポジトリをフォーク (Fork) 右上の Fork ボタンをクリックして、このリポジトリを自分のGitHubアカウントにコピーします。
-
基本シークレットの設定 まず、ツールの動作に必須となる以下のシークレットを、リポジトリの
Settings>Secrets and variables>Actionsに登録します。UE_REPO_PAT: Unreal Engineのプライベートリポジトリ(EpicGames/UnrealEngine)への読み取りアクセス権を持つPersonal Access Token (PAT)。GEMINI_API_KEY: Google AI Studioで取得したAPIキー。
-
通知先の設定(少なくとも1つ必須) 次に、レポートの通知先を選んで設定します。GitHub Discussion、Slack、Discordのいずれか、またはすべてを設定できます。
チームでの議論や記録の永続化に適しています。
- Discussionsを有効化: レポート投稿先リポジトリの
Settings>General>FeaturesでDiscussionsを有効化します。 - カテゴリを作成: Discussionsタブでカテゴリを作成します(例:
Announcements)。 - シークレットを追加: 以下を登録します。
DISCUSSION_REPO: レポートを投稿する先のプライベートリポジトリ名(例:MyOrg/MyTeamRepo)。DISCUSSION_REPO_PAT:DISCUSSION_REPOにDiscussionを書き込む権限を持つPAT。
リアルタイムな通知や素早い情報共有に適しています。
- Incoming Webhookを作成: Slackのドキュメントに従い、通知したいチャンネル用のWebhook URLを発行します。
- シークレットを追加: 以下を登録します。
SLACK_WEBHOOK_URL: 上記で発行したIncoming WebhookのURL。SLACK_CHANNEL: 通知を投稿するSlackチャンネル名(例:#ue-updates)。
Slackと同様、リアルタイムな通知に適しています。
- Webhookを作成: Discordのドキュメントに従い、通知したいチャンネル用のWebhook URLを作成します。DiscordではこのURL自体が投稿先チャンネルを決めるため、Slackのようにチャンネル名を別途指定する必要はありません。
- シークレットを追加: 以下を登録します。
DISCORD_WEBHOOK_URL: 上記で作成したWebhookのURL。
- Discussionsを有効化: レポート投稿先リポジトリの
Unreal Engineの更新履歴は、Epic Gamesのライセンス契約に基づき、許可されたアカウントのみがアクセスできる機密情報です。意図しない情報漏洩を防ぐため、このツールは通知先が1つも設定されていないと動作を停止します。
レポートの投稿先(DISCUSSION_REPO、Slackチャンネル、Discordチャンネル)には、Unreal Engineのソースコードリポジトリのフォーク、または同等のアクセス権を持つメンバーだけが参加するプライベートな場所を指定することを強く推奨します。これにより、ライセンス契約を遵守して安全に情報を共有できます。
-
自動実行: 設定したスケジュール(デフォルトは毎日 日本時間午前8時 / UTC 23:00)になると、ワークフローが自動的に実行されます。
-
手動実行: リポジトリの
ActionsタブでUnreal Engine Update Trackerワークフローを選び、Run workflowボタンから手動でも実行できます(手動実行はリポジトリの管理者のみ可能です)。- Report Language: レポートを出力する言語を入力します(例:
Japanese,English)。デフォルトはJapanese。 - Commit Scan Limit: 手動実行時にスキャンする最新コミット数。デフォルトは過去24時間。
- UE Branches: 追跡するブランチをカンマ区切りで指定します(例:
ue5-main,ue6-main)。デフォルトはue5-main,ue6-main。 - Discussion Category: レポートを投稿するDiscussionカテゴリ名。デフォルトは
Daily Reports。 - Gemini Model: 解析に使用するAIモデル名。デフォルトは
gemini-3.5-flash。 - Slack Webhook URL: 一時的に使用するSlack Webhook URL。Secretの値を上書きします。
- Slack Channel: 一時的に使用するSlackチャンネル名。Secretの値を上書きします。
- Discord Webhook URL: 一時的に使用するDiscord Webhook URL。Secretの値を上書きします。
- Report Language: レポートを出力する言語を入力します(例:
-
デフォルト値の変更: スケジュール実行・手動実行のデフォルト値は、リポジトリの Variables で変更できます。
Settings>Secrets and variables>ActionsのVariablesタブで、以下を設定します。REPORT_LANGUAGE: デフォルトのレポート言語(例:English)。DISCUSSION_CATEGORY: デフォルトの投稿先カテゴリ名(例:Daily Reports)。GEMINI_MODEL: デフォルトで使用するAIモデル。デフォルトはgemini-3.5-flash。より高品質を求める場合はgemini-3.1-proなどに変更できます。UE_BRANCHES: 監視対象のブランチ名をカンマ区切りで指定(例:ue5-main,ue6-mainやrelease)。デフォルトはue5-main,ue6-main。複数指定すると、各ブランチのレポートが1つの投稿内に見出しで分けて併記されます(Discordは文字数制限のため複数メッセージに自動分割されます)。なお、従来の単一ブランチ用UE_BRANCHVariable も後方互換として引き続き利用できます(UE_BRANCHES未設定時に参照されます)。
レポートのカテゴリ、要約のスタイル、全体の構成は、AIへの指示(プロンプト)で決まります。
より詳細なレポートが欲しい、特定の情報を強調したいなど、フォーマットを変えたい場合は、リポジトリのルートにある prompts/report_prompt.md を直接編集してください。このファイルを変更すれば、Pythonコードに触れずにAIの振る舞いをカスタマイズできます。
本ツールを利用する前に、以下を必ずお読みください。
-
利用者の責任: 本ツールはUnreal Engineのライセンス契約を遵守するよう慎重に設計していますが、最終的な運用責任は利用者にあります。とくにレポートの投稿先(
DISCUSSION_REPO)には、必ずアクセスを制限したプライベートリポジトリを指定してください。公開リポジトリに投稿すると、ライセンス違反となる可能性があります。 -
APIキーと課金:
- 本ツールはGoogle Gemini APIを利用しており、利用量に応じた料金が発生する場合があります。
- このリポジトリをフォークして利用する場合、フォークしたオーナーが自身のAPIキーの課金責任をすべて負います。
- Unreal Engineの規約を確実に遵守するため、送信データがAIの学習に利用されないライセンスのAPIキーを使用することを強く推奨します。
-
設計上の安全性:
- ライセンス違反のリスクを抑えるため、本ツールはAIへの情報提供にあたり、Unreal Engineのソースコードやコード差分(diff)そのものは一切送信しません。分析対象はコミットメッセージと変更されたファイルパスのみです。
-
実行に関する注意:
- 本スクリプトは設定に従って実際にGitHub Discussionsへ投稿します。テスト実行の際はご注意ください。
- 各種APIには利用制限(レートリミット)があります。
