Skip to content

feat(sdk): add v3 Go client with typespec emitter#4675

Merged
tothandras merged 4 commits into
mainfrom
feat/v3-go-sdk
Jul 10, 2026
Merged

feat(sdk): add v3 Go client with typespec emitter#4675
tothandras merged 4 commits into
mainfrom
feat/v3-go-sdk

Conversation

@tothandras

@tothandras tothandras commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds a generated v3 Go SDK and the TypeSpec emitter that produces it. The main changes are:

  • New @openmeter/typespec-go emitter package under api/spec.
  • Generated standalone Go SDK module in api/v3/client.
  • SDK transport, pagination, model, union, and service runtime support.
  • CI, Docker, Makefile, and docs updates for generating and testing the SDK.
  • v3 end-to-end tests moved to the generated SDK surface.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
api/v3/client/transport.go Adds SDK request construction, base URL resolution, query merging, default deadlines, response buffering, streaming, and API error handling.
api/v3/client/pagination.go Adds page and cursor iterator helpers with bounded loops, cursor direction handling, and query parameter encoding.
api/spec/packages/typespec-go/src/components/GoUnion.tsx Adds Go union generation with raw JSON preservation, discriminator checks, constructors, and scalar validation.

Reviews (15): Last reviewed commit: "feat(sdk): add v3 Go client with typespe..." | Re-trigger Greptile

Context used (3)

  • Context used - CLAUDE.md (source)
  • Context used - AGENTS.md (source)
  • Context used - api/spec/AGENTS.md (source)

Summary by CodeRabbit

  • New Features

    • Added/updated the generated, typed Go SDK for API v3, including typed pagination, streaming support, nullable/union models, rich filtering & sorting, and structured API errors.
    • Refreshed the SDK README and the SDK testing guidance for /api/v3/... endpoints.
  • Testing

    • Migrated and expanded v3 end-to-end coverage to the new SDK patterns, request/response shapes, and assertion helpers.
  • Chores

    • Added CI checks for the Go SDK generator/emitter, introduced a dedicated Go SDK release gate, and added Makefile targets for building, linting, and testing the v3 SDK module.

@tothandras tothandras added the release-note/feature Release note: Exciting New Features label Jul 9, 2026
@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d9c7a404-75a4-4b73-b1fb-e5ae2031abc8

📥 Commits

Reviewing files that changed from the base of the PR and between 7da0f9f and eab2fe4.

📒 Files selected for processing (6)
  • .github/workflows/release-go-sdk.yaml
  • Makefile
  • api/spec/packages/typespec-go/src/components/GoUnion.tsx
  • api/v3/client/errors_test.go
  • api/v3/client/query_test.go
  • api/v3/client/transport_test.go
🚧 Files skipped from review as they are similar to previous changes (4)
  • .github/workflows/release-go-sdk.yaml
  • api/spec/packages/typespec-go/src/components/GoUnion.tsx
  • api/v3/client/errors_test.go
  • api/v3/client/transport_test.go

📝 Walkthrough

Walkthrough

Adds a TypeSpec-based Go v3 SDK with generated models, services, transport, pagination, errors, documentation, and release automation. Migrates v3 e2e tests from legacy wrappers to the SDK and updates repository guidance, CI validation, and standalone-module workflows.

Changes

Go SDK generation

Layer / File(s) Summary
TypeSpec emitter and projection pipeline
api/spec/packages/typespec-go/**
Adds Go operation analysis, model projections, unions, query/resource generation, runtime templates, README generation, validation, and comprehensive Vitest coverage.
Generated SDK runtime and API surface
api/v3/client/**
Adds typed v3 models and services, JSON-preserving unions, pagination, query encoding, transport deadlines, streaming, API errors, and SDK documentation.
SDK-backed e2e migration
e2e/*_v3_test.go, e2e/v3helpers_test.go
Migrates v3 tests to generated SDK calls and typed request/response models, with status capture, structured problem assertions, and raw malformed-request handling.
Repository workflows and guidance
.github/workflows/*, Makefile, AGENTS.md, .agents/skills/e2e/SKILL.md, .gitattributes
Adds SDK build, lint, test, release-tag, module, documentation, and generated-file workflow guidance.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Suggested labels: kind/feature, area/api

Suggested reviewers: turip, solkimicreb, chrisgacsal

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.56% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding the v3 Go client and its TypeSpec emitter.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/v3-go-sdk

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread api/v3/client/transport.go
Comment thread api/v3/client/pagination.go
Comment thread api/spec/packages/typespec-go/src/components/GoUnion.tsx Outdated
Comment thread api/spec/packages/typespec-go/src/components/GoUnion.tsx Outdated
Comment thread api/spec/packages/typespec-go/src/components/GoUnion.tsx Outdated
Comment thread api/v3/client/pagination.go
Comment thread api/v3/client/pagination.go
Comment thread api/v3/client/pagination.go Outdated
Comment thread api/v3/client/pagination.go
Comment thread api/v3/client/query.go
Comment thread api/v3/client/plan_addons.go Outdated
Comment thread api/v3/client/pagination.go
@tothandras
tothandras marked this pull request as ready for review July 10, 2026 10:08
@tothandras
tothandras requested a review from a team as a code owner July 10, 2026 10:08
@tothandras

Copy link
Copy Markdown
Contributor Author

@greptile-apps

@tothandras
tothandras enabled auto-merge (squash) July 10, 2026 10:20
@greptile-apps

greptile-apps Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Too many files changed for review. (117 files found, 100 file limit)

Bypass the limit by tagging @greptile-apps to review.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
e2e/addons_v3_test.go (1)

218-235: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Stale error messages reference old Billing* type names.

The require.NoError messages on lines 219, 225, and 235 still say BillingPriceFlat, BillingPriceUnit, and BillingPriceGraduated, but the v3 SDK types are PriceFlat, PriceUnit, and PriceGraduated. If these assertions fail, the messages will point to type names that no longer exist.

✏️ Proposed fix for stale error messages
- flatPrice, err := gotFlat.Price.AsPriceFlat()
- require.NoError(t, err, "flat price should decode as BillingPriceFlat")
+ flatPrice, err := gotFlat.Price.AsPriceFlat()
+ require.NoError(t, err, "flat price should decode as PriceFlat")
- unitPrice, err := gotUnit.Price.AsPriceUnit()
- require.NoError(t, err, "unit price should decode as BillingPriceUnit")
+ unitPrice, err := gotUnit.Price.AsPriceUnit()
+ require.NoError(t, err, "unit price should decode as PriceUnit")
- gradPrice, err := gotGraduated.Price.AsPriceGraduated()
- require.NoError(t, err, "graduated price should decode as BillingPriceGraduated")
+ gradPrice, err := gotGraduated.Price.AsPriceGraduated()
+ require.NoError(t, err, "graduated price should decode as PriceGraduated")
🤖 Prompt for 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.

In `@e2e/addons_v3_test.go` around lines 218 - 235, Update the require.NoError
messages in the round-trip assertions after AsPriceFlat, AsPriceUnit, and
AsPriceGraduated to use the current v3 type names PriceFlat, PriceUnit, and
PriceGraduated instead of the obsolete BillingPrice* names.
🧹 Nitpick comments (4)
api/spec/packages/typespec-go/src/components/GoResource.tsx (1)

443-457: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Wrap the default case in a block to satisfy Biome's noSwitchDeclarations.

The const mapped declaration at line 444 is in the switch's shared scope. While default is the last case with a return (so no actual bug), Biome flags it. The fix is a one-liner.

♻️ Proposed fix
     default:
-      const mapped = goType(program, parameter.type)
-      return (
-        <go.StructMember
-          name={goExportedName(parameter.name)}
-          type={
-            parameter.property.optional && !mapped.nilable ? (
-              <go.Pointer>{mapped.type}</go.Pointer>
-            ) : (
-              mapped.type
-            )
-          }
-        />
-      )
+    {
+      const mapped = goType(program, parameter.type)
+      return (
+        <go.StructMember
+          name={goExportedName(parameter.name)}
+          type={
+            parameter.property.optional && !mapped.nilable ? (
+              <go.Pointer>{mapped.type}</go.Pointer>
+            ) : (
+              mapped.type
+            )
+          }
+        />
+      )
+    }
   }
 }
🤖 Prompt for 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.

In `@api/spec/packages/typespec-go/src/components/GoResource.tsx` around lines 443
- 457, Wrap the switch statement’s default case containing the mapped
declaration and JSX return in braces, so const mapped is scoped to that case and
satisfies Biome’s noSwitchDeclarations rule. Preserve the existing goType,
goExportedName, and pointer/nilability logic unchanged.

Source: Linters/SAST tools

e2e/planaddons_v3_test.go (1)

31-117: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add concise given/when/then comments to lifecycle subtests.

These non-trivial service/lifecycle subtests currently begin directly with setup and assertions. Adding brief given/when/then intent comments will make the scenarios easier to scan and preserve the repository’s test-structure convention.

Also applies to: 188-205, 250-286, 293-333

🤖 Prompt for 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.

In `@e2e/planaddons_v3_test.go` around lines 31 - 117, Add concise Given/When/Then
comments to each lifecycle subtest, including the shown plan/addon flow and the
referenced ranges. Place comments before setup, service invocation, and
assertions to identify the preconditions, action, and expected outcome while
preserving the existing test logic.

Source: Coding guidelines

api/v3/client/ptr.go (1)

11-27: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Avoid generating package-local pointer wrappers.

Ptr, String, Int, Bool, and Time violate the repository rule against local ptr-style helpers. Remove them from the emitter/runtime template and regenerate the SDK, updating generated call sites as needed.

Based on learnings, api/v3/client is regenerable output and should be changed through the emitter or templates, not by hand-editing generated files.

🤖 Prompt for 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.

In `@api/v3/client/ptr.go` around lines 11 - 27, Remove the local pointer helpers
Ptr, String, Int, Bool, and Time from the emitter/runtime template that
generates api/v3/client, then regenerate the SDK. Update generated call sites to
use the repository-approved pointer mechanism or inline addressable values,
ensuring no package-local ptr-style wrappers remain.

Sources: Coding guidelines, Learnings

.github/workflows/release-go-sdk.yaml (1)

39-42: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Consider disabling setup-go cache for release workflow.

Static analysis flagged a potential cache-poisoning risk: actions/setup-go enables caching by default. While the risk is low for a tag-push release workflow (tag pushes are typically restricted to maintainers), consider adding cache: false for defense-in-depth, since the release workflow should prioritize reproducibility over build speed.

🔒️ Optional: disable cache in release workflow
       - name: Set up Go
         uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
         with:
           go-version-file: api/v3/client/go.mod
           cache-dependency-path: api/v3/client/go.sum
+          cache: false
🤖 Prompt for 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.

In @.github/workflows/release-go-sdk.yaml around lines 39 - 42, Disable Go
dependency caching in the setup-go step by adding the cache setting under the
existing actions/setup-go configuration in the release workflow, while
preserving the go-version-file and cache-dependency-path settings.

Source: Linters/SAST tools

🤖 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 @.github/workflows/release-go-sdk.yaml:
- Around line 14-16: Replace the regex-style tag filters under the release
workflow’s `on.push.tags` configuration with GitHub Actions glob-compatible
patterns that match stable, `-dev`, and `-beta` SDK tags such as
`api/v3/client/v1.0.0`; alternatively, move precise version validation into a
job step.

In `@api/spec/packages/typespec-go/src/components/GoUnion.tsx`:
- Around line 33-38: Update GoUnion rendering to reject discriminated unions
containing any non-model variant: after computing discriminator in GoUnion,
detect variants that are not models and throw a clear error when discriminator
is set. Use the existing modelVariants/union variant data and ensure
GoModels.renderUnion cannot route unsupported mixed discriminated unions into
generated helpers.

In `@api/v3/client/query.go`:
- Around line 66-70: The Oeq and Ocontains serialization in the query emitter
must not ambiguously join values containing commas. Update the generator/runtime
template to either reject comma-containing values or apply the API-supported
escaping format, then regenerate api/v3/client so both filter paths use the
corrected behavior.

In `@api/v3/client/README.md`:
- Around line 191-192: Replace “cancelation” with the standard “cancellation”
spelling in the upstream TypeSpec/API description, including the relevant
UnscheduleCancelation symbol or documentation source, then regenerate
api/v3/client/README.md so the generated endpoint descriptions are updated
without editing the README directly.

In `@e2e/customer_credits_v3_test.go`:
- Around line 25-30: Update the test around Customers.Credits.Balance.Get to
have the test server capture and assert the raw timestamp query parameter
matches the valid timestamp sent in GetCustomerCreditBalanceParams,
independently of whether the request returns an error. Retain the existing API
error checks, but ensure a nil error cannot allow the test to pass without
verifying timestamp transmission.

---

Outside diff comments:
In `@e2e/addons_v3_test.go`:
- Around line 218-235: Update the require.NoError messages in the round-trip
assertions after AsPriceFlat, AsPriceUnit, and AsPriceGraduated to use the
current v3 type names PriceFlat, PriceUnit, and PriceGraduated instead of the
obsolete BillingPrice* names.

---

Nitpick comments:
In @.github/workflows/release-go-sdk.yaml:
- Around line 39-42: Disable Go dependency caching in the setup-go step by
adding the cache setting under the existing actions/setup-go configuration in
the release workflow, while preserving the go-version-file and
cache-dependency-path settings.

In `@api/spec/packages/typespec-go/src/components/GoResource.tsx`:
- Around line 443-457: Wrap the switch statement’s default case containing the
mapped declaration and JSX return in braces, so const mapped is scoped to that
case and satisfies Biome’s noSwitchDeclarations rule. Preserve the existing
goType, goExportedName, and pointer/nilability logic unchanged.

In `@api/v3/client/ptr.go`:
- Around line 11-27: Remove the local pointer helpers Ptr, String, Int, Bool,
and Time from the emitter/runtime template that generates api/v3/client, then
regenerate the SDK. Update generated call sites to use the repository-approved
pointer mechanism or inline addressable values, ensuring no package-local
ptr-style wrappers remain.

In `@e2e/planaddons_v3_test.go`:
- Around line 31-117: Add concise Given/When/Then comments to each lifecycle
subtest, including the shown plan/addon flow and the referenced ranges. Place
comments before setup, service invocation, and assertions to identify the
preconditions, action, and expected outcome while preserving the existing test
logic.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 12f23a56-4542-48db-afef-008c1347d30d

📥 Commits

Reviewing files that changed from the base of the PR and between 7d6a4f7 and b6799d8.

⛔ Files ignored due to path filters (4)
  • api/spec/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • api/v3/client/go.mod is excluded by !**/*.mod
  • api/v3/client/go.sum is excluded by !**/*.sum, !**/*.sum
  • go.mod is excluded by !**/*.mod
📒 Files selected for processing (113)
  • .agents/skills/e2e/SKILL.md
  • .gitattributes
  • .github/workflows/ci.yaml
  • .github/workflows/release-go-sdk.yaml
  • AGENTS.md
  • Dockerfile
  • Makefile
  • api/spec/.prettierignore
  • api/spec/AGENTS.md
  • api/spec/package.json
  • api/spec/packages/aip/package.json
  • api/spec/packages/aip/tspconfig.yaml
  • api/spec/packages/typespec-go/.gitignore
  • api/spec/packages/typespec-go/README.md
  • api/spec/packages/typespec-go/package.json
  • api/spec/packages/typespec-go/src/components/GoClient.tsx
  • api/spec/packages/typespec-go/src/components/GoEnum.tsx
  • api/spec/packages/typespec-go/src/components/GoModels.tsx
  • api/spec/packages/typespec-go/src/components/GoResource.tsx
  • api/spec/packages/typespec-go/src/components/GoStruct.tsx
  • api/spec/packages/typespec-go/src/components/GoTypeSpecEnum.tsx
  • api/spec/packages/typespec-go/src/components/GoUnion.tsx
  • api/spec/packages/typespec-go/src/emitter.tsx
  • api/spec/packages/typespec-go/src/go-types.tsx
  • api/spec/packages/typespec-go/src/grouping.ts
  • api/spec/packages/typespec-go/src/index.ts
  • api/spec/packages/typespec-go/src/lib.ts
  • api/spec/packages/typespec-go/src/operations.ts
  • api/spec/packages/typespec-go/src/projections.ts
  • api/spec/packages/typespec-go/src/readme.ts
  • api/spec/packages/typespec-go/src/runtime-symbols.ts
  • api/spec/packages/typespec-go/src/runtime-templates.ts
  • api/spec/packages/typespec-go/src/stdlib.ts
  • api/spec/packages/typespec-go/test/assembly.test.ts
  • api/spec/packages/typespec-go/test/go-types.test.ts
  • api/spec/packages/typespec-go/test/operations.test.ts
  • api/spec/packages/typespec-go/test/projections.test.ts
  • api/spec/packages/typespec-go/test/resource-render.test.ts
  • api/spec/packages/typespec-go/tsconfig.json
  • api/v3/client/README.md
  • api/v3/client/addons.go
  • api/v3/client/apps.go
  • api/v3/client/billing.go
  • api/v3/client/client.go
  • api/v3/client/currencies.go
  • api/v3/client/customers.go
  • api/v3/client/customers_billing.go
  • api/v3/client/customers_charges.go
  • api/v3/client/customers_credits.go
  • api/v3/client/customers_credits_adjustments.go
  • api/v3/client/customers_credits_balance.go
  • api/v3/client/customers_credits_grants.go
  • api/v3/client/customers_credits_transactions.go
  • api/v3/client/defaults.go
  • api/v3/client/doc.go
  • api/v3/client/entitlements.go
  • api/v3/client/errors.go
  • api/v3/client/errors_test.go
  • api/v3/client/events.go
  • api/v3/client/features.go
  • api/v3/client/filters.go
  • api/v3/client/governance.go
  • api/v3/client/invoices.go
  • api/v3/client/llm_cost.go
  • api/v3/client/meters.go
  • api/v3/client/models_addons.go
  • api/v3/client/models_apps.go
  • api/v3/client/models_billing.go
  • api/v3/client/models_currencies.go
  • api/v3/client/models_customers.go
  • api/v3/client/models_defaults.go
  • api/v3/client/models_entitlements.go
  • api/v3/client/models_events.go
  • api/v3/client/models_features.go
  • api/v3/client/models_governance.go
  • api/v3/client/models_invoices.go
  • api/v3/client/models_llm_cost.go
  • api/v3/client/models_meters.go
  • api/v3/client/models_plan_addons.go
  • api/v3/client/models_plans.go
  • api/v3/client/models_shared.go
  • api/v3/client/models_subscriptions.go
  • api/v3/client/models_tax.go
  • api/v3/client/nullable.go
  • api/v3/client/one_or_many.go
  • api/v3/client/option.go
  • api/v3/client/pagination.go
  • api/v3/client/pagination_test.go
  • api/v3/client/plan_addons.go
  • api/v3/client/plans.go
  • api/v3/client/ptr.go
  • api/v3/client/query.go
  • api/v3/client/request_content_type.go
  • api/v3/client/subscriptions.go
  • api/v3/client/tax.go
  • api/v3/client/transport.go
  • api/v3/client/transport_test.go
  • api/v3/client/types.go
  • benthos-collector.Dockerfile
  • e2e/addons_v3_test.go
  • e2e/billinginvoice_override_test.go
  • e2e/billinginvoice_unitconfig_test.go
  • e2e/billinginvoices_v3_test.go
  • e2e/customer_credits_v3_test.go
  • e2e/e2e_test.go
  • e2e/governance_bench_test.go
  • e2e/helpers.go
  • e2e/plan_entitlement_template_v3_test.go
  • e2e/planaddons_v3_test.go
  • e2e/plans_v3_test.go
  • e2e/productcatalog_smoke_v3_test.go
  • e2e/subscriptionaddons_v3_test.go
  • e2e/v3helpers_test.go
💤 Files with no reviewable changes (1)
  • e2e/helpers.go

Comment thread .github/workflows/release-go-sdk.yaml Outdated
Comment thread api/spec/packages/typespec-go/src/components/GoUnion.tsx
Comment thread api/v3/client/query.go
Comment thread api/v3/client/README.md
Comment thread e2e/customer_credits_v3_test.go

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 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 @.github/workflows/release-go-sdk.yaml:
- Around line 15-22: Replace the regex-style tag filters under the workflow’s
on.push.tags with GitHub Actions glob patterns such as v*.*.* so version tags
trigger correctly. Add a validation step before the release job to enforce the
exact stable, dev, or beta version format using the proposed regex and fail with
a clear message for invalid tags.

In `@AGENTS.md`:
- Around line 57-58: Update the make mod target to run module maintenance for
api/v3/client in addition to the root, collector, and e2e modules, preserving
the existing commands and error handling. Verify AGENTS.md remains accurate
after the target change.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 9c425e18-5994-4abd-8277-fa317be14d5a

📥 Commits

Reviewing files that changed from the base of the PR and between b6799d8 and 7da0f9f.

⛔ Files ignored due to path filters (2)
  • e2e/go.mod is excluded by !**/*.mod
  • e2e/go.sum is excluded by !**/*.sum, !**/*.sum
📒 Files selected for processing (10)
  • .agents/skills/e2e/SKILL.md
  • .github/workflows/release-go-sdk.yaml
  • AGENTS.md
  • Makefile
  • api/spec/packages/typespec-go/README.md
  • api/spec/packages/typespec-go/src/emitter.tsx
  • api/spec/packages/typespec-go/src/lib.ts
  • api/spec/packages/typespec-go/src/runtime-templates.ts
  • api/spec/packages/typespec-go/test/assembly.test.ts
  • api/v3/client/option.go
✅ Files skipped from review due to trivial changes (1)
  • api/spec/packages/typespec-go/README.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • .agents/skills/e2e/SKILL.md
  • api/spec/packages/typespec-go/test/assembly.test.ts
  • api/spec/packages/typespec-go/src/runtime-templates.ts
  • api/spec/packages/typespec-go/src/emitter.tsx

Comment thread .github/workflows/release-go-sdk.yaml
Comment thread AGENTS.md
@tothandras
tothandras disabled auto-merge July 10, 2026 12:17
GAlexIHU
GAlexIHU previously approved these changes Jul 10, 2026
chrisgacsal
chrisgacsal previously approved these changes Jul 10, 2026
@tothandras
tothandras dismissed stale reviews from chrisgacsal and GAlexIHU via 7a50915 July 10, 2026 12:39
- disable setup-go caching in the SDK release workflow (zizmor cache-poisoning gate)
- cover api/v3/client in make mod and make lint-go
- fail fast on discriminated unions with non-model variants in typespec-go
- add wire-level query serialization tests for filters and scalar params
@tothandras
tothandras enabled auto-merge (squash) July 10, 2026 12:49
@tothandras
tothandras merged commit 2416188 into main Jul 10, 2026
44 of 46 checks passed
@tothandras
tothandras deleted the feat/v3-go-sdk branch July 10, 2026 12:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release-note/feature Release note: Exciting New Features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants