👋 We've unified all of GitHub's product documentation in one place! Check out the content for REST API, GraphQL API, and Developers. Learn more on the GitHub blog.
Article version: GitHub.com

Breaking changes

Learn about recent and upcoming breaking changes to the GitHub GraphQL API.

In this article

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

  • Breaking A change will be made to Migration.uploadUrlTemplate.

    Description:

    uploadUrlTemplate will be removed. Use uploadUrl instead.

    Reason:

    uploadUrlTemplate is being removed because it is not a standard URL and adds an extra user step.

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 Query.sponsorsListing.

    Description:

    sponsorsListing will be removed. Use Sponsorable.sponsorsListing instead.

    Reason:

    Query.sponsorsListing will be removed.

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

    Description:

    maintainer will be removed. Use Sponsorship.sponsorable instead.

    Reason:

    Sponsorship.maintainer will be removed.

Changes scheduled for 2020-07-01

  • Breaking A change will be made to EnterprisePendingMemberInvitationEdge.isUnlicensed.

    Description:

    isUnlicensed will be removed.

    Reason:

    All pending members consume a license

Changes scheduled for 2020-10-01

  • Breaking A change will be made to EnterpriseOwnerInfo.pendingCollaborators.

    Description:

    pendingCollaborators will be removed. Use the pendingCollaboratorInvitations field instead.

    Reason:

    Repository invitations can now be associated with an email, not only an invitee.

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

    Description:

    timeline will be removed. Use PullRequest.timelineItems instead.

    Reason:

    timeline will be removed

  • Breaking A change will be made to RepositoryCollaboratorEdge.permission.

    Description:

    Type for permission will change from RepositoryPermission! to String.

    Reason:

    This field may return additional values

  • Breaking A change will be made to RepositoryInvitation.permission.

    Description:

    Type for permission will change from RepositoryPermission! to String.

    Reason:

    This field may return additional values

  • Breaking A change will be made to RepositoryInvitationOrderField.INVITEE_LOGIN.

    Description:

    INVITEE_LOGIN will be removed.

    Reason:

    INVITEE_LOGIN is no longer a valid field value. Repository invitations can now be associated with an email, not only an invitee.

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

    Description:

    sponsor will be removed. Use Sponsorship.sponsorEntity instead.

    Reason:

    Sponsorship.sponsor will be removed.

  • Breaking A change will be made to TeamRepositoryEdge.permission.

    Description:

    Type for permission will change from RepositoryPermission! to String.

    Reason:

    This field may return additional values

Ask a human

Can't find what you're looking for?

Contact us