feat(core): migrate to GraphQL 17 typed documents - #243
Conversation
🦋 Changeset detectedLatest commit: cac6f85 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughGraphQL Code Generator now emits typed document nodes. The runtime uses GraphQL 17 and executes these documents through ChangesGraphQL runtime migration
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant DomainRunner
participant executeTypedDocument
participant GraphqlTransport
participant GitHub
DomainRunner->>executeTypedDocument: generated document and variables
executeTypedDocument->>GraphqlTransport: printed query and variables
GraphqlTransport->>GitHub: GraphQL request
GitHub-->>GraphqlTransport: response data
GraphqlTransport-->>DomainRunner: typed operation result
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/core/docs/architecture/graphql-layer.md`:
- Around line 60-62: Update the GraphqlClient label in the architecture diagram
to say “query + queryRaw” instead of “query + mutate,” matching the methods
documented for createGraphqlClient.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 892ae90b-19a1-4a46-b516-4cf122256ea1
⛔ Files ignored due to path filters (74)
packages/core/src/gql/operations/fragments/issue-core-fields.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/fragments/page-info-fields.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/fragments/pr-core-fields.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/fragments/reaction-group-fields.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-assignees-add.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-assignees-lookup-by-number.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-assignees-lookup.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-assignees-remove.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-assignees-update.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-blocked-by-add.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-blocked-by-remove.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-close.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-comment-create.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-comments-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-create-repository-id.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-create.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-delete.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-labels-add.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-labels-lookup-by-number.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-labels-lookup.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-labels-remove.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-labels-update.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-linked-prs-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-milestone-lookup-by-number.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-milestone-lookup.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-milestone-set.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-node-id-lookup.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-parent-lookup.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-parent-remove.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-parent-set.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-relations-get.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-reopen.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-update.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/issue-view.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-assignees-add.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-assignees-lookup-by-number.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-assignees-remove.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-branch-update.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-close.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-comment-reply.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-comment-resolve.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-comment-unresolve.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-comments-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-comments-reactions-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-create.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-diff-list-files.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-merge-status.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-merge.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-node-id.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-reactions-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-review-submit.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-reviews-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-reviews-request.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-update.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/pr-view.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-fields-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-issue-node-id.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-item-add.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-item-field-update.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-item-remove.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-items-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-org-view.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-owner-id.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/project-v2-user-view.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/release-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/release-view.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/repo-issue-types-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/repo-labels-list.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/repo-view.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/review-thread-state.generated.tsis excluded by!**/*.generated.*packages/core/src/gql/operations/user-node-id.generated.tsis excluded by!**/*.generated.*pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (22)
.changeset/modernize-graphql-runtime.mddocs/repository-structure.mdpackage.jsonpackages/core/codegen.tspackages/core/docs/architecture/graphql-layer.mdpackages/core/docs/guides/custom-graphql-transport.mdpackages/core/package.jsonpackages/core/scripts/generate-gql-artifacts.mjspackages/core/src/gql/builders.tspackages/core/src/gql/document-registry.tspackages/core/src/gql/domains/issue-mutations.tspackages/core/src/gql/domains/issue-queries.tspackages/core/src/gql/domains/pr-mutations.tspackages/core/src/gql/domains/pr-queries.tspackages/core/src/gql/domains/project.tspackages/core/src/gql/domains/release.tspackages/core/src/gql/domains/repo.tspackages/core/src/gql/operations/typed-document-string.tspackages/core/src/gql/transport.tspackages/core/test/unit/codegen-config.test.tspackages/core/test/unit/github-client-sdk.test.tspackages/core/test/unit/transport.test.ts
💤 Files with no reviewable changes (1)
- packages/core/src/gql/operations/typed-document-string.ts
Summary
@ghx-dev/coreruntime to GraphQL 17.0.2graphql-requestSDK layer with typed document nodes executed through the existingGraphqlTransportcontractgraphql-request, directgraphql-tag, the GraphQL-request Codegen plugin, and theTypedDocumentStringadapterCodegen compatibility
The private root Codegen toolchain intentionally uses GraphQL 16.14.2 because the current
@graphql-codegen/near-operation-file-presetandgraphql-configpeer ranges do not accept GraphQL 17 under strict peer dependency enforcement. Published core runtime code uses GraphQL 17.0.2. No overrides, package extensions, or peer suppressions are used.Verification
pnpm install --frozen-lockfilepnpm audit --audit-level=moderate(only one low-severity finding)pnpm --filter @ghx-dev/core run gql:verifypnpm run ci --outputStyle=staticgraphql-requestor typed-document dependency importsSummary by CodeRabbit
New Features
Documentation
fetchtransport.Refactor