To infinity and beyond: enabling the future of GitHub's REST API with API versioning
Blog post from GitHub
GitHub has introduced a calendar-based versioning system for its REST API to facilitate the evolution of the API while ensuring a smooth migration path for existing users. This new versioning strategy allows for the introduction of breaking changes, such as deleting response fields or endpoints, by releasing a new version named after its release date, with previous versions remaining accessible to avoid forcing immediate upgrades. Users can specify their preferred API version using the X-GitHub-Api-Version header, and non-breaking changes will remain available across all versions. The versioning applies solely to the REST API, not affecting the GraphQL API or webhooks. GitHub commits to supporting previous versions for at least two years but anticipates providing longer support in practice. The initial version under this system is 2022-11-28, mirroring the API's existing state, and users are encouraged to update their integrations accordingly. Future versions will be accompanied by changelogs, upgrade guides, and proactive communication through blog posts and emails to ensure developers are informed and equipped to manage updates efficiently.