What's Added
- Personal Access Token Support: New
NewPersonalAccessTokenSource
function for classic and fine-grained personal access tokens - Advanced Token Caching: Implemented dual-layer token caching system using
oauth2.ReuseTokenSource
- JWT tokens cached until expiration (up to 10 minutes)
- Installation tokens cached until expiration (up to 1 hour)
- High-Performance HTTP Client: Custom
cleanHTTPClient
implementation with connection pooling- Based on HashiCorp's go-cleanhttp patterns for production reliability
- HTTP/2 support with persistent connections
- No shared global state to prevent race conditions
What's Changed
- Significant Performance Improvements: Up to 99% reduction in unnecessary token generation and GitHub API calls
- Enhanced Documentation: Added comprehensive examples for personal access token usage
- Optimized Memory Usage: Reduced object allocation through intelligent token reuse
Performance
- GitHub App JWTs: Cached and reused until expiration instead of regenerating on every API call
- Installation Tokens: Cached until expiration, dramatically reducing GitHub API rate limit consumption
- Connection Pooling: HTTP connections reused across requests for faster GitHub API interactions
- Production Ready: Optimized for high-throughput applications and CI/CD systems
Full Changelog: v1.3.0...v1.4.0