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 2021-10-01
- Breaking A change will be made to
ReactionGroup.users
.Description:
users
will be removed. Use thereactors
field instead.Reason:
Reactors can now be mannequins, bots, and organizations.
Changes scheduled for 2021-06-21
- Breaking A change will be made to
PackageType.DOCKER
.Description:
DOCKER
will be removed.Reason:
DOCKER will be removed from this enum as this type will be migrated to only be used by the Packages REST API.
Changes scheduled for 2021-01-01
- Breaking A change will be made to
MergeStateStatus.DRAFT
.Description:
DRAFT
will be removed. Use PullRequest.isDraft instead.Reason:
DRAFT state will be removed from this enum and
isDraft
should be used instead
- Breaking A change will be made to
EnterprisePendingCollaboratorEdge.isUnlicensed
.Description:
isUnlicensed
will be removed.Reason:
All pending collaborators consume a license
- Breaking A change will be made to
EnterpriseOutsideCollaboratorEdge.isUnlicensed
.Description:
isUnlicensed
will be removed.Reason:
All outside collaborators consume a license
- Breaking A change will be made to
EnterpriseMemberEdge.isUnlicensed
.Description:
isUnlicensed
will be removed.Reason:
All members consume a license
Changes scheduled for 2020-10-01
- Breaking A change will be made to
Sponsorship.sponsor
.Description:
sponsor
will be removed. UseSponsorship.sponsorEntity
instead.Reason:
Sponsorship.sponsor
will be removed.
- 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
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
- Breaking A change will be made to
EnterpriseOwnerInfo.pendingCollaborators
.Description:
pendingCollaborators
will be removed. Use thependingCollaboratorInvitations
field instead.Reason:
Repository invitations can now be associated with an email, not only an invitee.
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-04-01
- Breaking A change will be made to
Sponsorship.maintainer
.Description:
maintainer
will be removed. UseSponsorship.sponsorable
instead.Reason:
Sponsorship.maintainer
will be removed.
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.