Fix-mode `--json` reports a `sha-as-ref` warning for a ref the same run just rewrote to a tag
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Start by tracing how --json=valid,findings gathers sha-as-ref findings and how the default fix run rewrites workflow uses: lines; the issue does not name implementation files or tests. Reproduce with the supplied workflow and compare the first run's JSON findings with the rewritten line and terminal summary. Done when the first run's JSON no longer reports a warning for the SHA it replaced; linked pull request #277 is already open.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happened
A default fix run that rewrites uses: owner/repo@<sha> # vX.Y.Z to uses: owner/[email protected] still emits a sha-as-ref warning in its --json output, keyed by the SHA that is no longer in the workflow.
The remediation says "pin to a tag instead", which is what the run just did. A second run reports nothing. The terminal summary of the same run shows no warning.
Steps to reproduce
mkdir repro && cd repro && git init -q
mkdir -p .github/workflows
cat > .github/workflows/ci.yml <<'EOF'
name: ci
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
EOF
gh actions-lock --no-interactive --json=valid,findings 2>/dev/null
First run output (workflow now reads uses: actions/[email protected]):
{
"cli_version": "v0.4.1",
"findings": [
{
"workflow": ".github/workflows/ci.yml",
"category": "sha-as-ref",
"severity": "warning",
"confidence": "high",
"dependency": "actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1",
"detail": "pinned to a bare SHA without a symbolic ref — weakens supply-chain traceability",
"remediation": "pin to a tag instead: https://github.com/actions/checkout/releases",
"doc_url": "https://github.com/github/gh-actions-lock/blob/main/docs/troubleshooting.md#sha-as-ref"
}
],
"lockfile_version": "v0.0.3",
"valid": true
}
Second run of the same command: "findings": [].
Same first run without --json prints only the pin summary, no warning:
Scanning 1 workflow
Planning pins
Pinned 1 action across 1 workflow
actions/[email protected] (3d3c42e)
└─ .github/workflows/ci.yml
With --no-narrow the workflow is left as written and the warning is accurate, so this only affects the default rewrite path.
Expected
Post-fix JSON should not carry a warning whose subject the write removed. Either drop warnings the fix resolved, or re-evaluate sha-as-ref against the rewritten uses: lines.
Environment
- gh-actions-lock v0.4.1 (
gh extension install github/gh-actions-lock --pin v0.4.1), lockfile schema v0.0.3 - gh 2.x on macOS 26 (arm64), github.com
- Ngôn ngữ chính
- Go
- Star
- 317
- Fork
- 24
- Merge trung bình
- 1 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 50
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của github/gh-actions-lock
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
github/gh-actions-lock#271 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 38/100
github/gh-actions-lock#284 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 56/100
github/gh-actions-lock#281 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
github/gh-actions-lock#280 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
github/gh-actions-lock#279 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của github/gh-actions-lock
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
prime-radiant-inc/evener#6325 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
team:library-maintainers
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
padok-team/burrito#1208 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
bazel-contrib/rules_go#4784 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
betterleaks/betterleaks#484 ·
Maintainer thường phản hồi trong vòng 1 ngày