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:
timeline
will be removed. Use PullRequest.timelineItems instead.Reason:
timeline
will be removed
- Breaking A change will be made to
Issue.timeline
.Description:
timeline
will be removed. Use Issue.timelineItems instead.Reason:
timeline
will be removed
Changes scheduled for 2020-04-01
- Breaking A change will be made to
User.registryPackagesForQuery
.Description:
registryPackagesForQuery
will be removed. Use thePackageSearch
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
User.registryPackages
.Description:
registryPackages
will be removed. Use thePackageOwner
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Sponsorship.maintainer
.Description:
maintainer
will be removed. UseSponsorship.sponsorable
instead.Reason:
Sponsorship.maintainer
will be removed.
- Breaking A change will be made to
Repository.registryPackagesForQuery
.Description:
registryPackagesForQuery
will be removed. Use thePackageSearch
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Repository.registryPackages
.Description:
registryPackages
will be removed. Use thePackageOwner
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsTotalCount
.Description:
downloadsTotalCount
will be removed. Use thePackageVersionStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsToday
.Description:
downloadsToday
will be removed. Use thePackageVersionStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsThisYear
.Description:
downloadsThisYear
will be removed. Use thePackageVersionStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsThisWeek
.Description:
downloadsThisWeek
will be removed. Use thePackageVersionStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersionStatistics.downloadsThisMonth
.Description:
downloadsThisMonth
will be removed. Use thePackageVersionStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.viewerCanEdit
.Description:
viewerCanEdit
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.version
.Description:
version
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.updatedAt
.Description:
updatedAt
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.summary
.Description:
summary
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.statistics
.Description:
statistics
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.size
.Description:
size
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.sha256
.Description:
sha256
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.release
.Description:
release
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.registryPackage
.Description:
registryPackage
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.readmeHtml
.Description:
readmeHtml
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.readme
.Description:
readme
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.preRelease
.Description:
preRelease
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.platform
.Description:
platform
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.manifest
.Description:
manifest
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.installationCommand
.Description:
installationCommand
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.files
.Description:
files
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.fileByName
.Description:
fileByName
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.dependencies
.Description:
dependencies
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageVersion.deleted
.Description:
deleted
will be removed. Use thePackageVersion
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageTag.version
.Description:
version
will be removed. Use thePackageTag
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageTag.name
.Description:
name
will be removed. Use thePackageTag
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsTotalCount
.Description:
downloadsTotalCount
will be removed. Use thePackageStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsToday
.Description:
downloadsToday
will be removed. Use thePackageStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsThisYear
.Description:
downloadsThisYear
will be removed. Use thePackageStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsThisWeek
.Description:
downloadsThisWeek
will be removed. Use thePackageStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageStatistics.downloadsThisMonth
.Description:
downloadsThisMonth
will be removed. Use thePackageStatistics
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageSearch.registryPackagesForQuery
.Description:
registryPackagesForQuery
will be removed. Use thePackageSearch
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageOwner.registryPackages
.Description:
registryPackages
will be removed. Use thePackageOwner
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.url
.Description:
url
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.size
.Description:
size
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.sha256
.Description:
sha256
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.sha1
.Description:
sha1
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.packageVersion
.Description:
packageVersion
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.name
.Description:
name
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.metadataUrl
.Description:
metadataUrl
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.md5
.Description:
md5
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageFile.guid
.Description:
guid
will be removed. Use thePackageFile
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageDependency.version
.Description:
version
will be removed. Use thePackageDependency
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageDependency.name
.Description:
name
will be removed. Use thePackageDependency
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackageDependency.dependencyType
.Description:
dependencyType
will be removed. Use thePackageDependency
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versionsByMetadatum
.Description:
versionsByMetadatum
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versions
.Description:
versions
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versionBySha256
.Description:
versionBySha256
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.versionByPlatform
.Description:
versionByPlatform
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.version
.Description:
version
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.topics
.Description:
topics
will be removed. Use thePackage
object.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.tags
.Description:
tags
will be removed. Use thePackage
object.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.statistics
.Description:
statistics
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.repository
.Description:
repository
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.registryPackageType
.Description:
registryPackageType
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.preReleaseVersions
.Description:
preReleaseVersions
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.packageType
.Description:
packageType
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.packageFileBySha256
.Description:
packageFileBySha256
will be removed. Use thePackage
object.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.packageFileByGuid
.Description:
packageFileByGuid
will be removed. Use thePackage
object.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.nameWithOwner
.Description:
nameWithOwner
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.name
.Description:
name
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.latestVersion
.Description:
latestVersion
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
RegistryPackage.color
.Description:
color
will be removed. Use thePackage
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Organization.registryPackagesForQuery
.Description:
registryPackagesForQuery
will be removed. Use thePackageSearch
object instead.Reason:
Renaming GitHub Packages fields and objects.
- Breaking A change will be made to
Organization.registryPackages
.Description:
registryPackages
will be removed. Use thePackageOwner
object instead.Reason:
Renaming GitHub Packages fields and objects.
Changes scheduled for 2020-01-01
- Breaking A change will be made to
UnassignedEvent.user
.Description:
user
will be removed. Use theassignee
field instead.Reason:
Assignees can now be mannequins.
- Breaking A change will be made to
EnterpriseBillingInfo.seats
.Description:
seats
will be removed. Use EnterpriseBillingInfo.totalLicenses instead.Reason:
seats
will be replaced withtotalLicenses
to provide more clarity on the value being returned
- Breaking A change will be made to
EnterpriseBillingInfo.availableSeats
.Description:
availableSeats
will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses instead.Reason:
availableSeats
will be replaced withtotalAvailableLicenses
to provide more clarity on the value being returned
- Breaking A change will be made to
AssignedEvent.user
.Description:
user
will be removed. Use theassignee
field instead.Reason:
Assignees can now be mannequins.
Changes scheduled for 2019-10-01
- Breaking A change will be made to
User.pinnedRepositories
.Description:
pinnedRepositories
will be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed
- Breaking A change will be made to
RepositoryOwner.pinnedRepositories
.Description:
pinnedRepositories
will be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed
- Breaking A change will be made to
Organization.pinnedRepositories
.Description:
pinnedRepositories
will be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed
- Breaking A change will be made to
ContributionOrder.field
.Description:
field
will be removed. Only one order field is supported.Reason:
field
will be removed.
Changes scheduled for 2019-04-01
- Breaking A change will be made to
Migration.uploadUrlTemplate
.Description:
uploadUrlTemplate
will be removed. UseuploadUrl
instead.Reason:
uploadUrlTemplate
is being removed because it is not a standard URL and adds an extra user step.