feat(worker): Add sync all option for bitbucket server#927
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review infoConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughAdds an optional boolean Changes
Sequence DiagramsequenceDiagram
participant User as User/Config
participant Backend as Backend
participant Bitbucket as Bitbucket Server API
User->>Backend: Submit connection config (`all: true`)
Backend->>Backend: Inspect `deploymentType`
alt deploymentType == "server"
Backend->>Bitbucket: GET /rest/api/1.0/repos?page=0
Bitbucket-->>Backend: repos batch + pagination info
loop while more pages
Backend->>Bitbucket: GET /rest/api/1.0/repos?page=n
Bitbucket-->>Backend: repos batch
end
Backend->>Backend: Aggregate repos + warnings
Backend-->>User: Return collected repos
else deploymentType == "cloud"
Backend->>Backend: Record/log warning (option ignored)
Backend-->>User: Return result with warning
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
packages/backend/src/bitbucket.ts (1)
77-87: Consider avoiding redundant repo fetches whenallis enabled.If
allis intended to be a full sync, the laterworkspaces/projects/reposbranches still fire and can cause duplicate entries or extra API calls. Consider short‑circuiting those selectors or de‑duplicating before filtering.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/backend/src/bitbucket.ts` around lines 77 - 87, When config.all === true we call serverGetAllRepos and still fall through to the later workspaces/projects/repos branches causing duplicate fetches; short‑circuit after handling the all:true case by returning or skipping the subsequent selectors (or deduplicate before applying filters). Update the code around the allRepos/allWarnings handling (the config.all check and serverGetAllRepos call, and the subsequent workspaces/projects/repos branches) to either: 1) immediately skip/return after concatenating repos/warnings when config.all is true, or 2) perform a deduplication step on allRepos (e.g., by repo id or slug) before any further filtering to prevent duplicate entries and extra API calls.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@packages/backend/src/bitbucket.ts`:
- Around line 77-87: When config.all === true we call serverGetAllRepos and
still fall through to the later workspaces/projects/repos branches causing
duplicate fetches; short‑circuit after handling the all:true case by returning
or skipping the subsequent selectors (or deduplicate before applying filters).
Update the code around the allRepos/allWarnings handling (the config.all check
and serverGetAllRepos call, and the subsequent workspaces/projects/repos
branches) to either: 1) immediately skip/return after concatenating
repos/warnings when config.all is true, or 2) perform a deduplication step on
allRepos (e.g., by repo id or slug) before any further filtering to prevent
duplicate entries and extra API calls.
ℹ️ Review info
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (12)
docs/docs/connections/bitbucket-data-center.mdxdocs/snippets/schemas/v3/bitbucket.schema.mdxdocs/snippets/schemas/v3/connection.schema.mdxdocs/snippets/schemas/v3/index.schema.mdxpackages/backend/src/bitbucket.tspackages/schemas/src/v3/bitbucket.schema.tspackages/schemas/src/v3/bitbucket.type.tspackages/schemas/src/v3/connection.schema.tspackages/schemas/src/v3/connection.type.tspackages/schemas/src/v3/index.schema.tspackages/schemas/src/v3/index.type.tsschemas/v3/bitbucket.json
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/snippets/schemas/v3/bitbucket.schema.mdx (1)
70-74: Consider schema-level enforcement forall+cloudcombination.Currently,
all: truewithdeploymentType: "cloud"passes schema validation silently. The only signal to the user is the prose description. Adding a schema constraint (e.g., via an additionalif/then) would surface a validation error at config parse time rather than silently ignoring the option.♻️ Suggested addition to the existing if/then/else block
"if": { "properties": { "deploymentType": { "const": "server" } } }, "then": { "required": [ "url" ] }, + "else": { + "properties": { + "all": { + "const": false, + "description": "The `all` option is only supported for `deploymentType: server`." + } + } + }, "additionalProperties": falseNote: since this is an auto-generated file, the change should be applied to the source schema (e.g.,
packages/schemas/src/v3/bitbucket.schema.tsandschemas/v3/bitbucket.json) and regenerated.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/snippets/schemas/v3/bitbucket.schema.mdx` around lines 70 - 74, Add a JSON Schema-level conditional that rejects the combination of "all": true together with deploymentType: "cloud": insert an if that matches deploymentType equal to "cloud" and all equal to true, and in the then branch make the schema invalid for that combination (e.g., using a not or a then that forces an impossible constraint for "all") so that validation fails instead of silently ignoring the option; apply this change to the source schema and regenerate the generated JSON/MDX artifacts.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@docs/snippets/schemas/v3/bitbucket.schema.mdx`:
- Around line 70-74: Add a JSON Schema-level conditional that rejects the
combination of "all": true together with deploymentType: "cloud": insert an if
that matches deploymentType equal to "cloud" and all equal to true, and in the
then branch make the schema invalid for that combination (e.g., using a not or a
then that forces an impossible constraint for "all") so that validation fails
instead of silently ignoring the option; apply this change to the source schema
and regenerate the generated JSON/MDX artifacts.
ℹ️ Review info
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (12)
docs/docs/connections/bitbucket-data-center.mdxdocs/snippets/schemas/v3/bitbucket.schema.mdxdocs/snippets/schemas/v3/connection.schema.mdxdocs/snippets/schemas/v3/index.schema.mdxpackages/backend/src/bitbucket.tspackages/schemas/src/v3/bitbucket.schema.tspackages/schemas/src/v3/bitbucket.type.tspackages/schemas/src/v3/connection.schema.tspackages/schemas/src/v3/connection.type.tspackages/schemas/src/v3/index.schema.tspackages/schemas/src/v3/index.type.tsschemas/v3/bitbucket.json
🚧 Files skipped from review as they are similar to previous changes (10)
- packages/schemas/src/v3/bitbucket.type.ts
- packages/schemas/src/v3/connection.type.ts
- packages/schemas/src/v3/index.type.ts
- packages/schemas/src/v3/index.schema.ts
- packages/backend/src/bitbucket.ts
- packages/schemas/src/v3/connection.schema.ts
- docs/snippets/schemas/v3/index.schema.mdx
- packages/schemas/src/v3/bitbucket.schema.ts
- docs/snippets/schemas/v3/connection.schema.mdx
- schemas/v3/bitbucket.json
|
@claude add a changelog entry |
|
I'll analyze this and get back to you. |
|
I have added the changelog |

Fixes #926
Implementation of an option to sync all repositories for bitbucket server
Summary by CodeRabbit
New Features
Documentation
Changelog