feat(provider-review): add shared identity and stack checks - #5663
Closed
iscekic wants to merge 2 commits into
Closed
feat(provider-review): add shared identity and stack checks#5663iscekic wants to merge 2 commits into
iscekic wants to merge 2 commits into
Conversation
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (10 files)
Previous Review Summary (commit 9b2c007)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 9b2c007)Status: No Issues Found | Recommendation: Merge Files Reviewed (10 files)
Reviewed by grok-4.6 · Input: 114.8K · Output: 6K · Cached: 250.9K Review guidance: REVIEW.md from base branch |
This was referenced Aug 29, 2026
Contributor
Author
|
Closing: the owner stopped this workflow section. The branch is retained. |
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.
No new behavior — this change prepares GitLab and Bitbucket support without changing the current GitHub experience.
Summary
RepositoryIdentityrequires authorized lookup data and BitbucketworkspaceUuid;RepositoryAuthorizationseparatesOwnerIntegrationAuthorizationfromGitHubUserAuthorization, with database-independentOwneridentifying Kilo ownership.RepositoryReferencecombinesLaunchRepositoryReferenceandGitHubReviewRepositoryReference;requireLaunchRepositoryrejects user authorization, while existingOwnerimports remain valid.repositoryResourceKeyintroduces account-scopedprovider-repository:v1keys usinginstanceUrlSchema, preserving GitHub ledger keys and fingerprints;normalizeLegacyGitHubReviewRepositorydefaultsLegacyGitHubRepositoryrecords intoresolvedreferences or returnslegacy-unresolved.Files
packages/app-shared/src/code-review/repository-identity.ts— source, added (+118/−0 lines); defines repository metadata, authorization types, launch checks, resource keys, and legacy normalization. Launch references require owner integrations; GitHub review references require GitHub user authorization. Identities use string repository identifiers, a nullable default branch, and Bitbucket-only workspace identifiers. Key tuples separate accounts, owners, integrations, authorizations, providers, instances, workspaces, repository identifiers, and names without delimiter collisions; mismatched GitHub accounts fail. Instance validation acceptshttpsaddresses without credentials, queries, or fragments; keys strip trailing slashes, lowercase GitHub names only, and omit the branch. Address validation does not authorize a host. Legacy resolution requires a repository identifier and matching user authorization with a nonempty authorization identifier, never an installation. Missing legacy fields default togithub,https://github.com, and a null branch; unresolved results retain the account and original record. The fallback remains until old clients and records disappear and the 30-day ledger window expires.apps/web/src/lib/integrations/core/types.ts— source, modified (+3/−5 lines); re-exports sharedOwnerthrough the existing import path while retaining database types and numeric repository validation.The
@kilocode/app-sharedexport map declaresrepository-identity,provider-review, and wildcardprovider-reviewsubpaths for shared imports.Existing exports remain available.
Files
packages/app-shared/package.json— source, modified (+3/−0 lines); declares./code-review/repository-identity,./provider-review, and./provider-review/*exports.New dependencies prepare GitLab access and typed provider clients without changing request handling.
@gitbeaker/rest43.8.0,openapi-fetch0.17.0, andopenapi-typescript7.13.0 provide the client and type-generation tools.Workflow trigger tests use
picomatch2.3.2 and its type declarations to match the pinneddorny/paths-filteraction.Files
apps/web/package.json— source, modified (+3/−0 lines); adds@gitbeaker/restat runtime andpicomatchplus@types/picomatch2.3.4 for development.services/git-token-service/package.json— source, modified (+2/−0 lines); addsopenapi-fetchat runtime andopenapi-typescriptfor development.Both continuous integration (CI) workflows extend
pull_request.branchestomobile-provider-parity-1d93-s*, retainingmainso stacked pull requests can run checks.kilocode_backendnow selects backend tests and builds for workflow edits and mobile review code, while push triggers and mobile path filters stay unchanged.Files
.github/workflows/ci.yml— source, modified (+6/−1 lines); adds stack targets and backend filters for both workflows and mobile review components, helpers, and screens. The route pattern escapes literal parentheses..github/workflows/kilo-app-ci.yml— source, modified (+1/−1 lines); extends the pull request branch filter to stacked targets without changing paths or jobs.Tests: 2 files added —
packages/app-shared/src/code-review/repository-identity.test.ts(+209/−0 lines; repository contracts) andapps/web/src/lib/stack-ci-triggers.test.ts(+131/−0 lines; branch/path matching, route escapes, and job prerequisites).Generated: 1 modified lockfile —
pnpm-lock.yaml(+159/−0 lines).Verification
Visual Changes
Visual Changes: N/A
Reviewer Notes
origin/main...mobile-provider-parity-1d93-s1.Kilo-Org/cloud./Users/igor/Projects/.worktrees/mobile-provider-parity-1d93.Human steps
No human steps are required before merge or after merge.
Notes
Runtime verification is pending for the cumulative stack; this level adds no visual surface.
Stacked PRs — merge bottom to top. Each level shows only its own diff.
Runtime verification (E2E, user advocacy, simplify) runs on the tip PR over every level.
Every level keeps its own checks, its own bot review, and its own threads; each one is answered on its own PR.
Each level is its own deliverable: it builds and passes its own checks alone.
A finding on a level is repaired on that level, then carried upward with stack.sh forward.
mobile-provider-parity-1d93-s1— feat(provider-review): add shared identity and stack checks #5663 ← this PRmobile-provider-parity-1d93-s2— feat(provider-review): define review contracts and vocabulary #5665mobile-provider-parity-1d93-s3— feat(provider-review): add safe provider SDK boundaries #5689mobile-provider-parity-1d93-s4— feat(git-token): authorize exact provider review resources #5692mobile-provider-parity-1d93-s5— feat(cloud-agent): preserve provider identity through checkout #5700mobile-provider-parity-1d93-s6— feat(provider-review): expose exact repositories and branches #5705mobile-provider-parity-1d93-s7— feat(mobile): preserve provider launch and recent identity #5711mobile-provider-parity-1d93-s8— feat(mobile): select exact provider repositories and branches #5729mobile-provider-parity-1d93-s9— feat(provider-review): add authorized GitLab review reads #5738mobile-provider-parity-1d93-s10— feat(provider-review): add authorized Bitbucket review reads #5745mobile-provider-parity-1d93-s11— feat(provider-review): add reconciled GitLab review actions #5748mobile-provider-parity-1d93-s12— feat(provider-review): add Bitbucket review actions and recovery #5756mobile-provider-parity-1d93-s13— feat(provider-review): expose the neutral review facade #5763 (tip)