このプロジェクトについて
GitHub Trending Reporterは、日次のGitHub Trendingページを閲覧可能なAI注釈付きレポートサイトに変換する小規模な自動化プロジェクトです。スケジュール実行時にトレンドリポジトリのリストを収集し、GitHub APIを通じて詳細情報を取得し、大規模言語モデル(LLM)に簡潔な要約とトレンドの考察を生成させ、その結果をMarkdownレポートとJSONデータとして書き出し、その後Docusaurusサイトを構築してGitHub Pagesにデプロイします。一連のシーケンスはGitHub Actionsワークフローによって駆動されるため、シークレットの設定さえ完了すれば手動操作は不要です。
READMEに記載されている主な機能は以下の通りです:
- GitHub Trendingの自動スクレイピング。プログラミング言語によるフィルタリングや、日次・週次・月次の期間選択が可能です。
- オプションのLLMベースの分析。各リポジトリのエントリにAIが作成した要約(約15〜25文字)を追加します。
- Docusaurusフロントエンドによる視覚的な提示。レポートはMarkdownファイルとして、生データはJSONとして保存されます。
- 収集、補完、分析、レポート生成、サイトデプロイまでをカバーするGitHub Actionsによるエンドツーエンドの自動化。
- 公開データエンドポイント。同じJSON出力をウェブサイトで読むだけでなく、外部のエージェントやアプリケーションで利用可能です。
リポジトリは、Python側(main.py, trending_scraper.py, llm_analyzer.py, data_pusher.py, config.py, requirements.txt)とDocusaurus/Node側(src, docusaurus.config.js, package.json)に分かれて構成されており、reports/とdata/に生成された出力が、.github/workflows/daily_report.ymlにスケジュールジョブが格納されています。
レポート生成のためにローカルで実行するには、Pythonの依存関係をインストールし、.env.exampleを.envにコピーしてAPIキーを提供した後、--localおよび--no-pushフラグを付けてmain.pyを呼び出す必要があります。ウェブサイトのプレビューには、標準的なnpm installとnpm startフローを使用します。設定は、LLMキー、ベースURL、モデル名の環境変数と、詳細なリポジトリ情報の取得および生成データのプッシュに使用されるGitHubトークンを通じて行われます。これらの値はGitHub Actionsのシークレットとしても設定されることが想定されています。
コマンドラインオプションには、言語フィルタ、トレンド期間を指定するsinceオプション、プッシュをスキップまたはローカルに保存するフラグ、YYYY-MM-DD形式の明示的な日付パラメータ、およびプロジェクトごとの詳細分析をスキップするスイッチが含まれています。
統合に関しては、プロジェクト内で2つのURLパターンがドキュメント化されています。reports/YYYY/MM/YYYY-MM-DD配下のHTMLレポートページと、data/YYYY/MM/YYYY-MM-DD.json配下の生JSONファイルです。JSONペイロードには、日付、生成タイムスタンプ、リポジトリ総数、およびfull_name、url、description、llm_summary、language、stars、stars_today、forks、topics、licenseなどのフィールドを持つリポジトリ配列が含まれています。短いPythonの例では、requestsを使用してそのJSONを取得し、上位のエントリを表示する方法が示されています。
READMEでは、ai-git-trendingプロジェクトがインスピレーションの源であると記されており、そのスクレイピング手法、LLM分析ワークフロー、レポート生成スキーム、および全体的なアーキテクチャが参照されたとしています。関連リンクには、GitHub Trending、Docusaurus、およびそのソースプロジェクトへのリンクがあります。スタックはPythonとDocusaurusで構成されています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.