Skip to content

RHDH 1.9 aligment and bitbucket revert#2816

Open
eloycoto wants to merge 3 commits intoredhat-developer:mainfrom
eloycoto:BitbucketFix
Open

RHDH 1.9 aligment and bitbucket revert#2816
eloycoto wants to merge 3 commits intoredhat-developer:mainfrom
eloycoto:BitbucketFix

Conversation

@eloycoto
Copy link
Copy Markdown
Contributor

revert bitbucket commit
Added the same dependencies as RHDH 1.9.

    sh-5.1$ grep -B1 -A3 "\"@backstage/plugin-permission-backend@" /opt/app-root/src/yarn.lock

    "@backstage/plugin-permission-backend@npm:0.7.3":
      version: 0.7.3
      resolution: "@backstage/plugin-permission-backend@npm:0.7.3"
      dependencies:
        "@backstage/backend-plugin-api": ^1.4.2
        "@backstage/config": ^1.3.3
    sh-5.1$ grep -B1 -A3 "\"@backstage/plugin-scaffolder@" /opt/app-root/src/yarn.lock

    "@backstage/plugin-scaffolder@npm:1.34.3":
      version: 1.34.3
      resolution: "@backstage/plugin-scaffolder@npm:1.34.3"
      dependencies:
        "@backstage/catalog-client": ^1.12.1
        "@backstage/catalog-model": ^1.7.6
    sh-5.1$ grep -B1 -A3 "\"@backstage/plugin-scaffolder-react@" /opt/app-root/src/yarn.lock

    "@backstage/plugin-scaffolder-react@npm:1.19.3, @backstage/plugin-scaffolder-react@npm:^1.19.3":
      version: 1.19.3
      resolution: "@backstage/plugin-scaffolder-react@npm:1.19.3"
      dependencies:
        "@backstage/catalog-client": ^1.12.1
        "@backstage/catalog-model": ^1.7.6
    sh-5.1$ grep -B1 -A3 "\"@backstage/integration-react@" /opt/app-root/src/yarn.lock

    "@backstage/integration-react@npm:1.2.12, @backstage/integration-react@npm:^1.2.12":
      version: 1.2.12
      resolution: "@backstage/integration-react@npm:1.2.12"
      dependencies:
        "@backstage/config": ^1.3.6
        "@backstage/core-plugin-api": ^1.12.0
    sh-5.1$ grep -B1 -A3 "\"@backstage/core-plugin-api@" /opt/app-root/src/yarn.lock

    "@backstage/core-plugin-api@npm:1.12.0":
      version: 1.12.0
      resolution: "@backstage/core-plugin-api@npm:1.12.0"
      dependencies:
        "@backstage/config": ^1.3.6
        "@backstage/errors": ^1.2.7
    --

    "@backstage/core-plugin-api@npm:^1.12.0, @backstage/core-plugin-api@npm:^1.12.1":
      version: 1.12.1
      resolution: "@backstage/core-plugin-api@npm:1.12.1"
      dependencies:
        "@backstage/config": ^1.3.6
        "@backstage/errors": ^1.2.7

@rhdh-qodo-merge
Copy link
Copy Markdown

rhdh-qodo-merge bot commented Apr 17, 2026

Code Review by Qodo

🐞 Bugs (1)   📘 Rule violations (0)   📎 Requirement gaps (0)
🐞\ ⚙ Maintainability (1)

Grey Divider


Action required

1. Breaking public API removal 🐞
Description
The PR removes the @public X2ARepoUrlPickerExtension export from
@red-hat-developer-hub/backstage-plugin-x2a, which will break any downstream app/template code that
imports or registers that field extension. This is a semver-breaking change and needs either
backward-compatible re-export/deprecation or a major version bump with a clear migration note.
Code

workspaces/x2a/plugins/x2a/src/index.ts[L16-21]

-export {
-  x2APlugin,
-  X2APage,
-  RepoAuthenticationExtension,
-  X2ARepoUrlPickerExtension,
-} from './plugin';
+export { x2APlugin, X2APage, RepoAuthenticationExtension } from './plugin';
Relevance

⭐⭐⭐ High

Team flags public API surface changes as BREAKING; removing @public export should require major
bump/migration/deprecation.

PR-#2609
PR-#2768

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The plugin entrypoint now only exports x2APlugin, X2APage, and RepoAuthenticationExtension, so
X2ARepoUrlPickerExtension is no longer available to consumers. The public API report was updated
accordingly, confirming it’s removed from the supported public surface.

workspaces/x2a/plugins/x2a/src/index.ts[16-16]
workspaces/x2a/plugins/x2a/src/plugin.ts[42-49]
workspaces/x2a/plugins/x2a/report.api.md[227-232]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
A previously `@public` exported symbol (`X2ARepoUrlPickerExtension`) was removed from the x2a plugin package exports. Any downstream consumer that imports/registers this field extension will fail to compile after upgrading.

### Issue Context
The PR removes the Bitbucket workaround field extension and switches templates to the stock `RepoUrlPicker`, but removing a public export is still a breaking API change for external adopters of the plugin package.

### Fix Focus Areas
- Decide on one of the following and implement it:
 - **Compatibility approach (preferred for non-major releases):** Re-introduce `X2ARepoUrlPickerExtension` as a deprecated alias/wrapper (even if it just forwards to the default `RepoUrlPicker` behavior) so existing consumers keep working.
 - **Breaking-change approach:** Add a changeset that bumps `@red-hat-developer-hub/backstage-plugin-x2a` with a **major** version and include migration notes (replace `X2ARepoUrlPickerExtension` usage with stock `RepoUrlPicker`).

- workspaces/x2a/plugins/x2a/src/index.ts[16-16]
- workspaces/x2a/plugins/x2a/src/plugin.ts[42-49]
- workspaces/x2a/plugins/x2a/report.api.md[227-232]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@rhdh-gh-app
Copy link
Copy Markdown

rhdh-gh-app bot commented Apr 17, 2026

Missing Changesets

The following package(s) are changed by this PR but do not have a changeset:

  • @red-hat-developer-hub/backstage-plugin-scaffolder-backend-module-x2a
  • @red-hat-developer-hub/backstage-plugin-x2a

See CONTRIBUTING.md for more information about how to add changesets.

Changed Packages

Package Name Package Path Changeset Bump Current Version
app workspaces/x2a/packages/app none v0.0.0
@red-hat-developer-hub/backstage-plugin-scaffolder-backend-module-x2a workspaces/x2a/plugins/scaffolder-backend-module-x2a none v0.3.1
@red-hat-developer-hub/backstage-plugin-x2a workspaces/x2a/plugins/x2a none v1.2.1

@rhdh-qodo-merge
Copy link
Copy Markdown

Review Summary by Qodo

Revert Bitbucket fix and align dependencies with RHDH 1.9

🐞 Bug fix ✨ Enhancement

Grey Divider

Walkthroughs

Description
• Revert Bitbucket RepoUrlPicker wrapper implementation and workaround
• Align dependencies with RHDH 1.9 versions for consistency
• Remove custom X2ARepoUrlPicker extension from exports and usage
• Update package.json resolutions to match RHDH 1.9 specifications
Diagram
flowchart LR
  A["Bitbucket Workaround Code"] -->|Remove| B["RepoUrlPickerWithBitbucketFix"]
  C["X2ARepoUrlPickerExtension"] -->|Remove| D["Plugin Exports"]
  E["Package Dependencies"] -->|Align| F["RHDH 1.9 Versions"]
  B -->|Delete| G["Test File Removed"]
  D -->|Remove| H["App.tsx Usage"]
Loading

Grey Divider

File Changes

1. workspaces/x2a/plugins/x2a/src/index.ts 🐞 Bug fix +1/-6

Remove X2ARepoUrlPickerExtension from exports

workspaces/x2a/plugins/x2a/src/index.ts


2. workspaces/x2a/plugins/x2a/src/plugin.ts 🐞 Bug fix +1/-21

Remove X2ARepoUrlPickerExtension plugin definition

workspaces/x2a/plugins/x2a/src/plugin.ts


3. workspaces/x2a/plugins/x2a/src/scaffolder/RepoUrlPickerWithBitbucketFix.test.ts 🧪 Tests +0/-118

Delete Bitbucket workaround test file

workspaces/x2a/plugins/x2a/src/scaffolder/RepoUrlPickerWithBitbucketFix.test.ts


View more (7)
4. workspaces/x2a/plugins/x2a/src/scaffolder/index.ts 🐞 Bug fix +0/-1

Remove RepoUrlPickerWithBitbucketFix export

workspaces/x2a/plugins/x2a/src/scaffolder/index.ts


5. workspaces/x2a/package.json Dependencies +5/-1

Add RHDH 1.9 aligned dependency resolutions

workspaces/x2a/package.json


6. workspaces/x2a/packages/app/src/App.tsx 🐞 Bug fix +0/-2

Remove X2ARepoUrlPickerExtension from scaffolder routes

workspaces/x2a/packages/app/src/App.tsx


7. workspaces/x2a/plugins/scaffolder-backend-module-x2a/templates/conversion-project-template.yaml ⚙️ Configuration changes +2/-10

Revert to standard RepoUrlPicker field extension

workspaces/x2a/plugins/scaffolder-backend-module-x2a/templates/conversion-project-template.yaml


8. workspaces/x2a/plugins/x2a/package.json Dependencies +1/-3

Move core-app-api to devDependencies, remove unused imports

workspaces/x2a/plugins/x2a/package.json


9. workspaces/x2a/plugins/x2a/report.api.md 📝 Documentation +0/-3

Remove X2ARepoUrlPickerExtension from API report

workspaces/x2a/plugins/x2a/report.api.md


10. workspaces/x2a/plugins/x2a/src/scaffolder/RepoUrlPickerWithBitbucketFix.tsx 🐞 Bug fix +0/-148

Delete Bitbucket type mismatch workaround implementation

workspaces/x2a/plugins/x2a/src/scaffolder/RepoUrlPickerWithBitbucketFix.tsx


Grey Divider

Qodo Logo

@rhdh-qodo-merge rhdh-qodo-merge bot added enhancement New feature or request Tests Bug fix labels Apr 17, 2026
@eloycoto eloycoto force-pushed the BitbucketFix branch 4 times, most recently from 97c463a to 0f94dda Compare April 17, 2026 15:57
From the RHDH 1.9 container:

```
sh-5.1$ grep -B1 -A3 "\"@backstage/plugin-permission-backend@" /opt/app-root/src/yarn.lock

"@backstage/plugin-permission-backend@npm:0.7.3":
  version: 0.7.3
  resolution: "@backstage/plugin-permission-backend@npm:0.7.3"
  dependencies:
    "@backstage/backend-plugin-api": ^1.4.2
    "@backstage/config": ^1.3.3
sh-5.1$ grep -B1 -A3 "\"@backstage/plugin-scaffolder@" /opt/app-root/src/yarn.lock

"@backstage/plugin-scaffolder@npm:1.34.3":
  version: 1.34.3
  resolution: "@backstage/plugin-scaffolder@npm:1.34.3"
  dependencies:
    "@backstage/catalog-client": ^1.12.1
    "@backstage/catalog-model": ^1.7.6
sh-5.1$ grep -B1 -A3 "\"@backstage/plugin-scaffolder-react@" /opt/app-root/src/yarn.lock

"@backstage/plugin-scaffolder-react@npm:1.19.3, @backstage/plugin-scaffolder-react@npm:^1.19.3":
  version: 1.19.3
  resolution: "@backstage/plugin-scaffolder-react@npm:1.19.3"
  dependencies:
    "@backstage/catalog-client": ^1.12.1
    "@backstage/catalog-model": ^1.7.6
sh-5.1$ grep -B1 -A3 "\"@backstage/integration-react@" /opt/app-root/src/yarn.lock

"@backstage/integration-react@npm:1.2.12, @backstage/integration-react@npm:^1.2.12":
  version: 1.2.12
  resolution: "@backstage/integration-react@npm:1.2.12"
  dependencies:
    "@backstage/config": ^1.3.6
    "@backstage/core-plugin-api": ^1.12.0
sh-5.1$ grep -B1 -A3 "\"@backstage/core-plugin-api@" /opt/app-root/src/yarn.lock

"@backstage/core-plugin-api@npm:1.12.0":
  version: 1.12.0
  resolution: "@backstage/core-plugin-api@npm:1.12.0"
  dependencies:
    "@backstage/config": ^1.3.6
    "@backstage/errors": ^1.2.7
--

"@backstage/core-plugin-api@npm:^1.12.0, @backstage/core-plugin-api@npm:^1.12.1":
  version: 1.12.1
  resolution: "@backstage/core-plugin-api@npm:1.12.1"
  dependencies:
    "@backstage/config": ^1.3.6
    "@backstage/errors": ^1.2.7
```

Now versions are aligned correctly.

Signed-off-by: Eloy Coto <eloy.coto@acalustra.com>
Signed-off-by: Eloy Coto <eloy.coto@acalustra.com>
@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant