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 2019-10-01

  • 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.

  • Breaking A change will be made to Issue.timeline.

    Description: timeline will be removed. Use Issue.timelineItems instead.

    Reason: timeline will be removed

  • Breaking A change will be made to MarketplaceListing.hasApprovalBeenRequested.

    Description: hasApprovalBeenRequested will be removed. Use isVerificationPendingFromDraft instead.

    Reason: hasApprovalBeenRequested will be removed.

  • Breaking A change will be made to MarketplaceListing.isApproved.

    Description: isApproved will be removed. Use isPublic instead.

    Reason: isApproved will be removed.

  • Breaking A change will be made to MarketplaceListing.isDelisted.

    Description: isDelisted will be removed. Use isArchived instead.

    Reason: isDelisted 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 PullRequest.timeline.

    Description: timeline will be removed. Use PullRequest.timelineItems instead.

    Reason: timeline 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 RepositoryVulnerabilityAlert.affectedRange.

    Description: affectedRange will be removed. Use securityVulnerability.vulnerableVersionRange instead.

    Reason: advisory specific fields are being removed from repositoryVulnerabilityAlert objects

  • Breaking A change will be made to RepositoryVulnerabilityAlert.externalIdentifier.

    Description: externalIdentifier will be removed. Use securityAdvisory.identifiers instead.

    Reason: advisory specific fields are being removed from repositoryVulnerabilityAlert objects

  • Breaking A change will be made to RepositoryVulnerabilityAlert.externalReference.

    Description: externalReference will be removed. Use securityAdvisory.references instead.

    Reason: advisory specific fields are being removed from repositoryVulnerabilityAlert objects

  • Breaking A change will be made to RepositoryVulnerabilityAlert.fixedIn.

    Description: fixedIn will be removed. Use securityVulnerability.firstPatchedVersion instead.

    Reason: advisory specific fields are being removed from repositoryVulnerabilityAlert objects

  • Breaking A change will be made to RepositoryVulnerabilityAlert.packageName.

    Description: packageName will be removed. Use securityVulnerability.package instead.

    Reason: advisory specific fields are being removed from repositoryVulnerabilityAlert objects

  • Breaking A change will be made to User.pinnedRepositories.

    Description: pinnedRepositories will be removed. Use ProfileOwner.pinnedItems instead.

    Reason: pinnedRepositories will be removed

Changes scheduled for 2020-01-01

  • Breaking A change will be made to AssignedEvent.user.

    Description: user will be removed. Use the assignee field instead.

    Reason: Assignees can now be mannequins.

  • Breaking A change will be made to EnterpriseBillingInfo.availableSeats.

    Description: availableSeats will be removed. Use EnterpriseBillingInfo.totalAvailableLicenses instead.

    Reason: availableSeats will be replaced with totalAvailableLicenses to provide more clarity on the value being returned

  • Breaking A change will be made to EnterpriseBillingInfo.seats.

    Description: seats will be removed. Use EnterpriseBillingInfo.totalLicenses instead.

    Reason: seats will be replaced with totalLicenses to provide more clarity on the value being returned

  • Breaking A change will be made to UnassignedEvent.user.

    Description: user will be removed. Use the assignee field instead.

    Reason: Assignees can now be mannequins.

Changes scheduled for 2020-04-01

  • Breaking A change will be made to Organization.registryPackages.

    Description: registryPackages will be removed. Use the PackageOwner object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to Organization.registryPackagesForQuery.

    Description: registryPackagesForQuery will be removed. Use the PackageSearch object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to Query.sponsorsListing.

    Description: sponsorsListing will be removed. Use Sponsorable.sponsorsListing instead.

    Reason: Query.sponsorsListing will be removed.

  • Breaking A change will be made to RegistryPackage.color.

    Description: color will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.latestVersion.

    Description: latestVersion will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.name.

    Description: name will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.nameWithOwner.

    Description: nameWithOwner will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.packageFileByGuid.

    Description: packageFileByGuid will be removed. Use the Package object.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.packageFileBySha256.

    Description: packageFileBySha256 will be removed. Use the Package object.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.packageType.

    Description: packageType will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.preReleaseVersions.

    Description: preReleaseVersions will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.registryPackageType.

    Description: registryPackageType will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.repository.

    Description: repository will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.statistics.

    Description: statistics will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.tags.

    Description: tags will be removed. Use the Package object.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.topics.

    Description: topics will be removed. Use the Package object.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.version.

    Description: version will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.versionByPlatform.

    Description: versionByPlatform will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.versionBySha256.

    Description: versionBySha256 will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.versions.

    Description: versions will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackage.versionsByMetadatum.

    Description: versionsByMetadatum will be removed. Use the Package object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageDependency.dependencyType.

    Description: dependencyType will be removed. Use the PackageDependency object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageDependency.name.

    Description: name will be removed. Use the PackageDependency object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageDependency.version.

    Description: version will be removed. Use the PackageDependency object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.guid.

    Description: guid will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.md5.

    Description: md5 will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.metadataUrl.

    Description: metadataUrl will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.name.

    Description: name will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.packageVersion.

    Description: packageVersion will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.sha1.

    Description: sha1 will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.sha256.

    Description: sha256 will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.size.

    Description: size will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageFile.url.

    Description: url will be removed. Use the PackageFile object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageOwner.registryPackages.

    Description: registryPackages will be removed. Use the PackageOwner object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageSearch.registryPackagesForQuery.

    Description: registryPackagesForQuery will be removed. Use the PackageSearch object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageStatistics.downloadsThisMonth.

    Description: downloadsThisMonth will be removed. Use the PackageStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageStatistics.downloadsThisWeek.

    Description: downloadsThisWeek will be removed. Use the PackageStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageStatistics.downloadsThisYear.

    Description: downloadsThisYear will be removed. Use the PackageStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageStatistics.downloadsToday.

    Description: downloadsToday will be removed. Use the PackageStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageStatistics.downloadsTotalCount.

    Description: downloadsTotalCount will be removed. Use the PackageStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageTag.name.

    Description: name will be removed. Use the PackageTag object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageTag.version.

    Description: version will be removed. Use the PackageTag object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.deleted.

    Description: deleted will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.dependencies.

    Description: dependencies will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.fileByName.

    Description: fileByName will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.files.

    Description: files will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.installationCommand.

    Description: installationCommand will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.manifest.

    Description: manifest will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.platform.

    Description: platform will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.preRelease.

    Description: preRelease will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.readme.

    Description: readme will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.readmeHtml.

    Description: readmeHtml will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.registryPackage.

    Description: registryPackage will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.release.

    Description: release will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.sha256.

    Description: sha256 will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.size.

    Description: size will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.statistics.

    Description: statistics will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.summary.

    Description: summary will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.updatedAt.

    Description: updatedAt will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.version.

    Description: version will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersion.viewerCanEdit.

    Description: viewerCanEdit will be removed. Use the PackageVersion object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersionStatistics.downloadsThisMonth.

    Description: downloadsThisMonth will be removed. Use the PackageVersionStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersionStatistics.downloadsThisWeek.

    Description: downloadsThisWeek will be removed. Use the PackageVersionStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersionStatistics.downloadsThisYear.

    Description: downloadsThisYear will be removed. Use the PackageVersionStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersionStatistics.downloadsToday.

    Description: downloadsToday will be removed. Use the PackageVersionStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to RegistryPackageVersionStatistics.downloadsTotalCount.

    Description: downloadsTotalCount will be removed. Use the PackageVersionStatistics object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to Repository.registryPackages.

    Description: registryPackages will be removed. Use the PackageOwner object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to Repository.registryPackagesForQuery.

    Description: registryPackagesForQuery will be removed. Use the PackageSearch object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to Sponsorship.maintainer.

    Description: maintainer will be removed. Use Sponsorship.sponsorable instead.

    Reason: Sponsorship.maintainer will be removed.

  • Breaking A change will be made to User.registryPackages.

    Description: registryPackages will be removed. Use the PackageOwner object instead.

    Reason: Renaming GitHub Packages fields and objects.

  • Breaking A change will be made to User.registryPackagesForQuery.

    Description: registryPackagesForQuery will be removed. Use the PackageSearch object instead.

    Reason: Renaming GitHub Packages fields and objects.