An intelligent ASP.NET Core application that integrates with Large Language Models (LLM) to automate GitHub issue management and newsletter generation for .NET Weekly.
- Automatic Issue Summarization: Receives GitHub webhook notifications when new issues are created
- AI-Powered Analysis: Uses LLM to analyze and summarize issue content
- Automatic Comments: Posts intelligent summaries back to the GitHub issue as comments
- Real-time Processing: Handles webhook events in real-time
- Issue Aggregation: Scans all open GitHub issues across repositories
- Content Curation: Uses AI to curate and organize issues into newsletter format
- Automated Publishing: Generates and publishes newsletters to designated repository folders
- Customizable Templates: Supports different newsletter formats and layouts
- Multi-language Support: Translates newsletters from Chinese to English
- AI-Powered Translation: Uses LLM for context-aware, high-quality translations
- Content Preservation: Maintains formatting and technical accuracy during translation
- Framework: ASP.NET Core 9.0
- Language: C# / TypeScript
- LLM Integration: OpenAI API / Azure OpenAI
- GitHub Integration: GitHub REST API & Webhooks & MCP Server
- Authentication: Personal Access Tokens
- Hosting: Azure App Service
- .NET 9.0 SDK
- GitHub Personal Access Toke
- LLM API credentials (OpenAI, Azure OpenAI, etc.)
- Visual Studio 2022 or VS Code
- Webhook Verification: All GitHub webhooks are verified using HMAC-SHA256
- API Rate Limiting: Implements rate limiting for GitHub API calls
- Secure Configuration: Sensitive data stored in environment variables
- Input Validation: All inputs are validated and sanitized
See Work Breakdown section below for detailed development phases.
This project is licensed under the MIT License - see the LICENSE file for details.
Β·
-
Update project dependencies
- Add GitHub API client
- Add HTTP client for LLM APIs
- Add configuration management packages
- Add logging framework
-
Configuration Management
- Create
appsettings.json
structure for all required settings - Implement strongly-typed configuration classes
- Add environment variable support
- Create
appsettings.example.json
template
- Create
-
Base Infrastructure
- Set up dependency injection container
- Configure logging
- Add error handling middleware
- Set up CORS policies
-
GitHub Service Layer
- Create
IGitHubService
interface - Implement
GitHubService
class - Add methods for:
- Authenticating with GitHub API
- Fetching repository issues
- Adding comments to issues
- Creating/updating files in repositories
- Create
-
GitHub Models
- Create
GitHubWebhookPayload.cs
for webhook data - Create
IssueModel.cs
for issue representation - Create
CommentModel.cs
for comment data - Add JSON serialization attributes
- Create
-
Webhook Controller
- Create
WebhookController.cs
- Implement webhook signature verification
- Add webhook payload parsing
- Create
-
Webhook Security
- Implement HMAC-SHA256 verification
- Add IP whitelist validation (optional)
- Create middleware for webhook authentication
-
LLM Service Interface
- Create
ILLMService
interface - Define methods for:
- Issue summarization
- Content translation
- Newsletter generation
- Create
-
LLM Service Implementation
- Implement
LLMService
class - Add support for OpenAI API
- Add support for Azure OpenAI
- Implement retry logic and error handling
- Add token counting and cost tracking
- Implement
-
Issue Analysis
- Create prompt templates for issue summarization
- Implement issue content preprocessing
- Add context extraction (labels, assignees, etc.)
- Create summary generation logic
-
Comment Management
- Implement automatic comment posting
- Add comment formatting templates
- Create duplicate comment prevention
- Add comment update functionality
- Async Processing
- Implement background job processing
- Add queue management for webhook events
- Create retry mechanisms for failed operations
- Add processing status tracking
-
Newsletter Service Interface
- Define methods for:
- Issue aggregation
- Content curation
- Newsletter formatting
- Publishing
- Define methods for:
-
Newsletter Service Implementation
- Implement issue scanning across repositories
- Add content categorization logic
- Create newsletter template system
- Implement markdown/HTML generation
-
Template System
- Create base newsletter template
- Add categorization templates (bugs, features, discussions)
- Implement dynamic content insertion
- Add customizable formatting options
-
Content Curation
- Implement AI-powered content selection
- Add duplicate detection
- Create relevance scoring
- Implement content summarization
- Repository Publishing
- Implement file creation in GitHub repositories
- Add versioning and archiving
- Create publication workflows
- Add publishing history tracking
-
Translation Service
- Extend
LLMService
with translation capabilities - Create translation prompt templates
- Implement language detection
- Add translation quality validation
- Extend
-
Multi-language Support
- Create language configuration system
- Add support for Chinese to English translation
- Implement format preservation during translation
- Add technical term handling
- Batch Translation
- Implement newsletter translation workflows
- Add progress tracking for large documents
- Create translation caching
- Add human review integration points
-
Main Dashboard
- Create responsive dashboard layout
- Add recent activity display
- Implement status monitoring
- Add quick action buttons
-
Issue Management Interface
- Create issue list view
- Add filtering and searching
- Implement bulk operations
- Add processing status indicators
-
Newsletter Interface
- Create newsletter preview functionality
- Add editing capabilities
- Implement publication scheduling
- Add translation management
-
Configuration UI
- Create settings management interface
- Add repository configuration
- Implement webhook management
- Add API key management
- Activity Monitoring
- Add processing statistics
- Implement error tracking
- Create usage analytics
- Add performance metrics
-
Unit Tests
- Test all service classes
- Test webhook processing
- Test LLM integration
- Test GitHub API interactions
-
Integration Tests
- Test end-to-end workflows
- Test webhook to comment flow
- Test newsletter generation
- Test translation pipeline
-
API Documentation
- Document all endpoints
- Add request/response examples
- Create webhook setup guide
- Add troubleshooting guide
-
Deployment Documentation
- Create Docker deployment guide
- Add Azure App Service instructions
- Document environment setup
- Add monitoring setup guide
-
Performance Optimization
- Implement caching strategies
- Add connection pooling
- Optimize database queries (if applicable)
- Add performance monitoring
-
Security Hardening
- Security audit and penetration testing
- Add rate limiting
- Implement request validation
- Add security headers
-
Deployment & CI/CD
- Set up GitHub Actions workflow
- Create Docker containers
- Configure production environment
- Set up monitoring and alerting