About breaking changes
Breaking changes are any changes that might require action from our integrators. We divide these changes into two categories:
- Breaking: Changes that will break existing queries to the GraphQL API. For example, removing a field would be a breaking change.
- Dangerous: Changes that won't break existing queries but could affect the runtime behavior of clients. Adding an enum value is an example of a dangerous change.
We strive to provide stable APIs for our integrators. When a new feature is still evolving, we release it behind a schema preview.
We'll announce upcoming breaking changes at least three months before making changes to the GraphQL schema, to give integrators time to make the necessary adjustments. Changes go into effect on the first day of a quarter (January 1st, April 1st, July 1st, or October 1st). For example, if we announce a change on January 15th, it will be made on July 1st.
Changes scheduled for 2020-10-01
- Breaking A change will be made to
PullRequest.timeline.Description:
timelinewill be removed. Use PullRequest.timelineItems instead.Reason:
timelinewill be removed
- Breaking A change will be made to
Issue.timeline.Description:
timelinewill be removed. Use Issue.timelineItems instead.Reason:
timelinewill be removed
Changes scheduled for 2020-04-01
- Breaking A change will be made to
User.registryPackagesForQuery.Description:
registryPackagesForQuerywill be removed. Use thePackageSearchobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
User.registryPackages.Description:
registryPackageswill be removed. Use thePackageOwnerobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Sponsorship.maintainer.Description:
maintainerwill be removed. UseSponsorship.sponsorableinstead.Reason:
Sponsorship.maintainerwill be removed.
- Breaking A change will be made to
Repository.registryPackagesForQuery.Description:
registryPackagesForQuerywill be removed. Use thePackageSearchobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Repository.registryPackages.Description:
registryPackageswill be removed. Use thePackageOwnerobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsTotalCount.Description:
downloadsTotalCountwill be removed. Use thePackageVersionStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsToday.Description:
downloadsTodaywill be removed. Use thePackageVersionStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsThisYear.Description:
downloadsThisYearwill be removed. Use thePackageVersionStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsThisWeek.Description:
downloadsThisWeekwill be removed. Use thePackageVersionStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsThisMonth.Description:
downloadsThisMonthwill be removed. Use thePackageVersionStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.viewerCanEdit.Description:
viewerCanEditwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.version.Description:
versionwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.updatedAt.Description:
updatedAtwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.summary.Description:
summarywill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.statistics.Description:
statisticswill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.size.Description:
sizewill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.sha256.Description:
sha256will be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.release.Description:
releasewill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.registryPackage.Description:
registryPackagewill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.readmeHtml.Description:
readmeHtmlwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.readme.Description:
readmewill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.preRelease.Description:
preReleasewill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.platform.Description:
platformwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.manifest.Description:
manifestwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.installationCommand.Description:
installationCommandwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.files.Description:
fileswill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.fileByName.Description:
fileByNamewill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.dependencies.Description:
dependencieswill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.deleted.Description:
deletedwill be removed. Use thePackageVersionobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageTag.version.Description:
versionwill be removed. Use thePackageTagobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageTag.name.Description:
namewill be removed. Use thePackageTagobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsTotalCount.Description:
downloadsTotalCountwill be removed. Use thePackageStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsToday.Description:
downloadsTodaywill be removed. Use thePackageStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsThisYear.Description:
downloadsThisYearwill be removed. Use thePackageStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsThisWeek.Description:
downloadsThisWeekwill be removed. Use thePackageStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsThisMonth.Description:
downloadsThisMonthwill be removed. Use thePackageStatisticsobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageSearch.registryPackagesForQuery.Description:
registryPackagesForQuerywill be removed. Use thePackageSearchobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageOwner.registryPackages.Description:
registryPackageswill be removed. Use thePackageOwnerobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.url.Description:
urlwill be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.size.Description:
sizewill be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.sha256.Description:
sha256will be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.sha1.Description:
sha1will be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.packageVersion.Description:
packageVersionwill be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.name.Description:
namewill be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.metadataUrl.Description:
metadataUrlwill be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.md5.Description:
md5will be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.guid.Description:
guidwill be removed. Use thePackageFileobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageDependency.version.Description:
versionwill be removed. Use thePackageDependencyobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageDependency.name.Description:
namewill be removed. Use thePackageDependencyobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageDependency.dependencyType.Description:
dependencyTypewill be removed. Use thePackageDependencyobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versionsByMetadatum.Description:
versionsByMetadatumwill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versions.Description:
versionswill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versionBySha256.Description:
versionBySha256will be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versionByPlatform.Description:
versionByPlatformwill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.version.Description:
versionwill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.topics.Description:
topicswill be removed. Use thePackageobject.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.tags.Description:
tagswill be removed. Use thePackageobject.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.statistics.Description:
statisticswill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.repository.Description:
repositorywill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.registryPackageType.Description:
registryPackageTypewill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.preReleaseVersions.Description:
preReleaseVersionswill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.packageType.Description:
packageTypewill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.packageFileBySha256.Description:
packageFileBySha256will be removed. Use thePackageobject.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.packageFileByGuid.Description:
packageFileByGuidwill be removed. Use thePackageobject.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.nameWithOwner.Description:
nameWithOwnerwill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.name.Description:
namewill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.latestVersion.Description:
latestVersionwill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.color.Description:
colorwill be removed. Use thePackageobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Organization.registryPackagesForQuery.Description:
registryPackagesForQuerywill be removed. Use thePackageSearchobject instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Organization.registryPackages.Description:
registryPackageswill be removed. Use thePackageOwnerobject instead.Reason:
Renaming GitHub Packages fields and objects.
Changes scheduled for 2020-01-01
- Breaking A change will be made to
UnassignedEvent.user.Description:
userwill be removed. Use theassigneefield instead.Reason:
Assignees can now be mannequins.
- Breaking A change will be made to
EnterpriseBillingInfo.seats.Description:
seatswill be removed. Use EnterpriseBillingInfo.totalLicenses instead.Reason:
seatswill be replaced withtotalLicensesto provide more clarity on the value being returned
- Breaking A change will be made to
EnterpriseBillingInfo.availableSeats.Description:
availableSeatswill be removed. Use EnterpriseBillingInfo.totalAvailableLicenses instead.Reason:
availableSeatswill be replaced withtotalAvailableLicensesto provide more clarity on the value being returned
- Breaking A change will be made to
AssignedEvent.user.Description:
userwill be removed. Use theassigneefield instead.Reason:
Assignees can now be mannequins.
Changes scheduled for 2019-10-01
- Breaking A change will be made to
User.pinnedRepositories.Description:
pinnedRepositorieswill be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed
- Breaking A change will be made to
RepositoryOwner.pinnedRepositories.Description:
pinnedRepositorieswill be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed
- Breaking A change will be made to
Organization.pinnedRepositories.Description:
pinnedRepositorieswill be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed
- Breaking A change will be made to
ContributionOrder.field.Description:
fieldwill be removed. Only one order field is supported.Reason:
fieldwill be removed.
Changes scheduled for 2019-04-01
- Breaking A change will be made to
Migration.uploadUrlTemplate.Description:
uploadUrlTemplatewill be removed. UseuploadUrlinstead.Reason:
uploadUrlTemplateis being removed because it is not a standard URL and adds an extra user step.