How djangopeng/githubsentinel works
GitHub Sentinel turns subscribed GitHub activity and Hacker News stories into LLM-written reports, with interactive CLI/Gradio and scheduled daemon entry points. The graph preserves subscription management, source retrieval, report generation, model integrations, and email delivery. Edges follow shown calls or README descriptions; the source excerpts do not establish every runtime detail, so unsampled integrations and paths are not inferred.
Main entry points: command_tool.py Interactive CLI · gradio_server.py Gradio interface · daemon_process.py Scheduled daemon · report_generator.py Report generation
Components 20
User interfaces and scheduling
- Interactive CLI
src/command_tool.py - Command handler
src/command_handler.py - Gradio interface
src/gradio_server.py - Scheduled daemon
src/daemon_process.py
Subscriptions and source retrieval
- Subscription manager
src/subscription_manager.py - Subscriptions file
subscriptions.json - GitHub retrieval
src/github_client.py - Hacker News retrieval
src/hacker_news_client.py
Report generation and models
- Report generation
src/report_generator.py - Report prompts
prompts - Model adapter
src/llm.py
Configuration and delivery
- Configuration
src/config.py - Application config
config.json - Email notifier
src/notifier.py
Other components
- User
- GitHub API
- Hacker News
- OpenAI API
- Ollama service
- SMTP service
Connections 32
- User → Interactive CLI: enters commands
README.md - User → Gradio interface: uses interface
README.md - Interactive CLI → Configuration: loads
src/command_tool.py - Interactive CLI → GitHub retrieval: creates
src/command_tool.py - Interactive CLI → Model adapter: creates
src/command_tool.py - Interactive CLI → Report generation: creates
src/command_tool.py - Interactive CLI → Subscription manager: creates
src/command_tool.py - Interactive CLI → Command handler: dispatches to
src/command_tool.py - Command handler → Subscription manager: manages
src/command_handler.py - Command handler → GitHub retrieval: exports updates
src/command_handler.py - Command handler → Report generation: generates report
src/command_handler.py - Subscription manager → Subscriptions file: reads and writes
src/subscription_manager.py - GitHub retrieval → GitHub API: fetches updates
src/github_client.py - Hacker News retrieval → Hacker News: fetches stories
src/hacker_news_client.py - Gradio interface → Configuration: loads
src/gradio_server.py - Gradio interface → GitHub retrieval: exports progress
src/gradio_server.py - Gradio interface → Hacker News retrieval: exports stories
src/gradio_server.py - Gradio interface → Model adapter: creates
src/gradio_server.py - Gradio interface → Report generation: generates reports
src/gradio_server.py - Gradio interface → Subscription manager: lists subscriptions
src/gradio_server.py - Scheduled daemon → Configuration: loads
src/daemon_process.py - Scheduled daemon → Subscription manager: reads subscriptions
src/daemon_process.py - Scheduled daemon → GitHub retrieval: exports progress
src/daemon_process.py - Scheduled daemon → Hacker News retrieval: exports stories
src/daemon_process.py - Scheduled daemon → Report generation: generates reports
src/daemon_process.py - Scheduled daemon → Email notifier: sends reports
src/daemon_process.py - Report generation → Report prompts: loads prompts
src/report_generator.py - Report generation → Model adapter: requests generation
src/report_generator.py - Model adapter → OpenAI API: calls model
src/llm.py - Model adapter → Ollama service: posts prompt
src/llm.py - Email notifier → SMTP service: sends email
src/notifier.py - Configuration → Application config: reads settings
src/config.py