You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: address CodeRabbit review feedback on Gerrit integration
- Fix SSRF DNS rebinding (TOCTOU): add ssrfSafeTransport with custom
dialer that validates resolved IPs at connection time, preventing
DNS rebinding attacks between validation and HTTP request
- Fail closed on non-200 Gerrit responses in ValidateGerritToken
instead of assuming valid (prevents storing invalid connections)
- Add isValidUserID() check to GetGerritStatus, DisconnectGerrit,
and ListGerritInstances for consistency with ConnectGerrit
- Tighten test assertions: assert exact HTTP 200 instead of
NotTo(Equal(400)) or BeElementOf(200, 404)
- Add timeout (15s) and error handling to frontend test/route.ts
- Use discriminated union types for GerritConnectRequest and
GerritTestRequest in frontend API types
- Fix stale Gerrit config: call generate_gerrit_config() even when
backend returns empty instances list, to clean up old config
- Add docstring clarifying MCP config regeneration timing
- Fix documentation: per-user Secret naming, pinned MCP server
revision, multi-instance UX consistency, dedicated test request
schema in OpenAPI contract
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/internal/integrations/gerrit-integration.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -439,7 +439,7 @@ A: Use the `/api/auth/gerrit/test` endpoint. It validates credentials against th
439
439
A: The instance name is a user-chosen identifier that distinguishes between multiple Gerrit instances. It is used in API paths (e.g., `/api/auth/gerrit/openstack/status`) and as part of the credential storage key.
440
440
441
441
**Q: Can two users connect the same Gerrit instance with the same instance name?**
442
-
A: Yes. Instance names are scoped per user. Two different users can both have an instance named "openstack" without conflict, as credentials are stored with a compound key of `instanceName.userID`.
442
+
A: Yes. Instance names are scoped per user. Each user has their own Kubernetes Secret (`gerrit-credentials-{userID}`), so two different users can both have an instance named "openstack" without conflict.
0 commit comments