Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 6 additions & 8 deletions .github/workflows/claude-wif-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@ jobs:
github.event_name == 'workflow_dispatch' ||
(github.event.issue.pull_request &&
contains(github.event.comment.body, '/test-wif') &&
github.event.comment.author_association == 'MEMBER' ||
github.event.comment.author_association == 'OWNER')
(github.event.comment.author_association == 'MEMBER' ||
github.event.comment.author_association == 'OWNER' ||
github.event.comment.author_association == 'COLLABORATOR'))
runs-on: arc-runner-set
container:
image: quay.io/rh_ee_brcox/hypershift:ai-helpers-arm64
Comment on lines +22 to +23

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

curl -fsSL "https://quay.io/api/v1/repository/rh_ee_brcox/hypershift/tag/?onlyActiveTags=true&specificTag=ai-helpers-arm64" \
| jq -r '.tags[] | select(.name=="ai-helpers-arm64") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

curl -fsSL "https://quay.io/api/v1/repository/rh_ee_brcox/hypershift/tag/?onlyActiveTags=true&specificTag=ai-helpers-arm64" \
| jq -r '.tags[] | select(.name=="ai-helpers-arm64") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

#!/bin/bash
set -euo pipefail

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


🏁 Script executed:

repo="rh_ee_brcox/hypershift"
tag="ai-helpers-arm64"

curl -fsSL "https://quay.io/api/v1/repository/${repo}/tag/?onlyActiveTags=true&specificTag=${tag}" \
  | jq -r '.tags[] | select(.name=="'"$tag"'") | .manifest_digest'

Repository: openshift/hypershift

Length of output: 136


Pin the WIF test job container image to an immutable digest

.github/workflows/claude-wif-test.yaml line 23 uses a mutable tag (quay.io/rh_ee_brcox/hypershift:ai-helpers-arm64), which can silently drift. Pin it to quay.io/rh_ee_brcox/hypershift@sha256:3bb04d71e4ccec762db43d6ee8a0789f22638e53561a278fd5bccf1b60a88189.

Proposed change
     container:
-      image: quay.io/rh_ee_brcox/hypershift:ai-helpers-arm64
+      image: quay.io/rh_ee_brcox/hypershift@sha256:3bb04d71e4ccec762db43d6ee8a0789f22638e53561a278fd5bccf1b60a88189 # ai-helpers-arm64
📝 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
container:
image: quay.io/rh_ee_brcox/hypershift:ai-helpers-arm64
container:
image: quay.io/rh_ee_brcox/hypershift@sha256:3bb04d71e4ccec762db43d6ee8a0789f22638e53561a278fd5bccf1b60a88189 # ai-helpers-arm64
🤖 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 @.github/workflows/claude-wif-test.yaml around lines 22 - 23, Replace the
mutable container image tag used in the WIF test job with the provided immutable
digest: update the container.image value that currently references
quay.io/rh_ee_brcox/hypershift:ai-helpers-arm64 to
quay.io/rh_ee_brcox/hypershift@sha256:3bb04d71e4ccec762db43d6ee8a0789f22638e53561a278fd5bccf1b60a88189
so the job uses a pinned, immutable image; ensure the change is applied to the
container.image field in the workflow definition where the image is declared.

timeout-minutes: 10
steps:
- name: Get PR ref
Expand All @@ -36,11 +39,6 @@ jobs:
repository: ${{ steps.pr.outputs.repo || github.repository }}
persist-credentials: false

- name: Install Claude Code
run: |
curl -fsSL https://claude.ai/install.sh | bash
echo "$HOME/.local/bin" >> $GITHUB_PATH

- name: Authenticate to GCP via WIF
uses: google-github-actions/auth@c200f3691d83b41bf9bbd8638997a462592937ed # v2
with:
Expand All @@ -55,4 +53,4 @@ jobs:
ANTHROPIC_VERTEX_PROJECT_ID: hosted-control-planes
run: |
claude --version
claude -p "Say hello in one sentence" --max-turns 1
claude -p "/hello-world:echo HyperShift" --max-turns 1