{{ message }}
fix: reject project list/use for CI-scoped keys with clear errors - #308
Merged
Conversation
Validate credentials before cross-project commands, omit X-Team-ID on ListProjects, improve login and MCP flows for single-project CI keys, and strip legacy workspace/team keys on profile save. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Collaborator
Author
Only show CI-scoped login prefix when validate confirms no user_id; validate --type before the credentials check so invalid flags fail offline (fixes CI). Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Rebalance CI matrix runtimes (~5.3 min slice 0 vs ~3 min slice 2). Move ConnectionListResponse to helpers so gateway tests compile without connection_list in the same build. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Rename ErrProjectScopedCredentials (ErrCIScopedCredentials alias), update messages for single-project scope, and match CLI_PROJECT_SCOPED from API. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
leggetter
marked this pull request as ready for review
June 26, 2026 12:41
alexbouchardd
approved these changes
Jul 3, 2026
leggetter
added a commit
that referenced
this pull request
Jul 7, 2026
Merge hookdeck-cli #308 (EnsureUserAssociatedCredentials, CI login UX, ListProjects header fix) while preserving guest claim flow on login. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
leggetter
added a commit
that referenced
this pull request
Jul 7, 2026
…ixes Bring #308 handling into simplify guest flow: CI keys fail fast on project list/use, login rejects headless CI keys, keep waitForGuestUpgrade for active guest profiles. Co-Authored-By: Claude <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
project list/project useand fail fast withErrCIScopedCredentialswhen the stored key has nouser_id(e.g. afterhookdeck ci)ListProjectswithoutX-Team-IDso staleproject_id/ legacy workspace fields do not scope the teams requesthookdeck login: CI keys no longer short-circuit validate — TTY opens browser sign-in; non-TTY fails immediately (no poll)hookdeck_logintreats CI-scoped keys as needing browser auth;hookdeck_projectssurfaces reauth hints for local and API errorsSaveProfilestrips deprecatedworkspace_*andteam_*keys from config on writeContext
hookdeck project listrequires a user-associated CLI key. Keys created byhookdeck ciare scoped to one project and previously caused an opaque API 500 onGET /teams. This PR adds client-side guards with actionable messages and aligns login/MCP behavior so users can upgrade to a full session.Pairs with the companion API PR in
hookdeck/core(CLI_USER_REQUIREDonGET /teams).Test plan
go test ./...go test -tags=project_use ./test/acceptance/... -run TestProjectListFailsWithCIKeyhookdeck cithenproject list→ clear error, notFatal Error/ 500hookdeck loginwith CI key in TTY → browser sign-in; headless → immediate errorhookdeck_loginreturns browser URL (not "Already authenticated")Made with Cursor