github RayLabsHQ/gitea-mirror v3.6.0

14 hours ago

fix: resolve SQLite parameter mismatch and implement robust GitHub API rate limiting

  • Fixed SQLite error "expected 37133 values, received 102669" when mirroring large numbers of starred repos (fixes #90)

    • Added missing fields to GitRepo interface: language, description, mirroredLocation, destinationOrg
    • Added missing organization fields: publicRepositoryCount, privateRepositoryCount, forkRepositoryCount
    • Ensured all database insert operations include all required fields
  • Implemented comprehensive GitHub API rate limit handling:

    • Integrated @octokit/plugin-throttling for automatic retry with exponential backoff
    • Added RateLimitManager service to track and enforce rate limits
    • Store rate limit status in database for persistence across restarts
    • Automatic pause and resume when limits are exceeded
    • Proper user identification for 5000 req/hr authenticated limit (vs 60 unauthenticated)
  • Improved rate limit UI/UX:

    • Removed intrusive rate limit card from dashboard
    • Toast notifications only at critical thresholds (80% and 100% usage)
    • All rate limit events logged for debugging
  • Optimized for GitHub's API constraints:

    • Reduced default batch size from 10 to 5 repositories
    • Added documentation about GitHub's 100 concurrent request limit
    • Better handling of repositories with many issues/PRs

Don't miss a new gitea-mirror release

NewReleases is sending notifications on new releases.