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

  • Breaking A change will be made to AcceptTopicSuggestionPayload.topic.

    Description: Type for topic will change from Topic! to Topic.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddCommentPayload.commentEdge.

    Description: Type for commentEdge will change from IssueCommentEdge! to IssueCommentEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddCommentPayload.subject.

    Description: Type for subject will change from Node! to Node.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddCommentPayload.timelineEdge.

    Description: Type for timelineEdge will change from IssueTimelineItemEdge! to IssueTimelineItemEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddProjectCardPayload.cardEdge.

    Description: Type for cardEdge will change from ProjectCardEdge! to ProjectCardEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddProjectCardPayload.projectColumn.

    Description: Type for projectColumn will change from Project! to Project.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddProjectColumnPayload.columnEdge.

    Description: Type for columnEdge will change from ProjectColumnEdge! to ProjectColumnEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddProjectColumnPayload.project.

    Description: Type for project will change from Project! to Project.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddPullRequestReviewCommentPayload.comment.

    Description: Type for comment will change from PullRequestReviewComment! to PullRequestReviewComment.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddPullRequestReviewCommentPayload.commentEdge.

    Description: Type for commentEdge will change from PullRequestReviewCommentEdge! to PullRequestReviewCommentEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddPullRequestReviewPayload.pullRequestReview.

    Description: Type for pullRequestReview will change from PullRequestReview! to PullRequestReview.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddPullRequestReviewPayload.reviewEdge.

    Description: Type for reviewEdge will change from PullRequestReviewEdge! to PullRequestReviewEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddReactionPayload.reaction.

    Description: Type for reaction will change from Reaction! to Reaction.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddReactionPayload.subject.

    Description: Type for subject will change from Reactable! to Reactable.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to AddStarPayload.starrable.

    Description: Type for starrable will change from Starrable! to Starrable.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to CreateProjectPayload.project.

    Description: Type for project will change from Project! to Project.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeclineTopicSuggestionPayload.topic.

    Description: Type for topic will change from Topic! to Topic.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeleteProjectCardPayload.column.

    Description: Type for column will change from ProjectColumn! to ProjectColumn.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeleteProjectCardPayload.deletedCardId.

    Description: Type for deletedCardId will change from ID! to ID.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeleteProjectColumnPayload.deletedColumnId.

    Description: Type for deletedColumnId will change from ID! to ID.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeleteProjectColumnPayload.project.

    Description: Type for project will change from Project! to Project.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeleteProjectPayload.owner.

    Description: Type for owner will change from ProjectOwner! to ProjectOwner.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DeletePullRequestReviewPayload.pullRequestReview.

    Description: Type for pullRequestReview will change from PullRequestReview! to PullRequestReview.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to DismissPullRequestReviewPayload.pullRequestReview.

    Description: Type for pullRequestReview will change from PullRequestReview! to PullRequestReview.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to MoveProjectCardPayload.cardEdge.

    Description: Type for cardEdge will change from ProjectCardEdge! to ProjectCardEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to MoveProjectColumnPayload.columnEdge.

    Description: Type for columnEdge will change from ProjectColumnEdge! to ProjectColumnEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to RemoveOutsideCollaboratorPayload.removedUser.

    Description: Type for removedUser will change from User! to User.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to RemoveReactionPayload.reaction.

    Description: Type for reaction will change from Reaction! to Reaction.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to RemoveReactionPayload.subject.

    Description: Type for subject will change from Reactable! to Reactable.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to RemoveStarPayload.starrable.

    Description: Type for starrable will change from Starrable! to Starrable.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to RequestReviewsPayload.pullRequest.

    Description: Type for pullRequest will change from PullRequest! to PullRequest.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to RequestReviewsPayload.requestedReviewersEdge.

    Description: Type for requestedReviewersEdge will change from UserEdge! to UserEdge.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to SubmitPullRequestReviewPayload.pullRequestReview.

    Description: Type for pullRequestReview will change from PullRequestReview! to PullRequestReview.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to UpdateProjectCardPayload.projectCard.

    Description: Type for projectCard will change from ProjectCard! to ProjectCard.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to UpdateProjectColumnPayload.projectColumn.

    Description: Type for projectColumn will change from ProjectColumn! to ProjectColumn.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to UpdateProjectPayload.project.

    Description: Type for project will change from Project! to Project.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to UpdatePullRequestReviewCommentPayload.pullRequestReviewComment.

    Description: Type for pullRequestReviewComment will change from PullRequestReviewComment! to PullRequestReviewComment.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to UpdatePullRequestReviewPayload.pullRequestReview.

    Description: Type for pullRequestReview will change from PullRequestReview! to PullRequestReview.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

  • Breaking A change will be made to UpdateSubscriptionPayload.subscribable.

    Description: Type for subscribable will change from Subscribable! to Subscribable.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.

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

    Description: Type for repository will change from Repository! to Repository.

    Reason: In preparation for an upcoming change to the way we report mutation errors, non-nullable payload fields are becoming nullable.