Skip to content

feat: Initial plugin targeting 4.18 and PF5 (#10431) - #262

Open
keithchong wants to merge 1 commit into
redhat-developer:release-4.18from
keithchong:patternfly-5
Open

feat: Initial plugin targeting 4.18 and PF5 (#10431)#262
keithchong wants to merge 1 commit into
redhat-developer:release-4.18from
keithchong:patternfly-5

Conversation

@keithchong

Copy link
Copy Markdown
Collaborator

See GITOPS-10431

@openshift-ci
openshift-ci Bot requested review from aali309 and wtam2018 August 12, 2026 15:38
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 78d0ac52-288d-40c0-ab25-b137ed098dd9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • Enhancements
    • Updated the interface styling and components for improved compatibility with the latest OpenShift Console experience.
    • Refreshed empty states across applications, projects, rollouts, resources, and image updates with clearer layouts and icons.
    • Improved error-state presentation and messaging consistency.
    • Updated status colors, badges, tables, graphs, breadcrumbs, and navigation styling for a more consistent appearance.
    • Replaced the Argo CD image link decoration with a standard link icon.
    • Disabled graph drag-and-drop behavior where unsupported.
  • Bug Fixes
    • Corrected warning, disabled, spacing, and background colors throughout the interface.
  • Tests
    • Updated status display snapshots for the refreshed visual styling.

Walkthrough

The plugin was aligned with OpenShift Console 4.18 and PatternFly 5. Dependencies, workspace overrides, component APIs, CSS classes, design tokens, graph behavior, empty states, error states, and console startup configuration were updated.

Changes

Console and PatternFly migration

Layer / File(s) Summary
Dependency and workspace baseline
package.json, pnpm-workspace.yaml, src/index.d.ts, start-console.sh
Development and runtime dependencies now target Console 4.18 and PatternFly 5. Workspace overrides, SCSS declarations, and the default console image were updated.
Application and ApplicationSet views
src/gitops/components/application/..., src/gitops/components/appset/..., src/gitops/Statuses/SyncStatus.test.tsx
Application and ApplicationSet views use PatternFly 5 classes, tokens, composed empty states, and updated graph sidebar wiring.
Project, image-updater, and list views
src/gitops/components/project/..., src/gitops/components/imageupdater/..., src/gitops/components/shared/*List.tsx
Empty states use EmptyStateHeader and EmptyStateIcon. Error states use errorTitle and errorDescription. List headers and table styles use the updated APIs and classes.
Rollout, shared, and utility styling
src/gitops/components/rollout/..., src/gitops/components/shared/..., src/gitops/topology/..., src/gitops/utils/..., src/plugin/...
Rollout controls, shared components, topology styles, utility components, icon constants, and plugin status styles use PatternFly 5 APIs, selectors, and variables.

Estimated code review effort: 4 (Complex) | ~45 minutes

Suggested reviewers: wtam2018, aali309

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary changes: targeting OpenShift 4.18 and PatternFly 5.
Description check ✅ Passed The description references the related GITOPS-10431 issue and is not unrelated to the changeset.
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.

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.

@keithchong

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@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.

Actionable comments posted: 5

🤖 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.

Inline comments:
In `@package.json`:
- Around line 46-47: Update the `@typescript-eslint/eslint-plugin` and
`@typescript-eslint/parser` dependency declarations together to versions that
officially support TypeScript 5.9, and regenerate the lockfile so both packages
resolve consistently to the supported version.
- Line 24: Update the direct `@jest/types` dependency in package.json from the
Jest 30 range to a Jest 29-compatible version, preferably matching the
runtime-resolved 29.6.3 release. Keep the Jest dependency stack on the same
major version rather than upgrading only `@jest/types`.

In `@src/gitops/components/application/Conditions/ConditionsPopover.tsx`:
- Line 66: Update the className conditional in ConditionsPopover to use the
PatternFly 5 utility `pf-v5-u-pl-sm` instead of `pf-v6u-pl-sm` when
summary.error or summary.warning is greater than zero.

In `@src/gitops/components/project/project-list.scss`:
- Around line 27-32: Insert a blank line between the PatternFly custom
properties and the regular max-width declaration in the table cell style block,
preserving all existing declarations and values.

In `@src/gitops/components/shared/DetailsPageHeader/details-page-header.scss`:
- Around line 7-8: Update the calc expression in the details page header styles
so the line break does not occur immediately after the + operator; keep the
second operand on the same line or move the operator to the next line while
preserving the calculation.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 16ccc5e1-10e5-484e-a87e-619a2bdafcbb

📥 Commits

Reviewing files that changed from the base of the PR and between 89bc2b8 and c3c3efe.

⛔ Files ignored due to path filters (4)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • src/images/argo-icon.svg is excluded by !**/*.svg
  • src/images/argo.png is excluded by !**/*.png
  • src/images/argo.svg is excluded by !**/*.svg
📒 Files selected for processing (68)
  • package.json
  • pnpm-workspace.yaml
  • src/gitops/Statuses/SyncStatus.test.tsx
  • src/gitops/components/application/ApplicationDetailsTab.tsx
  • src/gitops/components/application/ApplicationResourcesTab.tsx
  • src/gitops/components/application/ApplicationResourcesView.tsx
  • src/gitops/components/application/ApplicationSourcesTab.tsx
  • src/gitops/components/application/ApplicationSyncStatusTab.tsx
  • src/gitops/components/application/Conditions/ConditionsPopover.tsx
  • src/gitops/components/application/History/History.scss
  • src/gitops/components/application/History/History.tsx
  • src/gitops/components/application/application-details-title.scss
  • src/gitops/components/application/graph/ApplicationGraphView.scss
  • src/gitops/components/application/graph/nodes/ApplicationNode.tsx
  • src/gitops/components/appset/AppSetDetailsTab.scss
  • src/gitops/components/appset/AppSetDetailsTab.tsx
  • src/gitops/components/appset/generators/ClusterGenerator.tsx
  • src/gitops/components/appset/generators/GenericGenerator.tsx
  • src/gitops/components/appset/graph/ApplicationSetGraphView.tsx
  • src/gitops/components/appset/graph/nodes/ApplicationSetNode.tsx
  • src/gitops/components/appset/graph/nodes/StepGroupComponent.tsx
  • src/gitops/components/imageupdater/ImageUpdaterDetailsTab.tsx
  • src/gitops/components/imageupdater/ImageUpdaterList.tsx
  • src/gitops/components/imageupdater/ImageUpdaterNavPage.tsx
  • src/gitops/components/imageupdater/ImageUpdaterRecentUpdatesTab.tsx
  • src/gitops/components/imageupdater/imageupdater-list.scss
  • src/gitops/components/project/DestinationsList.tsx
  • src/gitops/components/project/ProjectAllowDenyTab.tsx
  • src/gitops/components/project/ProjectDetailsTab.tsx
  • src/gitops/components/project/ProjectList.tsx
  • src/gitops/components/project/ProjectNavPage.tsx
  • src/gitops/components/project/ProjectRolesTab.tsx
  • src/gitops/components/project/ProjectSyncWindowsTab.tsx
  • src/gitops/components/project/ResourceAllowDenyList.tsx
  • src/gitops/components/project/project-list.scss
  • src/gitops/components/rollout/RolloutDetailsTab.tsx
  • src/gitops/components/rollout/RolloutList.tsx
  • src/gitops/components/rollout/RolloutNavPage.tsx
  • src/gitops/components/rollout/RolloutRevisionsTab.tsx
  • src/gitops/components/rollout/components/AnalysisRunStatus/AnalysisRunStatus.scss
  • src/gitops/components/rollout/components/PodList/PodList.tsx
  • src/gitops/components/rollout/components/RevisionAlertGroup/RevisionAlertGroup.tsx
  • src/gitops/components/rollout/revisions/Revisions.scss
  • src/gitops/components/rollout/revisions/Revisions.tsx
  • src/gitops/components/rollout/strategy/CanaryServices.tsx
  • src/gitops/components/rollout/utils/TopologyLink.tsx
  • src/gitops/components/shared/ApplicationList.tsx
  • src/gitops/components/shared/ApplicationSetList.tsx
  • src/gitops/components/shared/ArgoCDLink/ArgoCDLink.tsx
  • src/gitops/components/shared/BaseDetailsSummary/BaseDetailsSummary.tsx
  • src/gitops/components/shared/DetailsPageHeader/DetailsPageHeader.tsx
  • src/gitops/components/shared/DetailsPageHeader/details-page-header.scss
  • src/gitops/components/shared/FavoriteButton/FavoriteButton.tsx
  • src/gitops/components/shared/FieldLevelHelp/FieldLevelHelp.scss
  • src/gitops/components/shared/FieldLevelHelp/FieldLevelHelp.tsx
  • src/gitops/components/shared/GitOpsGraphListView.scss
  • src/gitops/components/shared/ResourceYAMLTab/ResourceYAMLTab.scss
  • src/gitops/topology/console/Decorator.scss
  • src/gitops/topology/sidebar/DeploymentSideBarDetails.tsx
  • src/gitops/utils/components/ActionDropDownItem/action-dropdown-item.scss
  • src/gitops/utils/components/Conditions/Conditions.tsx
  • src/gitops/utils/components/Icons/Icons.tsx
  • src/gitops/utils/components/OwnerReferences/owner-references.tsx
  • src/images/argo-icon.scss
  • src/index.d.ts
  • src/plugin/import/badges/Badge.scss
  • src/plugin/status/icons.tsx
  • start-console.sh
💤 Files with no reviewable changes (1)
  • src/images/argo-icon.scss

Comment thread package.json
"@openshift-console/dynamic-plugin-sdk": "^4.19.1",
"@openshift-console/dynamic-plugin-sdk-internal": "^4.19.1",
"@openshift-console/dynamic-plugin-sdk-webpack": "^4.19.1",
"@jest/types": "^30.4.1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

ast-grep outline jest.config.ts --items all
sed -n '1,220p' jest.config.ts
rg -n -C 2 '"`@jest/types`"|"jest"|"jest-environment-jsdom"|"ts-jest"' package.json pnpm-lock.yaml

Repository: redhat-developer/gitops-console-plugin

Length of output: 2892


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '--- package.json ---'
cat -n package.json | sed -n '20,85p'

printf '%s\n' '--- lockfile entries ---'
rg -n -C 5 '(^|[[:space:]])(`@jest/types`|jest@|jest-environment-jsdom@|ts-jest@)|/@jest/types@|/jest@|/jest-environment-jsdom@|/ts-jest@' pnpm-lock.yaml | head -n 240

printf '%s\n' '--- all Jest-related package declarations ---'
rg -n 'jest|`@jest`' package.json pnpm-lock.yaml jest.config.ts

Repository: redhat-developer/gitops-console-plugin

Length of output: 23120


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

for version in 29.6.3 30.4.1; do
  curl -fsSL "https://registry.npmjs.org/@jest/types/-/types-${version}.tgz" \
    -o "$tmpdir/types-${version}.tgz"
  mkdir "$tmpdir/$version"
  tar -xzf "$tmpdir/types-${version}.tgz" -C "$tmpdir/$version"
done

printf '%s\n' '--- Config declarations ---'
rg -n -A 180 -B 5 'namespace Config|interface InitialOptions|type InitialOptions' \
  "$tmpdir/29.6.3/package/build/index.d.ts" \
  "$tmpdir/30.4.1/package/build/index.d.ts"

printf '%s\n' '--- declaration diff ---'
diff -u \
  "$tmpdir/29.6.3/package/build/index.d.ts" \
  "$tmpdir/30.4.1/package/build/index.d.ts" \
  | sed -n '1,260p' || true

Repository: redhat-developer/gitops-console-plugin

Length of output: 50394


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

for version in 29.6.3 30.4.1; do
  curl -fsSL "https://registry.npmjs.org/@jest/types/-/types-${version}.tgz" \
    -o "$tmpdir/types-${version}.tgz"
  mkdir "$tmpdir/$version"
  tar -xzf "$tmpdir/types-${version}.tgz" -C "$tmpdir/$version"
done

for version in 29.6.3 30.4.1; do
  file="$tmpdir/$version/package/build/index.d.ts"
  printf '\n--- `@jest/types` %s InitialOptions ---\n' "$version"
  start="$(rg -n '^declare type InitialOptions = Partial<\{' "$file" | cut -d: -f1)"
  end="$(tail -n +"$start" "$file" | rg -n '^}>;' | head -n 1 | cut -d: -f1)"
  sed -n "${start},$((start + end - 1))p" "$file" \
    | rg '^[[:space:]]+[A-Za-z][A-Za-z0-9]*\??:'
done

printf '\n--- fields used by jest.config.ts ---\n'
rg -n 'preset|testEnvironment|testRegex|moduleNameMapper|testPathIgnorePatterns|collectCoverageFrom' \
  "$tmpdir/29.6.3/package/build/index.d.ts" \
  "$tmpdir/30.4.1/package/build/index.d.ts"

Repository: redhat-developer/gitops-console-plugin

Length of output: 3320


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

for version in 29.6.3 30.4.1; do
  curl -fsSL "https://registry.npmjs.org/@jest/types/-/types-${version}.tgz" \
    -o "$tmpdir/types-${version}.tgz"
  mkdir "$tmpdir/$version"
  tar -xzf "$tmpdir/types-${version}.tgz" -C "$tmpdir/$version"
done

for version in 29.6.3 30.4.1; do
  file="$tmpdir/$version/package/build/index.d.ts"
  printf '\n--- `@jest/types` %s InitialOptions references ---\n' "$version"
  rg -n -A 120 -B 8 'InitialOptions' "$file" | head -n 170
done

Repository: redhat-developer/gitops-console-plugin

Length of output: 10574


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

for package_version in '`@jest/schemas`@30.4.1' '`@jest/schemas`@29.6.3'; do
  package="${package_version%@*}"
  version="${package_version#*@}"
  encoded_package="${package//@/%40}"
  curl -fsSL "https://registry.npmjs.org/${encoded_package}/-/${package##*/}-${version}.tgz" \
    -o "$tmpdir/${package##*/}-${version}.tgz"
  mkdir "$tmpdir/${package##*/}-${version}"
  tar -xzf "$tmpdir/${package##*/}-${version}.tgz" \
    -C "$tmpdir/${package##*/}-${version}"
done

for version in 29.6.3 30.4.1; do
  file="$tmpdir/schemas-$version/package/build/index.d.ts"
  printf '\n--- `@jest/schemas` %s InitialOptions ---\n' "$version"
  rg -n -A 140 -B 5 'InitialOptions' "$file" | head -n 180
done

Repository: redhat-developer/gitops-console-plugin

Length of output: 227


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

for version in 29.6.3 30.4.1; do
  metadata="$(curl -fsSL 'https://registry.npmjs.org/%40jest%2Fschemas')"
  tarball="$(printf '%s' "$metadata" | jq -r --arg v "$version" '.versions[$v].dist.tarball')"
  test "$tarball" != "null"
  curl -fsSL "$tarball" -o "$tmpdir/schemas-$version.tgz"
  mkdir "$tmpdir/schemas-$version"
  tar -xzf "$tmpdir/schemas-$version.tgz" -C "$tmpdir/schemas-$version"
done

for version in 29.6.3 30.4.1; do
  file="$tmpdir/schemas-$version/package/build/index.d.ts"
  printf '\n--- `@jest/schemas` %s InitialOptions ---\n' "$version"
  rg -n -A 140 -B 5 'InitialOptions' "$file" | head -n 180
done

Repository: redhat-developer/gitops-console-plugin

Length of output: 221


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

metadata="$(curl -fsSL 'https://registry.npmjs.org/%40jest%2Fschemas%2F30.4.1')"
tarball="$(printf '%s' "$metadata" | jq -r '.dist.tarball')"
curl -fsSL "$tarball" -o "$tmpdir/schemas.tgz"
mkdir "$tmpdir/schemas"
tar -xzf "$tmpdir/schemas.tgz" -C "$tmpdir/schemas"

printf '%s\n' '--- package contents ---'
find "$tmpdir/schemas/package" -maxdepth 3 -type f -print

printf '%s\n' '--- InitialOptions definitions and references ---'
rg -n -A 120 -B 8 'InitialOptions|testRegex|moduleNameMapper|testPathIgnorePatterns|collectCoverageFrom|preset' \
  "$tmpdir/schemas/package" || true

Repository: redhat-developer/gitops-console-plugin

Length of output: 227


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

metadata="$(curl -fsSL 'https://registry.npmjs.org/%40jest%2Fschemas')"
printf '%s' "$metadata" | jq -r '.versions["30.4.1"].dist.tarball'
tarball="$(printf '%s' "$metadata" | jq -r '.versions["30.4.1"].dist.tarball')"
test "$tarball" != "null"
curl -fsSL "$tarball" -o "$tmpdir/schemas.tgz"
mkdir "$tmpdir/schemas"
tar -xzf "$tmpdir/schemas.tgz" -C "$tmpdir/schemas"

printf '%s\n' '--- package contents ---'
find "$tmpdir/schemas/package" -maxdepth 3 -type f -print

printf '%s\n' '--- relevant declarations ---'
rg -n -A 120 -B 8 'InitialOptions|testRegex|moduleNameMapper|testPathIgnorePatterns|collectCoverageFrom|preset' \
  "$tmpdir/schemas/package" || true

Repository: redhat-developer/gitops-console-plugin

Length of output: 50394


Align @jest/types with Jest 29.

The Jest runtime resolves @jest/types 29.6.3, but the direct dependency resolves 30.4.1. Use the Jest 29 major, or upgrade the complete Jest stack together.

🤖 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 `@package.json` at line 24, Update the direct `@jest/types` dependency in
package.json from the Jest 30 range to a Jest 29-compatible version, preferably
matching the runtime-resolved 29.6.3 release. Keep the Jest dependency stack on
the same major version rather than upgrading only `@jest/types`.

Source: Path instructions

Comment thread package.json
Comment on lines 46 to 47
"@typescript-eslint/eslint-plugin": "^5.15.0",
"@typescript-eslint/parser": "^5.15.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

npm view '`@typescript-eslint/parser`@5.15.0' peerDependencies --json
npm view '`@typescript-eslint/eslint-plugin`@5.15.0' peerDependencies --json
rg -n -C 2 '"typescript"|"`@typescript-eslint/`(parser|eslint-plugin)"' package.json pnpm-lock.yaml

Repository: redhat-developer/gitops-console-plugin

Length of output: 1826


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

printf '%s\n' '--- package.json ---'
cat -n package.json | sed -n '35,90p'

printf '%s\n' '--- lockfile entries ---'
rg -n -C 5 '`@typescript-eslint/`(eslint-plugin|parser)|typescript@|typescript:' pnpm-lock.yaml | head -n 220

printf '%s\n' '--- package metadata ---'
npm view '`@typescript-eslint/parser`@5.15.0' version dependencies peerDependencies engines --json
npm view '`@typescript-eslint/typescript-estree`@5.15.0' version dependencies peerDependencies engines --json
npm view '`@typescript-eslint/parser`@5.15.0' dist.tarball --json

Repository: redhat-developer/gitops-console-plugin

Length of output: 11768


🌐 Web query:

@typescript-eslint/typescript-estree 5.62.0 supported TypeScript versions

💡 Result:

The @typescript-eslint/typescript-estree package does not strictly enforce supported TypeScript versions through fixed dependencies [1]. Instead, it utilizes an open peerDependency requirement to allow users to experiment with newer or beta versions of TypeScript [2][3][4]. For version 5.62.0, released in July 2023, the tooling was designed to be compatible with TypeScript versions available at that time, generally following the project's policy of supporting TypeScript versions less than 2 years old [5]. While the package may technically function with a wide range of TypeScript versions, users are advised that official support is focused on stable, recent releases [5]. If you use an unsupported version of TypeScript, the parser will typically log a warning to the console, which can be configured via the onUnsupportedTypeScriptVersion option in your parserOptions [5][2].

Citations:


Use a TypeScript ESLint version that supports TypeScript 5.9.

The lockfile resolves both TypeScript ESLint packages to 5.62.0. This version predates TypeScript 5.9 and does not officially support it. Upgrade both packages together, or use a supported TypeScript version.

🤖 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 `@package.json` around lines 46 - 47, Update the
`@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` dependency
declarations together to versions that officially support TypeScript 5.9, and
regenerate the lockfile so both packages resolve consistently to the supported
version.

Source: Path instructions

</div>
)}
{summary.info > 0 && (
<div className={summary.error > 0 || summary.warning > 0 ? 'pf-v6u-pl-sm' : ''}>

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
file="src/gitops/components/application/Conditions/ConditionsPopover.tsx"
! rg -n '\bpf-v6u-pl-sm\b' "$file"
rg -n '\bpf-v5-u-pl-sm\b' "$file"

Repository: redhat-developer/gitops-console-plugin

Length of output: 342


🏁 Script executed:

#!/bin/bash
set -euo pipefail

file="src/gitops/components/application/Conditions/ConditionsPopover.tsx"

printf '%s\n' '--- target context ---'
sed -n '45,75p' "$file"

printf '%s\n' '--- utility-class references ---'
rg -n --glob '!node_modules' --glob '!dist' --glob '!build' \
  '\bpf-(v5-u-pl-sm|v6u-pl-sm)\b' .

printf '%s\n' '--- PatternFly package and stylesheet references ---'
rg -n --glob 'package.json' --glob 'package-lock.json' --glob 'yarn.lock' --glob 'pnpm-lock.yaml' \
  'patternfly|`@patternfly`' .
rg -n --glob '!node_modules' --glob '!dist' --glob '!build' \
  'pf-v5-u-pl-sm|pf-v6u-pl-sm|patternfly.*css|patternfly.*scss' .

Repository: redhat-developer/gitops-console-plugin

Length of output: 8556


Use the PatternFly 5 padding utility.

When an info condition appears with an error or warning, replace pf-v6u-pl-sm with pf-v5-u-pl-sm.

🤖 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 `@src/gitops/components/application/Conditions/ConditionsPopover.tsx` at line
66, Update the className conditional in ConditionsPopover to use the PatternFly
5 utility `pf-v5-u-pl-sm` instead of `pf-v6u-pl-sm` when summary.error or
summary.warning is greater than zero.

Source: Path instructions

Comment on lines +27 to 32
--pf-v5-c-table--cell--MaxWidth: none;
--pf-v5-c-table--m-truncate--cell--MaxWidth: none;
--pf-v5-c-table--cell--Overflow: visible;
--pf-v5-c-table--cell--TextOverflow: clip;
--pf-v5-c-table--cell--WhiteSpace: nowrap;
max-width: none !important;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add the required blank line before max-width.

Stylelint reports Line 32 because no empty line separates the PatternFly 5 custom properties from the regular declarations. Add the blank line so the declaration-empty-line-before check passes.

Proposed fix
   --pf-v5-c-table--cell--WhiteSpace: nowrap;
+
   max-width: none !important;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
--pf-v5-c-table--cell--MaxWidth: none;
--pf-v5-c-table--m-truncate--cell--MaxWidth: none;
--pf-v5-c-table--cell--Overflow: visible;
--pf-v5-c-table--cell--TextOverflow: clip;
--pf-v5-c-table--cell--WhiteSpace: nowrap;
max-width: none !important;
--pf-v5-c-table--cell--MaxWidth: none;
--pf-v5-c-table--m-truncate--cell--MaxWidth: none;
--pf-v5-c-table--cell--Overflow: visible;
--pf-v5-c-table--cell--TextOverflow: clip;
--pf-v5-c-table--cell--WhiteSpace: nowrap;
max-width: none !important;
🧰 Tools
🪛 Stylelint (17.14.0)

[error] 32-32: Expected empty line before declaration (declaration-empty-line-before)

(declaration-empty-line-before)

🤖 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 `@src/gitops/components/project/project-list.scss` around lines 27 - 32, Insert
a blank line between the PatternFly custom properties and the regular max-width
declaration in the table cell style block, preserving all existing declarations
and values.

Source: Linters/SAST tools

Comment on lines +7 to +8
var(--pf-v5-global--FontSize--md) * var(--pf-v5-global--LineHeight--md) +
var(--pf-v5-global--spacer--form-element) * 2

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Fix the Stylelint error in the calc expression.

Stylelint reports operator-no-newline-after because the expression breaks immediately after +. Keep the second operand on the same line or move + to the next line.

Suggested fix
 $co-button-height: calc(
-  var(--pf-v5-global--FontSize--md) * var(--pf-v5-global--LineHeight--md) +
-    var(--pf-v5-global--spacer--form-element) * 2
+  var(--pf-v5-global--FontSize--md) * var(--pf-v5-global--LineHeight--md) + var(--pf-v5-global--spacer--form-element) * 2
 );
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
var(--pf-v5-global--FontSize--md) * var(--pf-v5-global--LineHeight--md) +
var(--pf-v5-global--spacer--form-element) * 2
var(--pf-v5-global--FontSize--md) * var(--pf-v5-global--LineHeight--md) + var(--pf-v5-global--spacer--form-element) * 2
🧰 Tools
🪛 Stylelint (17.14.0)

[error] 7-7: Unexpected newline after "+" (scss/operator-no-newline-after)

(scss/operator-no-newline-after)

🤖 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 `@src/gitops/components/shared/DetailsPageHeader/details-page-header.scss`
around lines 7 - 8, Update the calc expression in the details page header styles
so the line break does not occur immediately after the + operator; keep the
second operand on the same line or move the operator to the next line while
preserving the calculation.

Source: Linters/SAST tools

@keithchong
keithchong force-pushed the patternfly-5 branch 2 times, most recently from d7ce267 to 32fdca6 Compare August 12, 2026 17:56
@codecov-commenter

codecov-commenter commented Aug 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 27.65957% with 34 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (release-4.18@89bc2b8). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...itops/components/project/ProjectSyncWindowsTab.tsx 0.00% 7 Missing ⚠️
...rc/gitops/components/shared/ApplicationSetList.tsx 0.00% 4 Missing ⚠️
...omponents/appset/graph/ApplicationSetGraphView.tsx 0.00% 3 Missing ⚠️
...components/application/ApplicationResourcesTab.tsx 0.00% 2 Missing ⚠️
...itops/components/imageupdater/ImageUpdaterList.tsx 0.00% 2 Missing ⚠️
src/gitops/components/project/DestinationsList.tsx 0.00% 2 Missing ⚠️
src/gitops/components/project/ProjectList.tsx 0.00% 2 Missing ⚠️
...itops/components/project/ResourceAllowDenyList.tsx 0.00% 2 Missing ⚠️
...omponents/shared/FavoriteButton/FavoriteButton.tsx 0.00% 2 Missing ⚠️
...nents/application/Conditions/ConditionsPopover.tsx 0.00% 1 Missing ⚠️
... and 7 more
Additional details and impacted files
@@               Coverage Diff               @@
##             release-4.18     #262   +/-   ##
===============================================
  Coverage                ?   11.30%           
===============================================
  Files                   ?      169           
  Lines                   ?     6679           
  Branches                ?     2234           
===============================================
  Hits                    ?      755           
  Misses                  ?     5923           
  Partials                ?        1           
Flag Coverage Δ
unit-tests 11.30% <27.65%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@keithchong
keithchong force-pushed the patternfly-5 branch 4 times, most recently from 04e4c25 to 8160d28 Compare August 12, 2026 21:23
Signed-off-by: Keith Chong <kykchong@redhat.com>
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