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 2018-07-01

  • Breaking commit will be removed. Use ClosedEvent.closer instead.

    Affected schema members: ClosedEvent.commit

    Reason: ClosedEvent may be associated with other objects than a commit.

  • Breaking projectColumn will be removed. Use ProjectCard.column instead.

    Affected schema members: ProjectCard.projectColumn

    Reason: The associated column may be null if the card is in a pending state.

  • Breaking isCrossReference will be removed. Use ReferencedEvent.isCrossRepository instead.

    Affected schema members: ReferencedEvent.isCrossReference

    Reason: isCrossReference will be renamed.

  • Breaking license will be removed. Use Repository.licenseInfo instead.

    Affected schema members: Repository.license

    Reason: Field license will be replaced by a more detailed license object.

  • Breaking license will be removed. Use Repository.licenseInfo instead.

    Affected schema members: RepositoryInfo.license

    Reason: Field license will be replaced by a more detailed license object.

  • Breaking reviewer will be removed. Use ReviewRequest.requestedReviewer instead.

    Affected schema members: ReviewRequest.reviewer

    Reason: Field reviewer will be changed in favor of returning a union type.

  • Breaking subject will be removed. Use ReviewRequestRemovedEvent.requestedReviewer instead.

    Affected schema members: ReviewRequestRemovedEvent.subject

    Reason: subject will be renamed.

  • Breaking subject will be removed. Use ReviewRequestedEvent.requestedReviewer instead.

    Affected schema members: ReviewRequestedEvent.subject

    Reason: subject will be renamed.

  • Breaking contributedRepositories will be removed. Use User.repositoriesContributedTo instead.

    Affected schema members: User.contributedRepositories

    Reason: Arguments for connection contributedRepositories are getting redesigned.