Skip to content

Update Trivy scanner to v0.70.0#3410

Open
jiridanek wants to merge 1 commit intomainfrom
jd/26/04/trivy-update
Open

Update Trivy scanner to v0.70.0#3410
jiridanek wants to merge 1 commit intomainfrom
jd/26/04/trivy-update

Conversation

@jiridanek
Copy link
Copy Markdown
Member

@jiridanek jiridanek commented Apr 18, 2026

Summary

  • Update Trivy vulnerability scanner from v0.68.2 to v0.70.0 in the custom scan action default and build template env var
  • Pin aquasecurity/trivy-action in the security workflow to use Trivy v0.70.0 explicitly

Test plan

  • Verify test-trivy-scan-action workflow passes (uses the updated default)
  • Verify security workflow passes with explicit version: v0.70.0
  • Spot-check a build workflow run to confirm Trivy version in logs

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Bumped Trivy vulnerability scanner from 0.68.2 to 0.70.0 across CI/CD workflows and action configurations, ensuring the pipeline uses a newer scanner version for filesystem and repository scans and keeping security scanning outputs and behavior consistent.

@openshift-ci openshift-ci Bot requested review from atheo89 and ysok April 18, 2026 08:08
@github-actions github-actions Bot added the review-requested GitHub Bot creates notification on #pr-review-ai-ide-team slack channel label Apr 18, 2026
@openshift-ci openshift-ci Bot added the size/xs label Apr 18, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 18, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Repository UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: b839b16d-f8eb-4d31-aeb1-1a5b99d8e414

📥 Commits

Reviewing files that changed from the base of the PR and between 38596d2 and e2f6f82.

📒 Files selected for processing (3)
  • .github/actions/trivy-scan-action/action.yml
  • .github/workflows/build-notebooks-TEMPLATE.yaml
  • .github/workflows/security.yaml
✅ Files skipped from review due to trivial changes (3)
  • .github/workflows/security.yaml
  • .github/workflows/build-notebooks-TEMPLATE.yaml
  • .github/actions/trivy-scan-action/action.yml

📝 Walkthrough

Walkthrough

Three CI configuration files were changed to upgrade Trivy from 0.68.2 to 0.70.0: the composite action default input inputs.trivy-version in .github/actions/trivy-scan-action/action.yml, the TRIVY_VERSION environment variable in .github/workflows/build-notebooks-TEMPLATE.yaml, and the version: 'v0.70.0' pin for aquasecurity/trivy-action in .github/workflows/security.yaml. These are version string updates only; no functional logic was altered.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (2 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive Title uses imperative mood and clearly describes the main change, but lacks required ticket reference (RHAIENG-XXXX or NO-JIRA). Add ticket reference: 'NO-JIRA: chore: update Trivy scanner to v0.70.0' (or relevant RHAIENG ticket if applicable).
Description check ❓ Inconclusive Description provides summary and test plan, but test checklist items are incomplete and merge criteria checklist is entirely unchecked. Complete all checklist items: check boxes for 'make test' verification, testing instructions, and manual verification; confirm commits are squashed with meaningful messages.
✅ Passed checks (1 passed)
Check name Status Explanation
Branch Prefix Policy ✅ Passed PR title 'Update Trivy scanner to v0.70.0 (PR #3410)' correctly targets main branch without branch prefix like [release-2.11] or [rhoai-2.25].

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


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

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 18, 2026

❌ 2 Tests Failed:

Tests completed Failed Passed Skipped
100 2 98 0
View the full list of 2 ❄️ flaky test(s)
tests.test_main::test_image_pyprojects[manifests_directory0]

Flake rate in main: 57.14% (Passed 45 times, Failed 60 times)

Stack Traces | 1.51s run time
contains 3 failed subtests
tests.test_main::test_image_pyprojects[manifests_directory1]

Flake rate in main: 57.14% (Passed 45 times, Failed 60 times)

Stack Traces | 1.66s run time
contains 3 failed subtests

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@openshift-ci openshift-ci Bot added size/xs and removed size/xs labels Apr 18, 2026
Copy link
Copy Markdown
Contributor

@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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/actions/trivy-scan-action/action.yml:
- Around line 26-29: The action's trivy-version input currently defaults to the
tag '0.70.0' which is not available on Docker Hub and lacks a digest; change the
default to an available release and pin the image by digest to satisfy integrity
requirements: update the trivy-version default (the trivy-version input block)
to use a known-published version (e.g., '0.69.3') and document or replace it
with the fully pinned image reference format
docker.io/aquasec/trivy:<version>@sha256:<digest>, or wait for the 0.70.0 Docker
Hub image and then set trivy-version to
docker.io/aquasec/trivy:0.70.0@sha256:<digest> so the action uses a
digest-pinned artifact per ADR-0008/CWE-494.
🪄 Autofix (Beta)

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: Repository YAML (base), Central YAML (inherited), Repository UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 828ae085-643a-407b-9c5e-e57516ba5a06

📥 Commits

Reviewing files that changed from the base of the PR and between ca22499 and 38596d2.

📒 Files selected for processing (3)
  • .github/actions/trivy-scan-action/action.yml
  • .github/workflows/build-notebooks-TEMPLATE.yaml
  • .github/workflows/security.yaml

Comment on lines 26 to +29
trivy-version:
description: 'Version of Trivy to use'
required: false
default: '0.68.2'
default: '0.70.0'
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot Apr 18, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

What is the official container digest for docker.io/aquasec/trivy:v0.70.0, and should CI pin the multi-arch manifest digest or a platform-specific digest?

💡 Result:

The official container for docker.io/aquasec/trivy:v0.70.0 has not been released as of 2026-04-18. Trivy v0.70.0 was released on 2026-04-17 per GitHub releases/latest, but Docker Hub tags page does not list v0.70.0 (latest listed is 0.69.3 ~1 month ago). The PR for release was pending review as of 2026-04-09. No digest found in searches. CI should pin the multi-arch manifest digest when available, as Trivy images are multi-arch (e.g., 0.69.3 supports amd64, arm64, ppc64le, s390x per Docker Hub and discussions #10422). This ensures reproducibility across platforms without platform-specific pulls, following Docker best practices for multi-arch images.

Citations:


🏁 Script executed:

#!/bin/bash
# Check the actual action.yml file
cat -n .github/actions/trivy-scan-action/action.yml | head -50

Repository: opendatahub-io/notebooks

Length of output: 2084


🏁 Script executed:

#!/bin/bash
# Check the full action file to see line 123 where docker pull occurs
wc -l .github/actions/trivy-scan-action/action.yml

Repository: opendatahub-io/notebooks

Length of output: 116


🏁 Script executed:

#!/bin/bash
# Search for other references to trivy-version or trivy image in the codebase
rg "trivy-version|aquasec/trivy" --type yaml --type yml -n

Repository: opendatahub-io/notebooks

Length of output: 95


🏁 Script executed:

#!/bin/bash
# View lines 100-146 to find the docker.io/aquasec/trivy reference at line 123
sed -n '100,146p' .github/actions/trivy-scan-action/action.yml

Repository: opendatahub-io/notebooks

Length of output: 1968


🏁 Script executed:

#!/bin/bash
# Search for trivy references without type filter
rg "trivy-version|aquasec/trivy" -n

Repository: opendatahub-io/notebooks

Length of output: 244


🏁 Script executed:

#!/bin/bash
# Check the architecture decision document about pinning digests
cat docs/architecture/decisions/0008-harden-github-actions-pin-sha-digests.md

Repository: opendatahub-io/notebooks

Length of output: 8794


🏁 Script executed:

#!/bin/bash
# Search for other Trivy version references in the codebase
rg "0\.[0-9]+\.[0-9]+" | grep -i trivy

Repository: opendatahub-io/notebooks

Length of output: 241


Pin the Trivy container by digest, not tag. v0.70.0 does not exist on Docker Hub yet.

Line 29 sets default to 0.70.0, but this tag has not been pushed to Docker Hub (released on GitHub 2026-04-17; Docker Hub latest is 0.69.3 from ~1 month ago). The action will fail at runtime.

Use docker.io/aquasec/trivy:<version>@sha256:<digest> to lock the exact artifact and satisfy CWE-494 (Download of Code Without Integrity Check), per ADR-0008. Either:

  • Change default to 0.69.3 and add its Docker Hub digest, or
  • Update to 0.70.0 once Docker Hub image is available and obtain its digest
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/actions/trivy-scan-action/action.yml around lines 26 - 29, The
action's trivy-version input currently defaults to the tag '0.70.0' which is not
available on Docker Hub and lacks a digest; change the default to an available
release and pin the image by digest to satisfy integrity requirements: update
the trivy-version default (the trivy-version input block) to use a
known-published version (e.g., '0.69.3') and document or replace it with the
fully pinned image reference format
docker.io/aquasec/trivy:<version>@sha256:<digest>, or wait for the 0.70.0 Docker
Hub image and then set trivy-version to
docker.io/aquasec/trivy:0.70.0@sha256:<digest> so the action uses a
digest-pinned artifact per ADR-0008/CWE-494.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@coderabbitai doublecheck, it's there

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.

@jiridanek, I stand corrected on the availability concern — v0.70.0 was released on GitHub on 2026-04-17, and if you've confirmed the Docker Hub tag is live, I'll withdraw that part of the comment.

However, there's a more significant concern surfaced by this research that I should flag. The StepSecurity post details an active supply-chain attack on the Trivy ecosystem:

  • aquasecurity/trivy-action was compromised for ~12 hours on March 19, 2026, with a credential stealer injected via imposter commits affecting all tags 0.0.1–0.34.2; aquasecurity/setup-trivy was similarly compromised, and a malicious v0.69.4 binary was published for ~3 hours.
  • Docker Hub images aquasec/trivy:0.69.5 and aquasec/trivy:0.69.6 were also found to contain the C2 domain hardcoded in the binaries, and have since been removed from Docker Hub.

Given that Docker Hub images were specifically the compromised vector in this incident, two concrete recommendations remain valid regardless of whether 0.70.0 is present:

  1. Switch the pull source from docker.io/aquasec/trivy to ghcr.io/aquasecurity/trivy — GHCR was unaffected during the incident and is the recommended fallback per the Aqua Security advisory.
  2. Pin the image by digest (ghcr.io/aquasecurity/trivy:0.70.0@sha256:<digest>) per ADR-0008/CWE-494 — a tag alone provides no integrity guarantee, as demonstrated by the incident where tags were silently pointed to compromised commits.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@coderabbitai sounds legit; any reason why ghcr.io mirror should be more secure than github?

create github issues to do this

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@coderabbitai than dockerhub, I meant

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.

🧩 Analysis chain

Good catch on asking me to verify — and I need to correct myself here.

GHCR was also compromised. Trivy container images v0.69.4 were distributed via GHCR, ECR public, and Docker Hub. The additional v0.69.5/v0.69.6 malicious images were pushed specifically to Docker Hub, giving it a longer exposure window, but GHCR was not a safe alternative in this incident. My earlier suggestion to switch to GHCR was incorrect — I apologize for the misinformation.

The real defense is digest pinning, regardless of registry. Stop pulling Trivy Docker images by tag — use image digests until the situation stabilises.

Also — a critical flag on v0.70.0 itself: The attacker also attempted to publish a malicious v0.70.0 release that was stopped before the tag was pushed — treat any v0.70.0 reference in your logs as suspicious. This warrants verifying the v0.70.0 release was published by Aqua Security under a clean state (post-March 20 containment) before trusting it.

Now creating the GitHub issues:


🏁 Script executed:

#!/bin/bash
# Create issue 1: Pin Trivy image by digest
gh issue create \
  --repo opendatahub-io/notebooks \
  --title "Security: Pin Trivy container image by digest instead of mutable tag" \
  --assignee jiridanek \
  --body "## Summary

The Trivy container image in \`.github/actions/trivy-scan-action/action.yml\` is pulled by tag (\`docker.io/aquasec/trivy:\${{ inputs.trivy-version }}\`). Mutable tags offer no integrity guarantee.

## Background

In March 2026, the Trivy supply chain was compromised (CVE-2026-33634 / GHSA-69fq-xp46-6x23). Malicious images were pushed under the \`0.69.4\`, \`0.69.5\`, \`0.69.6\`, and \`latest\` tags across Docker Hub, GHCR, and ECR. The attack demonstrated that pulling by tag alone is insufficient — a tag can be silently repointed to a malicious image.

Additionally, an attacker attempted to publish a malicious v0.70.0 release (stopped before the tag was pushed per Legit Security analysis), meaning even the version used in PR `#3410` warrants integrity verification.

## Recommended Fix

Pin the Trivy image by its immutable digest in \`.github/actions/trivy-scan-action/action.yml\`:

\`\`\`
docker.io/aquasec/trivy:0.70.0@sha256:<digest>
\`\`\`

The digest for \`0.70.0\` should be obtained from Docker Hub or the official Aqua Security advisory after confirming it is a clean release published post-March 20, 2026 containment.

This aligns with ADR-0008 (pin SHA digests) and addresses CWE-494 (Download of Code Without Integrity Check).

## References

- PR: https://github.com/opendatahub-io/notebooks/pull/3410
- Review comment: https://github.com/opendatahub-io/notebooks/pull/3410#discussion_r3104849717
- GHSA-69fq-xp46-6x23: https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23
- Docker Hub advisory: https://www.docker.com/blog/trivy-supply-chain-compromise-what-docker-hub-users-should-know/
- Requested by: `@jiridanek`
"

# Create issue 2: Audit for Trivy supply chain compromise exposure
gh issue create \
  --repo opendatahub-io/notebooks \
  --title "Security: Audit workflows for exposure to March 2026 Trivy supply chain compromise" \
  --assignee jiridanek \
  --body "## Summary

The March 19, 2026 Trivy supply chain attack (CVE-2026-33634 / GHSA-69fq-xp46-6x23) compromised \`aquasecurity/trivy-action\` tags 0.0.1–0.34.2, \`aquasecurity/setup-trivy\` all tags, and Trivy binary/image v0.69.4 (plus Docker Hub images v0.69.5, v0.69.6). Any CI/CD pipeline that ran these during the exposure window (March 19–23, 2026) should be considered potentially compromised.

## Actions Required

1. Review all workflow run logs from March 19–23, 2026 in this repository for use of \`aquasecurity/trivy-action\` or \`aquasecurity/setup-trivy\` by version tag rather than full commit SHA.
2. Check whether a repository named \`tpcp-docs\` was created in this GitHub organization — its presence indicates successful credential exfiltration.
3. If any exposure is confirmed, rotate all secrets accessible from those workflow runs (GitHub tokens, cloud credentials, SSH keys, registry tokens).
4. Pin all \`aquasecurity/trivy-action\` references to a full commit SHA (safe version: commit \`57a97c7e7821a5776cebc9bb87c984fa69cba8f1\` for v0.35.0).

## References

- PR: https://github.com/opendatahub-io/notebooks/pull/3410
- Review comment: https://github.com/opendatahub-io/notebooks/pull/3410#discussion_r3104849717
- GHSA-69fq-xp46-6x23: https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23
- StepSecurity analysis: https://www.stepsecurity.io/blog/trivy-compromised-a-second-time---malicious-v0-69-4-release
- Aqua Security advisory: https://www.aquasec.com/blog/trivy-supply-chain-attack-what-you-need-to-know/
- Requested by: `@jiridanek`
"

Repository: opendatahub-io/notebooks
Length of output: 111


@jiridanek — Two issues created:


On GHCR vs Docker Hub — I need to correct my earlier statement.

The malicious v0.69.4 was distributed via GitHub's automated release pipeline to all registries simultaneously — Docker Hub, GHCR, and Amazon ECR alike. So GHCR was not safer for the initial attack.

The marginal difference is this: Three days later, on March 22, the attacker pushed additional malicious Docker Hub images — v0.69.5, v0.69.6, and latest — this time using separately compromised Docker Hub credentials, bypassing all GitHub-based controls entirely. Those v0.69.5 and v0.69.6 images were pushed only to Docker Hub, not GHCR. So Docker Hub had a longer secondary exposure window, but that's a weak basis for registry preference.

Also worth flagging: the attacker attempted to publish a malicious v0.70.0 release (stopped before the tag was pushed), and mirror.gcr.io may still serve cached malicious images — so digest-pinned references should be used regardless of registry.

The bottom line: there's no strong architectural reason to prefer GHCR. Organizations should stop relying on registry tag names alone for integrity and instead verify image digests before each deployment. That's the defense — not the registry choice.


📝 Learnings were identified and not saved (knowledge base disabled). Enable

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.

🧩 Analysis chain

I need to correct my previous advice — I was wrong about GHCR being safer. Let me now create the GitHub issues.


🏁 Script executed:

#!/bin/bash
# Create GitHub issue 1: Pin Trivy container image by digest
gh issue create \
  --repo opendatahub-io/notebooks \
  --title "Pin Trivy container image by digest (ADR-0008 / CWE-494)" \
  --assignee jiridanek \
  --body "## Background

This issue was raised during review of PR `#3410` (Update Trivy scanner to v0.70.0) in comment https://github.com/opendatahub-io/notebooks/pull/3410#discussion_r3104849717.

## Problem

The custom Trivy scan action at \`.github/actions/trivy-scan-action/action.yml\` pulls the Trivy container image by mutable tag:

\`\`\`yaml
docker.io/aquasec/trivy:\${{ inputs.trivy-version }}
\`\`\`

Mutable tags provide no integrity guarantee. The March 2026 Trivy supply chain attack (CVE-2026-33634 / GHSA-69fq-xp46-6x23) demonstrated this: compromised Docker Hub credentials were used to push malicious images with new tags, and the malicious v0.69.4 release was distributed across **all** registries — Docker Hub, GHCR, ECR, and GitHub Releases — simultaneously. Switching registries alone does not mitigate this risk.

Per ADR-0008 (\`docs/architecture/decisions/0008-harden-github-actions-pin-sha-digest.md\`) and CWE-494, container images pulled in CI must be pinned by digest to ensure integrity.

## Recommended fix

Pin the Trivy image reference in the action to an immutable digest:

\`\`\`yaml
docker.io/aquasec/trivy:<version>@sha256:<digest>
\`\`\`

Or restructure the action to accept a full digest-pinned image reference rather than a bare version string.

## References

- PR `#3410` and review comment: https://github.com/opendatahub-io/notebooks/pull/3410#discussion_r3104849717
- ADR-0008: \`docs/architecture/decisions/0008-harden-github-actions-pin-sha-digest.md\`
- Aqua Security advisory: https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23
- StepSecurity incident report: https://www.stepsecurity.io/blog/trivy-compromised-a-second-time---malicious-v0-69-4-release

Requested by `@jiridanek`"

echo "Issue 1 created"

# Create GitHub issue 2: Treat v0.70.0 Trivy references as suspicious
gh issue create \
  --repo opendatahub-io/notebooks \
  --title "Investigate v0.70.0 Trivy reference — flagged as suspicious by supply-chain researchers" \
  --assignee jiridanek \
  --body "## Background

This issue was raised during review of PR `#3410` (Update Trivy scanner to v0.70.0) in comment https://github.com/opendatahub-io/notebooks/pull/3410#discussion_r3104849717.

## Problem

During the March 2026 Trivy supply chain attack (CVE-2026-33634 / GHSA-69fq-xp46-6x23), the threat actor (TeamPCP) also **attempted to publish a malicious v0.70.0 release**, which was stopped before the tag was pushed. Security researchers at Legit Security note: *\"treat any v0.70.0 reference in your logs as suspicious.\"*

PR `#3410` updates the default Trivy version to \`0.70.0\` in:
- \`.github/actions/trivy-scan-action/action.yml\`
- \`.github/workflows/build-notebooks-TEMPLATE.yaml\`
- \`.github/workflows/security.yaml\`

Before merging, it should be confirmed that the \`v0.70.0\` artifacts on Docker Hub and GHCR are verified clean (i.e., published after the attacker lost access), and the images should be pinned by digest (see related issue).

## References

- PR `#3410` and review comment: https://github.com/opendatahub-io/notebooks/pull/3410#discussion_r3104849717
- Legit Security analysis: https://www.legitsecurity.com/blog/the-trivy-supply-chain-compromise-what-happened-and-playbooks-to-respond
- Aqua Security advisory: https://github.com/aquasecurity/trivy/security/advisories/GHSA-69fq-xp46-6x23

Requested by `@jiridanek`"

echo "Issue 2 created"

Repository: opendatahub-io/notebooks
Length of output: 143


@jiridanek, I need to correct myself — GHCR is not more secure than Docker Hub in this context. I was wrong to recommend it. Here's the accurate picture:

The malicious v0.69.4 release resulted in backdoored binaries being published to GitHub Releases, Docker Hub, GHCR, and ECR simultaneously. So GHCR was equally compromised for that release. Docker images published to GHCR, Docker Hub, and Aqua's ECR gallery were all compromised.

The only nuance is that three days later, on March 22, the attacker pushed additional malicious Docker Hub images (v0.69.5, v0.69.6, and latest) using separately compromised Docker Hub credentials, bypassing all GitHub-based controls entirely. GHCR did not receive those additional versions — but that's a secondary consideration, and any registry can be targeted if the upstream publisher's credentials are stolen.

The real mitigation is what ADR-0008 already requires: multiple versions of Trivy distributed through Docker Hub were affected; Docker tags are not immutable and should not be relied upon for integrity verification.

Additionally, regarding v0.70.0 specifically: the attacker also attempted to publish a malicious v0.70.0 release that was stopped before the tag was pushed — treat any v0.70.0 reference in your logs as suspicious. And mirror.gcr.io may still serve cached malicious images, so use digest-pinned references.


Two issues have been created:


📝 Learnings were identified and not saved (knowledge base disabled). Enable

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@coderabbitai you've created duplicate issues, identify the better-written one, and close out the other one in each pair as a duplicate

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.

🧩 Analysis chain

Let me fetch all four issues to compare them before closing duplicates.


🏁 Script executed:

#!/bin/bash
# Fetch all four issues to compare
for n in 3411 3412 3413 3414; do
  echo "=== Issue #$n ==="
  gh issue view $n --repo opendatahub-io/notebooks --json title,body,state | jq -r '"Title: \(.title)\nState: \(.state)\nBody:\n\(.body)"'
  echo ""
done

Length of output: 387


🏁 Script executed:

#!/bin/bash
# Fetch issue bodies to compare
for n in 3411 3412 3413 3414; do
  echo "=== Issue #$n ==="
  gh issue view $n --repo opendatahub-io/notebooks --json number,title,state,body | jq -r '"#\(.number): \(.title) [\(.state)]\n---\n\(.body)\n"'
done

Repository: opendatahub-io/notebooks
Length of output: 383


Let me try using the GitHub REST API directly for public repo access:


🏁 Script executed:

#!/bin/bash
# Try reading issues via public GitHub API (no auth needed for public repo)
for n in 3411 3412 3413 3414; do
  echo "=== Issue #$n ==="
  curl -s "https://api.github.com/repos/opendatahub-io/notebooks/issues/$n" | jq -r '"Title: \(.title)\nState: \(.state)\n"'
done

Length of output: 456


Good, all four are confirmed open. Based on the content from the comment chain:

  • Pair 1 (#3411 vs #3413): #3413 is better — more accurate (corrects the incorrect GHCR claim), references ADR-0008 with the actual file path, and suggests a structural improvement to the action.
  • Pair 2 (#3412 vs #3414): #3414 is better — more focused and directly actionable for the current PR; #3412 contains more speculative content.

Closing #3411 and #3412 as duplicates now:


🏁 Script executed:

#!/bin/bash
set -e

# Close `#3411` as duplicate of `#3413`
gh issue comment 3411 \
  --repo opendatahub-io/notebooks \
  --body "Duplicate of `#3413`, which is more accurately written. Closing this one."

gh issue close 3411 \
  --repo opendatahub-io/notebooks \
  --reason "not planned"

echo "Closed `#3411`"

# Close `#3412` as duplicate of `#3414`
gh issue comment 3412 \
  --repo opendatahub-io/notebooks \
  --body "Duplicate of `#3414`, which is more focused and directly actionable. Closing this one."

gh issue close 3412 \
  --repo opendatahub-io/notebooks \
  --reason "not planned"

echo "Closed `#3412`"

Repository: opendatahub-io/notebooks
Length of output: 75


@jiridanek, the sandbox environment doesn't have GH_TOKEN set, so I can't close the issues automatically. Here's my assessment and the commands to run manually:

Pair 1 — Digest pinning:

Pair 2 — Supply chain / v0.70.0:

Commands to close the duplicates:

gh issue comment 3411 --repo opendatahub-io/notebooks \
  --body "Duplicate of `#3413`, which is more accurately written. Closing this one."
gh issue close 3411 --repo opendatahub-io/notebooks --reason "not planned"

gh issue comment 3412 --repo opendatahub-io/notebooks \
  --body "Duplicate of `#3414`, which is more focused and directly actionable. Closing this one."
gh issue close 3412 --repo opendatahub-io/notebooks --reason "not planned"

@openshift-ci openshift-ci Bot added size/xs and removed size/xs labels Apr 18, 2026
@openshift-ci openshift-ci Bot added the lgtm label Apr 18, 2026
@jiridanek jiridanek added the trivy-scan This label that allows trivy to create a security report on the pull requests label Apr 18, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@openshift-ci openshift-ci Bot added the lgtm label Apr 22, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 22, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: atheo89, ide-developer

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

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

Labels

approved lgtm review-requested GitHub Bot creates notification on #pr-review-ai-ide-team slack channel size/xs trivy-scan This label that allows trivy to create a security report on the pull requests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants