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. UseuploadUrl
instead.Reason:
uploadUrlTemplate
is being removed because it is not a standard URL and adds an extra user step.
- Breaking A change will be made to
Organization.members
.Description:
members
will be removed. UseOrganization.membersWithRole
instead.Reason:
The
members
field is deprecated and will be removed soon.
Changes scheduled for 2019-07-01
- Breaking A change will be made to
ContributionsCollection.firstIssueContribution.ignoreTimeRange
.Description:
ignoreTimeRange
will be removed. Use aContributionsCollection
starting sufficiently far backReason:
ignore_time_range will be removed
- Breaking A change will be made to
ContributionsCollection.firstPullRequestContribution.ignoreTimeRange
.Description:
ignoreTimeRange
will be removed. Use aContributionsCollection
starting sufficiently far backReason:
ignore_time_range will be removed
- Breaking A change will be made to
ContributionsCollection.firstRepositoryContribution.ignoreTimeRange
.Description:
ignoreTimeRange
will be removed. Use aContributionsCollection
starting sufficiently far backReason:
ignore_time_range will be removed
- Breaking A change will be made to
ContributionsCollection.joinedGitHubContribution.ignoreTimeRange
.Description:
ignoreTimeRange
will be removed. Use aContributionsCollection
starting sufficiently far backReason:
ignore_time_range will be removed
- Breaking A change will be made to
ReviewDismissedEvent.message
.Description:
message
will be removed. UsedismissalMessage
instead.Reason:
message
is being removed because it not nullable, whereas the underlying field is optional.
- Breaking A change will be made to
ReviewDismissedEvent.messageHtml
.Description:
messageHtml
will be removed. UsedismissalMessageHTML
instead.Reason:
messageHtml
is being removed because it not nullable, whereas the underlying field is optional.
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
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
User.pinnedRepositories
.Description:
pinnedRepositories
will be removed. Use ProfileOwner.pinnedItems instead.Reason:
pinnedRepositories will be removed