Skip to content

Conversation

@logonoff
Copy link
Member

@logonoff logonoff commented Jan 12, 2026

Previously, if a catalog/item-type was disabled in console-operator config, the hooks associated with that catalog type would still resolve and run.

image

Now, if a catalog category is disabled, the associated hooks will not run.

image

Summary by CodeRabbit

  • New Features

    • Added catalog relevance scoring, Red Hat prioritization, keyword-aware comparison, and stable sorting options.
    • Server-flag driven sub-catalog visibility with memoized computation for consistent, faster results.
    • New utilities exported to support sorting and relevance logic.
  • Bug Fixes

    • Disabled catalog types are consistently filtered across extension flows so unavailable items no longer appear.
  • Tests

    • Updated tests to align with the new extensions retrieval behavior and memoized visibility logic.

✏️ Tip: You can customize this high-level summary in your review settings.

@openshift-ci-robot openshift-ci-robot added jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jan 12, 2026
@openshift-ci-robot
Copy link
Contributor

@logonoff: This pull request references Jira Issue OCPBUGS-72585, which is invalid:

  • expected the bug to target the "4.22.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Previously, if a catalog/item-type was disabled in console-operator config, the hooks associated with that catalog type would still run.

image

Now, if a catalog category is disabled, the associated hooks will not run.

image

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@logonoff logonoff marked this pull request as ready for review January 12, 2026 15:21
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 12, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

📝 Walkthrough

Walkthrough

Filters disabled catalog item types during extension processing, replaces useResolvedExtensions with useExtensions, derives disabled sub-catalogs from SERVER_FLAGS via a memoized hook, adds item relevance scoring/sorting helpers, and updates tests to mock/use the new useExtensions behavior.

Changes

Cohort / File(s) Summary
Catalog extension gating & predicates
frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts
Adds import/usage of useGetAllDisabledSubCatalogs, computes disabledCatalogs, introduces isNotDisabledType, and applies it across multiple extension type guards (CatalogItemType, CatalogItemTypeMetadata, CatalogItemProvider, CatalogItemFilter, CatalogCategoriesProvider, CatalogItemMetadataProvider). Filters item-type extensions before metadata augmentation and updates dependency arrays. Public APIs unchanged.
Catalog utilities, hook migration & relevance/sorting helpers
frontend/packages/console-shared/src/components/catalog/utils/catalog-utils.tsx
Replaces useResolvedExtensions with useExtensions, adds getSoftwareCatalogTypes() and SoftwareCatalogTypesConfig parsing of window.SERVER_FLAGS, refactors useGetAllDisabledSubCatalogs to use useExtensions + useMemo, and introduces exported utilities: calculateCatalogItemRelevanceScore, getRedHatPriority, keywordCompare, and sortCatalogItems. Adjusts imports and memoization.
Tests: hook mock updates
frontend/packages/console-shared/src/utils/__tests__/isSubCatalogTypeEnabled.spec.ts
Updates tests to mock useExtensions (single-value return) instead of useResolvedExtensions (previous tuple-like mock), adapts mocked return shape and wraps hook evaluations in test harnesses to match new hook behavior.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title directly and specifically describes the main change: preventing resolution of disabled catalog type extensions, which aligns with the PR's core objective of not running hooks for disabled catalog types.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 12, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jan 12, 2026
@logonoff
Copy link
Member Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jan 12, 2026
@openshift-ci-robot
Copy link
Contributor

@logonoff: This pull request references Jira Issue OCPBUGS-72585, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @yapei

Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci bot requested a review from yapei January 12, 2026 15:22
@openshift-ci-robot
Copy link
Contributor

@logonoff: This pull request references Jira Issue OCPBUGS-72585, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @yapei

Details

In response to this:

Previously, if a catalog/item-type was disabled in console-operator config, the hooks associated with that catalog type would still run.

image

Now, if a catalog category is disabled, the associated hooks will not run.

image

Summary by CodeRabbit

  • New Features
  • Catalog type management: Administrators can now configure which catalog types are visible in the developer catalog through console operator settings. This enables better control over which resources are available to developers. Supported types include Templates, Builder Images, Devfiles, Samples, Helm Charts, Event Types, Event Sources, Event Sinks, Operators, and Operator-backed Services.

✏️ Tip: You can customize this high-level summary in your review settings.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

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

⚠️ Outside diff range comments (1)
frontend/packages/operator-lifecycle-manager/console-extensions.json (1)

378-388: Add SOFTWARE_CATALOG_TYPE_OPERATOR_DISABLED to operator item-provider flags for consistent gating.

The console.catalog/item-provider for operators (line 386) only disallows OLMV1_ENABLED, while the corresponding console.catalog/item-type (line 440) and categories-provider (line 450) both include SOFTWARE_CATALOG_TYPE_OPERATOR_DISABLED. This asymmetric gating breaks the established pattern: the OperatorBackedService item-provider and item-type both use their respective SOFTWARE_CATALOG_TYPE_*_DISABLED flags consistently. The operator item-provider should include SOFTWARE_CATALOG_TYPE_OPERATOR_DISABLED in its disallowed array to ensure symmetric feature gating and prevent data fetching when the operator catalog is disabled.

🤖 Fix all issues with AI agents
In @frontend/packages/dev-console/src/actions/providers.tsx:
- Around line 370-384: useDisabledCatalogTypes currently only sets
SOFTWARE_CATALOG_TYPE_<TYPE>_DISABLED to true for items in catalogTypes.disabled
and never resets flags to false; update the logic in useDisabledCatalogTypes so
you compute the union of catalogTypes.disabled and catalogTypes.enabled (or a
known set of types), then call setFeatureFlag for each type: set true when the
type is in catalogTypes.disabled, otherwise set false, ensuring flags are
explicitly reset when a type is re-enabled; reference the
useDisabledCatalogTypes function, the catalogTypes.disabled/
catalogTypes.enabled values, and the setFeatureFlag call.
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between a1355a3 and 951e59a.

📒 Files selected for processing (8)
  • frontend/packages/dev-console/console-extensions.json
  • frontend/packages/dev-console/src/actions/providers.tsx
  • frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx
  • frontend/packages/dev-console/src/types/catalog.ts
  • frontend/packages/helm-plugin/console-extensions.json
  • frontend/packages/knative-plugin/console-extensions.json
  • frontend/packages/operator-lifecycle-manager-v1/console-extensions.json
  • frontend/packages/operator-lifecycle-manager/console-extensions.json
🧰 Additional context used
🧬 Code graph analysis (2)
frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx (1)
frontend/packages/dev-console/src/types/catalog.ts (1)
  • DeveloperCatalogTypes (3-7)
frontend/packages/dev-console/src/actions/providers.tsx (2)
frontend/packages/console-dynamic-plugin-sdk/src/extensions/feature-flags.ts (1)
  • FeatureFlagHandler (46-46)
frontend/packages/dev-console/src/types/catalog.ts (1)
  • SoftwareCatalogTypesConsoleConfig (9-17)
🔇 Additional comments (19)
frontend/packages/operator-lifecycle-manager-v1/console-extensions.json (1)

52-76: LGTM! Consistent gating of OLMv1 operator catalog extensions.

Both console.catalog/item-provider and console.catalog/categories-provider are correctly gated with SOFTWARE_CATALOG_TYPE_OPERATOR_DISABLED disallowed flag. This ensures hooks won't execute when the operator catalog type is disabled via console-operator config.

frontend/packages/operator-lifecycle-manager/console-extensions.json (2)

264-295: LGTM! OperatorBackedService extensions properly gated.

Both console.catalog/item-type and console.catalog/item-provider for OperatorBackedService are correctly configured with SOFTWARE_CATALOG_TYPE_OPERATORBACKEDSERVICE_DISABLED in the disallowed flags. This ensures the hooks won't run when this catalog type is disabled.


438-452: LGTM! Operator item-type and categories-provider correctly gated.

The console.catalog/item-type for operators and console.catalog/categories-provider both include SOFTWARE_CATALOG_TYPE_OPERATOR_DISABLED in their disallowed flags, ensuring proper feature-flag gating when the catalog type is disabled.

frontend/packages/helm-plugin/console-extensions.json (1)

182-217: LGTM! Helm chart catalog extensions properly gated.

Both console.catalog/item-type and console.catalog/item-provider for HelmChart correctly include SOFTWARE_CATALOG_TYPE_HELMCHART_DISABLED in their disallowed flags alongside the existing OPENSHIFT_HELM required flag. This ensures Helm chart hooks won't execute when the catalog type is disabled.

frontend/packages/knative-plugin/console-extensions.json (3)

473-504: LGTM! EventType catalog extensions properly gated.

Both console.catalog/item-type and console.catalog/item-provider for EventType correctly include SOFTWARE_CATALOG_TYPE_EVENTTYPE_DISABLED in disallowed flags.


706-750: LGTM! EventSource catalog extensions comprehensively gated.

All three EventSource-related extensions are properly configured:

  • console.catalog/item-type for EventSource
  • console.catalog/item-provider using useEventSourceProvider
  • console.catalog/item-provider using useKameletsProvider

All include SOFTWARE_CATALOG_TYPE_EVENTSOURCE_DISABLED in their disallowed flags.


751-795: LGTM! EventSink catalog extensions comprehensively gated.

All three EventSink-related extensions are properly configured:

  • console.catalog/item-type for EventSink
  • console.catalog/item-provider using useKameletsSinkProvider
  • console.catalog/item-provider using useKafkaSinkProvider

All include SOFTWARE_CATALOG_TYPE_EVENTSINK_DISABLED in their disallowed flags, ensuring consistent behavior when the catalog type is disabled.

frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx (2)

18-18: LGTM! Clean type consolidation.

Good refactoring to import DeveloperCatalogTypes and SoftwareCatalogTypesConsoleConfig from the centralized types file. This improves maintainability by having a single source of truth for these types, which aligns with the broader PR changes introducing the catalog type gating mechanism.


52-52: LGTM! State typing updated correctly.

The useState<DeveloperCatalogTypes>() correctly aligns with the imported type, which per the code snippet includes state: 'Enabled' | 'Disabled' plus optional enabled and disabled arrays. This matches the existing usage throughout the component.

frontend/packages/dev-console/src/types/catalog.ts (2)

9-17: LGTM!

The SoftwareCatalogTypesConsoleConfig type properly extends K8sResourceKind and uses appropriate optional chaining for the nested config structure. This aligns well with the console operator config schema pattern.


3-7: The state field and enabled array are actively used throughout the codebase and the type definition is well-implemented. The state field determines the filtering mode: 'Enabled' operates as an allowlist (only types in the enabled array are shown), while 'Disabled' operates as a denylist (types in the disabled array are hidden). Both CatalogTypesConfiguration and the shared catalog utilities properly respect this semantic. No changes needed.

frontend/packages/dev-console/src/actions/providers.tsx (2)

72-80: LGTM!

The useSoftwareCatalogProvider correctly uses the FeatureFlagHandler type, aligning with the established pattern in this codebase. The hook calls within this handler follow the console.flag/hookProvider extension contract.


26-26: LGTM!

New imports for useConsoleOperatorConfig and SoftwareCatalogTypesConsoleConfig are appropriate for the new functionality.

Also applies to: 39-39

frontend/packages/dev-console/console-extensions.json (6)

174-179: LGTM!

The new console.flag/hookProvider extension correctly wires useDisabledCatalogTypes to set feature flags based on console operator config. This follows the established pattern used by useSoftwareCatalogProvider.


469-486: LGTM!

The disallowed flags for BuilderImage item-type and item-provider are correctly added. The flag name SOFTWARE_CATALOG_TYPE_BUILDERIMAGE_DISABLED matches the uppercase transformation in useDisabledCatalogTypes.


495-512: LGTM!

Template item-type and item-provider correctly gated with SOFTWARE_CATALOG_TYPE_TEMPLATE_DISABLED.


521-538: LGTM!

Devfile item-type and item-provider correctly gated with SOFTWARE_CATALOG_TYPE_DEVFILE_DISABLED.


562-587: LGTM!

The samples-catalog providers for BuilderImage and Devfile types are correctly gated with their respective _DISABLED flags. This ensures that when a catalog type is disabled, both the main catalog and the samples catalog respect the configuration.


539-561: Flag naming and usage are consistent and correct.

The codebase dynamically generates SOFTWARE_CATALOG_TYPE_<TYPE>_DISABLED flags from the operator config's disabled array values (see frontend/packages/dev-console/src/actions/providers.tsx). This ensures that cluster admins simply list catalog type names (e.g., "Sample") and the flag name generation handles consistency automatically.

Note: CONSOLESAMPLE is a separate feature flag for the ConsoleSample provider itself and serves a different purpose than the catalog type disabling mechanism. The two are used correctly.

@logonoff logonoff force-pushed the OCPBUGS-72585-devfile branch from 951e59a to b0ab1fb Compare January 12, 2026 15:26
@openshift-ci openshift-ci bot added component/dev-console Related to dev-console component/helm Related to helm-plugin approved Indicates a PR has been approved by an approver from all required OWNERS files. component/knative Related to knative-plugin component/olm Related to OLM labels Jan 12, 2026
@logonoff logonoff force-pushed the OCPBUGS-72585-devfile branch from b0ab1fb to 706397e Compare January 12, 2026 15:35
@openshift-ci openshift-ci bot added the component/shared Related to console-shared label Jan 12, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In
@frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts:
- Around line 34-44: The isNotDisabledType predicate currently returns falsy
when e.properties.type is undefined, which incorrectly filters out
global/typeless extensions; update the isNotDisabledType callback so it returns
true when e.properties.type is not set (i.e., allow typeless entries) and only
checks catalogTypes.disabled.includes(e.properties.type) when a type exists;
ensure you modify the function named isNotDisabledType (used alongside
CatalogCategoriesProvider predicates) to first short-circuit for
!e.properties.type and otherwise check the disabled list.
🧹 Nitpick comments (3)
frontend/packages/console-shared/src/components/cluster-configuration/useConsoleOperatorConfig.ts (1)

7-13: Consider making the hook return type explicit (to prevent tuple-shape drift).

Since callers commonly destructure this hook, an explicit return type (based on useK8sWatchResource) can help catch mismatches early if the watch hook’s signature evolves.

frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts (2)

3-4: Type import layering: console-shared depending on dev-console types is awkward long-term.

Even as a type-only import, this creates coupling from console-shared to dev-console. Consider moving SoftwareCatalogTypesConsoleConfig (or a narrower “developerCatalog.types” shape) into a shared location within console-shared (or a common types package) to keep dependency direction clean.


46-116: Add focused tests for disabled types + type-less extensions.

Given the new filtering is now a cross-cutting gate for all resolved extension kinds, please add coverage for:

  • a disabled type being filtered out for each extension kind you expect to be typed
  • an extension with no properties.type still being retained (if supported/expected), especially for CatalogCategoriesProvider

Also applies to: 118-147

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between b0ab1fb and 706397e.

📒 Files selected for processing (5)
  • frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts
  • frontend/packages/console-shared/src/components/cluster-configuration/index.ts
  • frontend/packages/console-shared/src/components/cluster-configuration/useConsoleOperatorConfig.ts
  • frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx
  • frontend/packages/dev-console/src/types/catalog.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • frontend/packages/dev-console/src/types/catalog.ts
  • frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx
🧰 Additional context used
🧬 Code graph analysis (2)
frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts (2)
frontend/packages/console-shared/src/components/cluster-configuration/useConsoleOperatorConfig.ts (1)
  • useConsoleOperatorConfig (7-13)
frontend/packages/dev-console/src/types/catalog.ts (1)
  • SoftwareCatalogTypesConsoleConfig (9-17)
frontend/packages/console-shared/src/components/cluster-configuration/useConsoleOperatorConfig.ts (1)
frontend/packages/console-shared/src/components/cluster-configuration/index.ts (1)
  • useConsoleOperatorConfig (3-3)
🔇 Additional comments (1)
frontend/packages/console-shared/src/components/cluster-configuration/index.ts (1)

3-3: Refactor to named export is safe—no default imports remain.

The codebase has been successfully sanitized: no default imports of useConsoleOperatorConfig exist. Both the source file and the index correctly export it as a named export, forcing all consumers to use the named import pattern. The transition is complete with no breaking references lingering.

@logonoff logonoff force-pushed the OCPBUGS-72585-devfile branch from 706397e to 8f769d4 Compare January 12, 2026 15:48
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In
@frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts:
- Around line 34-48: The isNotDisabledType callback must handle
DeveloperCatalogTypes' state modes and guard against undefined arrays: if
e.properties.type is missing, keep returning true; otherwise read catalogTypes
from consoleConfig and if catalogTypes.state === 'Enabled' return
catalogTypes.enabled?.includes(e.properties.type) === true; if
catalogTypes.state === 'Disabled' and catalogTypes.disabled is undefined treat
that as "everything disabled" (return false), else return
!catalogTypes.disabled?.includes(e.properties.type); ensure you never call
.includes on an undefined array by using optional chaining or nullish coalescing
when checking enabled/disabled arrays.
- Line 3: The import of SoftwareCatalogTypesConsoleConfig (and similarly
INCONTEXT_ACTIONS_CONNECTS_TO) from the plugin package creates a forbidden
coupling; move the shared catalog types/constants into the console-shared
package and update imports: extract SoftwareCatalogTypesConsoleConfig into a new
type file (e.g., console-shared's types catalog export) and extract
INCONTEXT_ACTIONS_CONNECTS_TO into a console-shared constants module, export
them, then replace the import in useCatalogExtensions.ts (and any other
references) to import from the new console-shared types/constants instead of
from @console/dev-console.
🧹 Nitpick comments (1)
frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts (1)

127-129: Redundant filtering — itemTypeExtensions already filtered.

The itemTypeExtensions array was already filtered by isNotDisabledType during useResolvedExtensions resolution (line 54). This second .filter(isNotDisabledType) iterates the array again without effect.

♻️ Remove redundant filter
       (catalogType
         ? itemTypeExtensions.filter((e) => e.properties.type === catalogType)
         : itemTypeExtensions
-      )
-        .filter(isNotDisabledType)
-        .map((e) => {
+      ).map((e) => {

Also remove isNotDisabledType from the dependency array at line 150 if this is cleaned up.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Cache: Disabled due to data retention organization setting

Knowledge base: Disabled due to data retention organization setting

📥 Commits

Reviewing files that changed from the base of the PR and between 706397e and 8f769d4.

📒 Files selected for processing (5)
  • frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts
  • frontend/packages/console-shared/src/components/cluster-configuration/index.ts
  • frontend/packages/console-shared/src/components/cluster-configuration/useConsoleOperatorConfig.ts
  • frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx
  • frontend/packages/dev-console/src/types/catalog.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • frontend/packages/console-shared/src/components/cluster-configuration/useConsoleOperatorConfig.ts
  • frontend/packages/dev-console/src/types/catalog.ts
  • frontend/packages/console-shared/src/components/cluster-configuration/index.ts
🧰 Additional context used
🧬 Code graph analysis (1)
frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx (1)
frontend/packages/dev-console/src/types/catalog.ts (1)
  • DeveloperCatalogTypes (3-7)
🔇 Additional comments (2)
frontend/packages/dev-console/src/components/catalog/CatalogTypesConfiguration.tsx (1)

18-18: Clean type extraction to shared module — LGTM.

Good separation of concerns moving DeveloperCatalogTypes and SoftwareCatalogTypesConsoleConfig to a dedicated types module. This aligns with our pattern of keeping reusable types accessible across packages.

Also applies to: 52-52

frontend/packages/console-shared/src/components/catalog/hooks/useCatalogExtensions.ts (1)

50-120: Consistent filtering across all extension types — good pattern.

The isNotDisabledType predicate is correctly applied to all relevant extension resolution callbacks (CatalogItemType, CatalogItemTypeMetadata, CatalogItemProvider, CatalogItemFilter, CatalogCategoriesProvider, CatalogItemMetadataProvider), and dependency arrays are properly updated.

Once the logic issue in isNotDisabledType is addressed, this will properly prevent disabled catalog hooks from executing.

@logonoff logonoff force-pushed the OCPBUGS-72585-devfile branch from 8f769d4 to c14b708 Compare January 12, 2026 17:39
@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 20, 2026
@logonoff logonoff force-pushed the OCPBUGS-72585-devfile branch from 10d9681 to 0bfaee7 Compare January 20, 2026 14:44
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jan 20, 2026
Copy link
Member

@TheRealJon TheRealJon left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 20, 2026
@logonoff
Copy link
Member Author

/assign @yapei

@Leo6Leo
Copy link
Contributor

Leo6Leo commented Jan 22, 2026

/retest-required

@yanpzhan
Copy link
Contributor

@logonoff could you rebase the pr? Could not launch cluster with cluster-bot currently.

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 26, 2026
@logonoff logonoff force-pushed the OCPBUGS-72585-devfile branch from 0bfaee7 to 862bf21 Compare January 26, 2026 14:12
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 26, 2026
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jan 26, 2026
@yanpzhan
Copy link
Contributor

Tested on cluster launched against the pr, set Cluster Samples Operator as managementState: removed and disabled devfiles catalog from customization page, checked catalogs by clicking "All services", "Database" or "Samples" from "+Add" page. There was not error msg, and no https request for 'devfiles' in network.
Screenshot from 2026-01-28 00-00-18

/verified by yanpzhan

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jan 27, 2026
@openshift-ci-robot
Copy link
Contributor

@yanpzhan: This PR has been marked as verified by yanpzhan.

Details

In response to this:

Tested on cluster launched against the pr, set Cluster Samples Operator as managementState: removed and disabled devfiles catalog from customization page, checked catalogs by clicking "All services", "Database" or "Samples" from "+Add" page. There was not error msg, and no https request for 'devfiles' in network.
Screenshot from 2026-01-28 00-00-18

/verified by yanpzhan

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@vojtechszocs
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jan 27, 2026
@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD 1d96e43 and 2 for PR HEAD 862bf21 in total

@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD c1a5050 and 1 for PR HEAD 862bf21 in total

Copy link
Member

@TheRealJon TheRealJon left a comment

Choose a reason for hiding this comment

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

/lgtm

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 27, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: logonoff, TheRealJon, vojtechszocs

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@logonoff
Copy link
Member Author

/retest

1 similar comment
@logonoff
Copy link
Member Author

/retest

@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 0 against base HEAD c947e17 and 0 for PR HEAD 862bf21 in total

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 28, 2026

@logonoff: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-console 862bf21 link true /test e2e-gcp-console

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-ci-robot
Copy link
Contributor

/hold

Revision 862bf21 was retested 3 times: holding

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. component/dev-console Related to dev-console component/helm Related to helm-plugin component/knative Related to knative-plugin component/olm Related to OLM component/shared Related to console-shared do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants