Skip to content

Fixes #39516 - Wrap up content credential migration and cleanup angular#11797

Open
sjha4 wants to merge 1 commit into
Katello:masterfrom
sjha4:cc_page_migrate
Open

Fixes #39516 - Wrap up content credential migration and cleanup angular#11797
sjha4 wants to merge 1 commit into
Katello:masterfrom
sjha4:cc_page_migrate

Conversation

@sjha4

@sjha4 sjha4 commented Jul 10, 2026

Copy link
Copy Markdown
Member

What are the changes introduced in this pull request?

  1. Update all routes to use React Content Credentials.
  2. Delete angular code for content credentials in bastion.
  3. Updated Delete from details to use the action deleteContentCredential. It was using direct API calls which is not ideal + it doesn't create notifications on success. The deleteContentCredential action has all the functionality inbuilt.

Considerations taken when implementing this change?

Can not delete Content credential factory yet since it is used in Product and repository pages.
Reviewed the current state of Content Credentials to make sure everything is proper and all new pages are feature complete so menu can be safely redirect to new page.

What are the testing steps for this pull request?

Navigate to Content> Content Credentials
Make sure you can see the table as well as perform all actions on the page + details page.

Summary by CodeRabbit

  • New Features
    • Content Credentials are now available at /content_credentials, including matching detail pages and a non-labs/ URL scheme across navigation.
    • Create and delete flows now redirect back to /content_credentials after successful actions.
  • Removed
    • Legacy Content Credentials Angular pages, routes, templates, and the related menu entry were removed, and the old labs/-prefixed UI is no longer exposed.
  • Tests
    • Updated React route assertions and removed obsolete legacy Content Credentials test coverage.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 619aefb4-7dc0-4913-b5ca-a7d8832eab54

📥 Commits

Reviewing files that changed from the base of the PR and between 3b730d1 and d768e67.

📒 Files selected for processing (37)
  • config/routes.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-acs.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details-info.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-acs.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-products.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/katello-features.run.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js
  • engines/bastion_katello/lib/bastion_katello/engine.rb
  • engines/bastion_katello/test/content-credentials/content-credentials.factory.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-acs.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details-info.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-products.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-repositorires.controller.test.js
  • engines/bastion_katello/test/content-credentials/new/new-content-credential-controller.test.js
  • lib/katello/plugin.rb
  • webpack/containers/Application/config.js
  • webpack/scenes/ContentCredentials/ContentCredentialsPage.js
  • webpack/scenes/ContentCredentials/Create/CreateContentCredentialForm.js
  • webpack/scenes/ContentCredentials/Create/__tests__/CreateContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Delete/DeleteContentCredentialModal.js
  • webpack/scenes/ContentCredentials/Delete/__tests__/DeleteContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js
  • webpack/scenes/ContentCredentials/Details/__tests__/ContentCredentialsDetails.test.js
💤 Files with no reviewable changes (26)
  • engines/bastion_katello/test/content-credentials/details/content-credential-acs.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-products.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details-info.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-products.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-acs.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js
  • engines/bastion_katello/test/content-credentials/new/new-content-credential-controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js
  • engines/bastion_katello/lib/bastion_katello/engine.rb
  • engines/bastion_katello/test/content-credentials/details/content-credential-details-info.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-repositorires.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-acs.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js
  • engines/bastion_katello/test/content-credentials/content-credentials.factory.test.js
  • lib/katello/plugin.rb
🚧 Files skipped from review as they are similar to previous changes (10)
  • webpack/scenes/ContentCredentials/Delete/tests/DeleteContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/ContentCredentialsPage.js
  • webpack/scenes/ContentCredentials/Create/CreateContentCredentialForm.js
  • config/routes.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js
  • webpack/scenes/ContentCredentials/Delete/DeleteContentCredentialModal.js
  • webpack/scenes/ContentCredentials/Create/tests/CreateContentCredentialModal.test.js
  • webpack/containers/Application/config.js
  • webpack/scenes/ContentCredentials/Details/tests/ContentCredentialsDetails.test.js
  • webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js

📝 Walkthrough

Walkthrough

Content Credentials move from the labs URL namespace to React-backed routes. Legacy Angular controllers, views, tests, menu registration, and page registration are removed, while React navigation and deletion handling are updated.

Changes

Content Credentials migration

Layer / File(s) Summary
Route ownership and legacy cleanup
config/routes.rb, engines/bastion_katello/..., lib/katello/plugin.rb
Adds React GET routes and removes legacy Angular, menu, page, feature-flag, fencing, and asset wiring.
React route migration
webpack/containers/Application/config.js, webpack/scenes/ContentCredentials/...
Changes list and detail navigation from /labs/content_credentials to /content_credentials, including create and delete redirects and route assertions.
Redux deletion flow
webpack/scenes/ContentCredentials/Details/...
Uses deleteContentCredential for deletion, updates breadcrumb routing, and changes failed-delete tests to verify modal dismissal.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ContentCredentialsDetails
  participant Redux
  participant ReactRouter
  ContentCredentialsDetails->>Redux: dispatch deleteContentCredential
  Redux->>ReactRouter: invoke navigation callback
  ReactRouter->>ContentCredentialsDetails: navigate to /content_credentials
Loading

Possibly related PRs

Suggested labels: Packaging Change

Suggested reviewers: pavanshekar, vsedmik, chris1984

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the main change: migrating Content Credentials to React and removing the old Angular pieces.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

webpack/containers/Application/config.js

Error: Cannot read config file: /webpack/.eslintrc.js
Error: Foreman directory cannot be found! This action requires Foreman to be present in either a parent, sibling, or child directory relative to the plugin.
at foremanLocation (/node_modules/.pnpm/@theforeman+find-foreman@4.15.2/node_modules/@theforeman/find-foreman/index.js:27:13)
at Object. (/webpack/.eslintrc.js:3:21)
at Module._compile (/node_modules/.pnpm/v8-compile-cache@2.4.0/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1576:12)
at module.exports (/node_modules/.pnpm/import-fresh@3.3.1/node_modules/import-fresh/index.js:33:91)
at loadJSConfigFile (/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint/lib/cli-engine/config-array-factory.js:201:16)

webpack/scenes/ContentCredentials/ContentCredentialsPage.js

Error: Cannot read config file: /webpack/.eslintrc.js
Error: Foreman directory cannot be found! This action requires Foreman to be present in either a parent, sibling, or child directory relative to the plugin.
at foremanLocation (/node_modules/.pnpm/@theforeman+find-foreman@4.15.2/node_modules/@theforeman/find-foreman/index.js:27:13)
at Object. (/webpack/.eslintrc.js:3:21)
at Module._compile (/node_modules/.pnpm/v8-compile-cache@2.4.0/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1576:12)
at module.exports (/node_modules/.pnpm/import-fresh@3.3.1/node_modules/import-fresh/index.js:33:91)
at loadJSConfigFile (/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint/lib/cli-engine/config-array-factory.js:201:16)

webpack/scenes/ContentCredentials/Create/CreateContentCredentialForm.js

Error: Cannot read config file: /webpack/.eslintrc.js
Error: Foreman directory cannot be found! This action requires Foreman to be present in either a parent, sibling, or child directory relative to the plugin.
at foremanLocation (/node_modules/.pnpm/@theforeman+find-foreman@4.15.2/node_modules/@theforeman/find-foreman/index.js:27:13)
at Object. (/webpack/.eslintrc.js:3:21)
at Module._compile (/node_modules/.pnpm/v8-compile-cache@2.4.0/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
at Object..js (node:internal/modules/cjs/loader:1961:10)
at Module.load (node:internal/modules/cjs/loader:1553:32)
at Module._load (node:internal/modules/cjs/loader:1355:12)
at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
at Module.require (node:internal/modules/cjs/loader:1576:12)
at module.exports (/node_modules/.pnpm/import-fresh@3.3.1/node_modules/import-fresh/index.js:33:91)
at loadJSConfigFile (/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint/lib/cli-engine/config-array-factory.js:201:16)

  • 5 others

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js (1)

67-72: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove dead isMountedRef code.

isMountedRef (line 52) and its cleanup useEffect (lines 63–65) are now dead code — isMountedRef.current is no longer read after replacing the async api.delete call with the synchronous dispatch(deleteContentCredential(...)). The useRef import would also become unused after removal.

♻️ Proposed cleanup
- const isMountedRef = useRef(true);
  const dispatch = useDispatch();
- useEffect(() => () => {
-   isMountedRef.current = false;
- }, []);
-
  const handleDelete = () => {
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js`
around lines 67 - 72, Remove the unused isMountedRef declaration and its cleanup
useEffect from ContentCredentialsDetails, then remove the useRef import if it is
no longer referenced. Keep handleDelete’s synchronous dispatch and navigation
behavior unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js`:
- Around line 67-72: Remove the unused isMountedRef declaration and its cleanup
useEffect from ContentCredentialsDetails, then remove the useRef import if it is
no longer referenced. Keep handleDelete’s synchronous dispatch and navigation
behavior unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5f4aaf79-6177-4d30-a616-a2e6bbfaf42b

📥 Commits

Reviewing files that changed from the base of the PR and between 580a88a and 326f4c9.

📒 Files selected for processing (35)
  • config/routes.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-acs.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details-info.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-acs.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-products.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html
  • engines/bastion_katello/lib/bastion_katello/engine.rb
  • engines/bastion_katello/test/content-credentials/content-credentials.factory.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-acs.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details-info.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-products.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-repositorires.controller.test.js
  • engines/bastion_katello/test/content-credentials/new/new-content-credential-controller.test.js
  • lib/katello/plugin.rb
  • webpack/containers/Application/config.js
  • webpack/scenes/ContentCredentials/ContentCredentialsPage.js
  • webpack/scenes/ContentCredentials/Create/CreateContentCredentialForm.js
  • webpack/scenes/ContentCredentials/Create/__tests__/CreateContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Delete/DeleteContentCredentialModal.js
  • webpack/scenes/ContentCredentials/Delete/__tests__/DeleteContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js
  • webpack/scenes/ContentCredentials/Details/__tests__/ContentCredentialsDetails.test.js
💤 Files with no reviewable changes (25)
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-details-info.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html
  • engines/bastion_katello/test/content-credentials/content-credentials.factory.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-products.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details-info.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-details.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-products.html
  • engines/bastion_katello/lib/bastion_katello/engine.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-repositorires.controller.test.js
  • engines/bastion_katello/test/content-credentials/new/new-content-credential-controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-acs.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-acs.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js
  • lib/katello/plugin.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-acs.controller.js

@ianballou ianballou left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sjha4 sjha4 force-pushed the cc_page_migrate branch from 326f4c9 to 3b730d1 Compare July 13, 2026 19:41

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
webpack/scenes/ContentCredentials/Details/__tests__/ContentCredentialsDetails.test.js (1)

230-261: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

The failure test asserts modal closure that the component does not perform.

On delete failure, handleDelete only provides a success callback; the modal remains open because its deleting state is not reset. Restore the failure-toast assertion, or add an explicit failure callback that closes the modal before asserting dismissal.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@webpack/scenes/ContentCredentials/Details/__tests__/ContentCredentialsDetails.test.js`
around lines 230 - 261, Update the “closes modal when delete fails” test and the
associated handleDelete flow in ContentCredentialsDetails to match the intended
failure behavior: either restore the failure-toast assertion without expecting
dismissal, or add an explicit failure callback that resets deleting state and
closes the modal before asserting it is gone. Keep the delete-failure response
and existing success behavior intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In
`@webpack/scenes/ContentCredentials/Details/__tests__/ContentCredentialsDetails.test.js`:
- Around line 230-261: Update the “closes modal when delete fails” test and the
associated handleDelete flow in ContentCredentialsDetails to match the intended
failure behavior: either restore the failure-toast assertion without expecting
dismissal, or add an explicit failure callback that resets deleting state and
closes the modal before asserting it is gone. Keep the delete-failure response
and existing success behavior intact.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8be49fa3-5744-48d6-b0e6-842896bbf059

📥 Commits

Reviewing files that changed from the base of the PR and between 326f4c9 and 3b730d1.

📒 Files selected for processing (35)
  • config/routes.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-acs.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details-info.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-acs.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-products.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html
  • engines/bastion_katello/lib/bastion_katello/engine.rb
  • engines/bastion_katello/test/content-credentials/content-credentials.factory.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-acs.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details-info.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-details.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-products.controller.test.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-repositorires.controller.test.js
  • engines/bastion_katello/test/content-credentials/new/new-content-credential-controller.test.js
  • lib/katello/plugin.rb
  • webpack/containers/Application/config.js
  • webpack/scenes/ContentCredentials/ContentCredentialsPage.js
  • webpack/scenes/ContentCredentials/Create/CreateContentCredentialForm.js
  • webpack/scenes/ContentCredentials/Create/__tests__/CreateContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Delete/DeleteContentCredentialModal.js
  • webpack/scenes/ContentCredentials/Delete/__tests__/DeleteContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js
  • webpack/scenes/ContentCredentials/Details/__tests__/ContentCredentialsDetails.test.js
💤 Files with no reviewable changes (25)
  • engines/bastion_katello/test/content-credentials/content-credentials.factory.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-repositorires.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-details-info.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details-info.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html
  • engines/bastion_katello/lib/bastion_katello/engine.rb
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-acs.html
  • engines/bastion_katello/test/content-credentials/new/new-content-credential-controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js
  • engines/bastion_katello/test/content-credentials/details/content-credential-products.controller.test.js
  • lib/katello/plugin.rb
  • engines/bastion_katello/test/content-credentials/details/content-credential-details.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-products.html
  • engines/bastion_katello/test/content-credentials/details/content-credential-acs.controller.test.js
  • engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-acs.controller.js
🚧 Files skipped from review as they are similar to previous changes (8)
  • config/routes.rb
  • webpack/containers/Application/config.js
  • webpack/scenes/ContentCredentials/Create/CreateContentCredentialForm.js
  • webpack/scenes/ContentCredentials/Create/tests/CreateContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Delete/tests/DeleteContentCredentialModal.test.js
  • webpack/scenes/ContentCredentials/Delete/DeleteContentCredentialModal.js
  • webpack/scenes/ContentCredentials/ContentCredentialsPage.js
  • webpack/scenes/ContentCredentials/Details/ContentCredentialsDetails.js

@sjha4 sjha4 force-pushed the cc_page_migrate branch from 3b730d1 to d768e67 Compare July 13, 2026 19:49
@sjha4

sjha4 commented Jul 13, 2026

Copy link
Copy Markdown
Member Author

Updated the 2 references to old CC bastion routes. 👍🏼

Locally, I am not seeing the create button being weird. 😕 I see it with a git pull in foreman so something changed there..

Screenshot from 2026-07-13 15-50-30

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants