Skip to main content

호환성이 손상되는 변경

GitHub GraphQL API에 대한 최근 및 향후 호환성이 손상되는 변경에 대해 알아봅니다.

호환성이 손상되는 변경 정보

호환성이 손상되는 변경이란 통합자의 조치가 필요할 수 있는 모든 변경을 말합니다. 이러한 변경은 다음 두 가지 범주로 구분됩니다.

  • 호환성 손상: GraphQL API에 대한 기존 쿼리를 중단하는 변경. 예를 들어 필드를 제거하는 것은 호환성이 손상되는 변경입니다.
  • 위험: 기존 쿼리를 중단하지 않지만 클라이언트의 런타임 동작에 영향을 줄 수 있는 변경. 열거형 값을 추가하는 것은 위험한 변경의 예입니다.

통합자에게 필요한 조정을 수행할 시간을 주기 위해, 당사는 GraphQL 스키마를 변경하기 최소 3개월 전에 예정된 호환성이 손상되는 변경을 발표할 예정입니다. 변경은 분기의 첫째 날(1월 1일, 4월 1일, 7월 1일 또는 10월 1일)에 적용됩니다. 예를 들어 1월 15일에 변경 내용을 발표하면 7월 1일에 적용됩니다.

Changes scheduled for 2025-10-01

  • Breaking A change will be made to SecurityAdvisory.cvss.
    Description:

    cvss will be removed. New cvss_severities field will now contain both cvss_v3 and cvss_v4 properties.

    Reason:

    cvss will be removed.

Changes scheduled for 2025-04-01

  • Breaking A change will be made to ProjectV2Workflow.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to ProjectV2View.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to ProjectV2StatusUpdate.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to ProjectV2Item.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to ProjectV2.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to EnterpriseOwnerInfo.outsideCollaborators.hasTwoFactorEnabled.
    Description:

    hasTwoFactorEnabled will be removed. Use two_factor_method_security instead.

    Reason:

    has_two_factor_enabled will be removed.

  • Breaking A change will be made to EnterpriseOwnerInfo.admins.hasTwoFactorEnabled.
    Description:

    hasTwoFactorEnabled will be removed. Use two_factor_method_security instead.

    Reason:

    has_two_factor_enabled will be removed.

  • Breaking A change will be made to Enterprise.members.hasTwoFactorEnabled.
    Description:

    hasTwoFactorEnabled will be removed. Use two_factor_method_security instead.

    Reason:

    has_two_factor_enabled will be removed.

Changes scheduled for 2025-01-01

  • Breaking A change will be made to AddMobileDevicePublicKeyPayload.expiresAt.
    Description:

    expiresAt will be removed. Do not rely on this field, it is currently set to a date far in the future if a device key is expirationless

    Reason:

    We are deprecating expirations for mobile device keys used in mobile 2FA

Changes scheduled for 2024-10-01

  • Breaking A change will be made to Workflow.hasWorkflowDispatchTrigger.
    Description:

    hasWorkflowDispatchTrigger will be removed. Use has_workflow_dispatch_trigger_for_branch(branch_ref) instead.

    Reason:

    has_workflow_dispatch_trigger is being removed because it can be misleading and only checks a repository's default branch

Changes scheduled for 2024-07-01

  • Breaking A change will be made to PullRequestReviewComment.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to PullRequestReview.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to PullRequest.databaseId.
    Description:

    databaseId will be removed. Use fullDatabaseId instead.

    Reason:

    databaseId will be removed because it does not support 64-bit signed integer identifiers.

  • Breaking A change will be made to OrganizationInvitation.inviter.
    Description:

    inviter will be removed. inviter will be replaced by inviterActor.

    Reason:

    inviter will be removed.

Changes scheduled for 2024-04-01

  • Breaking A change will be made to TopicSuggestionDeclineReason.TOO_SPECIFIC.
    Description:

    TOO_SPECIFIC will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to TopicSuggestionDeclineReason.TOO_GENERAL.
    Description:

    TOO_GENERAL will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to TopicSuggestionDeclineReason.PERSONAL_PREFERENCE.
    Description:

    PERSONAL_PREFERENCE will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to TopicSuggestionDeclineReason.NOT_RELEVANT.
    Description:

    NOT_RELEVANT will be removed.

    Reason:

    Suggested topics are no longer supported

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

    topic will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to DeclineTopicSuggestionInput.repositoryId.
    Description:

    repositoryId will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to DeclineTopicSuggestionInput.reason.
    Description:

    reason will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to DeclineTopicSuggestionInput.name.
    Description:

    name will be removed.

    Reason:

    Suggested topics are no longer supported

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

    topic will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to AcceptTopicSuggestionInput.repositoryId.
    Description:

    repositoryId will be removed.

    Reason:

    Suggested topics are no longer supported

  • Breaking A change will be made to AcceptTopicSuggestionInput.name.
    Description:

    name will be removed.

    Reason:

    Suggested topics are no longer supported

Changes scheduled for 2023-10-01

  • Breaking A change will be made to PullRequestReviewComment.position.
    Description:

    position will be removed. Use the line and startLine fields instead, which are file line numbers instead of diff line numbers

    Reason:

    We are phasing out diff-relative positioning for PR comments

  • Breaking A change will be made to PullRequestReviewComment.originalPosition.
    Description:

    originalPosition will be removed.

    Reason:

    We are phasing out diff-relative positioning for PR comments

  • Breaking A change will be made to AddPullRequestReviewInput.comments.
    Description:

    comments will be removed. use the threads argument instead

    Reason:

    We are deprecating comment fields that use diff-relative positioning

  • Breaking A change will be made to AddPullRequestReviewCommentInput.pullRequestReviewId.
    Description:

    pullRequestReviewId will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

  • Breaking A change will be made to AddPullRequestReviewCommentInput.pullRequestId.
    Description:

    pullRequestId will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

  • Breaking A change will be made to AddPullRequestReviewCommentInput.position.
    Description:

    position will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

  • Breaking A change will be made to AddPullRequestReviewCommentInput.path.
    Description:

    path will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

  • Breaking A change will be made to AddPullRequestReviewCommentInput.inReplyTo.
    Description:

    inReplyTo will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

  • Breaking A change will be made to AddPullRequestReviewCommentInput.commitOID.
    Description:

    commitOID will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

  • Breaking A change will be made to AddPullRequestReviewCommentInput.body.
    Description:

    body will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead

    Reason:

    We are deprecating the addPullRequestReviewComment mutation

Changes scheduled for 2023-07-01

  • Breaking A change will be made to ProjectV2ItemFieldGroup.field.
    Description:

    field will be removed. Check out the ProjectV2ItemFieldGroup#groupByField API as an example for the more capable alternative.

    Reason:

    The ProjectV2ItemFieldGroup#field API is deprecated in favour of the more capable ProjectV2ItemFieldGroup#groupByField API.

  • Breaking A change will be made to MergeQueueEntry.isSolo.
    Description:

    isSolo will be removed. Use solo instead.

    Reason:

    isSolo will be removed.

  • Breaking A change will be made to MergeQueueEntry.headOid.
    Description:

    headOid will be removed. Use headCommit instead.

    Reason:

    headOid will be removed.

  • Breaking A change will be made to MergeQueueEntry.hasJumpedQueue.
    Description:

    hasJumpedQueue will be removed. Use jump instead.

    Reason:

    hasJumpedQueue will be removed.

  • Breaking A change will be made to MergeQueueEntry.checkStatus.
    Description:

    checkStatus will be removed. Use state instead.

    Reason:

    checkStatus will be removed.

  • Breaking A change will be made to MergeQueueEntry.blockedByMergeConflicts.
    Description:

    blockedByMergeConflicts will be removed. Use state instead.

    Reason:

    blockedByMergeConflicts will be removed.

  • Breaking A change will be made to MergeQueueEntry.baseOid.
    Description:

    baseOid will be removed. Use baseCommit instead.

    Reason:

    baseOid will be removed.

  • Breaking A change will be made to MergeQueue.pendingRemovalEntries.
    Description:

    pendingRemovalEntries will be removed.

    Reason:

    pendingRemovalEntries will be removed.

  • Breaking A change will be made to MergeQueue.mergingEntries.
    Description:

    mergingEntries will be removed.

    Reason:

    mergingEntries will be removed.

  • Breaking A change will be made to MergeQueue.mergeMethod.
    Description:

    mergeMethod will be removed. Use configuration.merge_method instead.

    Reason:

    mergeMethod will be removed.

  • Breaking A change will be made to MergeQueue.headOid.
    Description:

    headOid will be removed. Use entry.headOid instead.

    Reason:

    headOid will be removed.

  • Breaking A change will be made to Commit.pushedDate.
    Description:

    pushedDate will be removed.

    Reason:

    pushedDate is no longer supported.

Changes scheduled for 2023-04-01

  • Breaking A change will be made to Repository.squashPrTitleUsedAsDefault.
    Description:

    squashPrTitleUsedAsDefault will be removed. Use Repository.squashMergeCommitTitle instead.

    Reason:

    squashPrTitleUsedAsDefault will be removed.

  • Breaking A change will be made to ProjectV2View.verticalGroupBy.
    Description:

    verticalGroupBy will be removed. Check out the ProjectV2View#vertical_group_by_fields API as an example for the more capable alternative.

    Reason:

    The ProjectV2View#vertical_group_by API is deprecated in favour of the more capable ProjectV2View#vertical_group_by_fields API.

  • Breaking A change will be made to ProjectV2View.sortBy.
    Description:

    sortBy will be removed. Check out the ProjectV2View#sort_by_fields API as an example for the more capable alternative.

    Reason:

    The ProjectV2View#sort_by API is deprecated in favour of the more capable ProjectV2View#sort_by_fields API.

  • Breaking A change will be made to ProjectV2View.groupBy.
    Description:

    groupBy will be removed. Check out the ProjectV2View#group_by_fields API as an example for the more capable alternative.

    Reason:

    The ProjectV2View#order_by API is deprecated in favour of the more capable ProjectV2View#group_by_field API.

Changes scheduled for 2023-02-10

  • Breaking A change will be made to PackageType.MAVEN.
    Description:

    MAVEN will be removed.

    Reason:

    MAVEN will be removed from this enum as this type will be migrated to only be used by the Packages REST API.

Changes scheduled for 2023-01-01

  • Breaking A change will be made to ProjectV2View.visibleFields.
    Description:

    visibleFields will be removed. Check out the ProjectV2View#fields API as an example for the more capable alternative.

    Reason:

    The ProjectV2View#visibleFields API is deprecated in favour of the more capable ProjectV2View#fields API.

  • Breaking A change will be made to Commit.changedFiles.
    Description:

    changedFiles will be removed. Use changedFilesIfAvailable instead.

    Reason:

    changedFiles will be removed.

Changes scheduled for 2022-12-28

  • Breaking A change will be made to PackageType.RUBYGEMS.
    Description:

    RUBYGEMS will be removed.

    Reason:

    RUBYGEMS will be removed from this enum as this type will be migrated to only be used by the Packages REST API.

Changes scheduled for 2022-11-21

  • Breaking A change will be made to PackageType.NUGET.
    Description:

    NUGET will be removed.

    Reason:

    NUGET will be removed from this enum as this type will be migrated to only be used by the Packages REST API.

  • Breaking A change will be made to PackageType.NPM.
    Description:

    NPM will be removed.

    Reason:

    NPM will be removed from this enum as this type will be migrated to only be used by the Packages REST API.

Changes scheduled for 2022-10-01

  • Breaking A change will be made to RemovePullRequestFromMergeQueueInput.branch.
    Description:

    branch will be removed.

    Reason:

    PRs are removed from the merge queue for the base branch, the branch argument is now a no-op

  • Breaking A change will be made to DependencyGraphDependency.packageLabel.
    Description:

    packageLabel will be removed. Use normalized packageName field instead.

    Reason:

    packageLabel will be removed.

Changes scheduled for 2022-07-01

  • Breaking A change will be made to Query.sponsorables.dependencyEcosystem.
    Description:

    dependencyEcosystem will be removed. Use the ecosystem argument instead.

    Reason:

    The type is switching from SecurityAdvisoryEcosystem to DependencyGraphEcosystem.

  • Breaking A change will be made to AddPullRequestToMergeQueueInput.branch.
    Description:

    branch will be removed.

    Reason:

    PRs are added to the merge queue for the base branch, the branch argument is now a no-op

Changes scheduled for 2021-10-01

  • Breaking A change will be made to ReactionGroup.users.
    Description:

    users will be removed. Use the reactors 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

Changes scheduled for 2020-10-01

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

Changes scheduled for 2020-04-01

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

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

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

Changes scheduled for 2019-04-01

  • Breaking A change will be made to LegacyMigration.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.