Skip to content

ci: pin download-artifact v8.0.2 and assert SHA pinning by shape (supersedes #133) - #137

Merged
karlwaldman merged 1 commit into
mainfrom
chore/deps-vitest5-download-artifact
Oct 14, 2026
Merged

karlwaldman merged 1 commit into
mainfrom
chore/deps-vitest5-download-artifact

Conversation

@karlwaldman

Copy link
Copy Markdown
Member

Problem

Dependabot #133 (actions/download-artifact 8.0.1 -> 8.0.2) is red: tests/release-readiness.test.ts asserts the literal old SHA 3e5f45b2..., so any pin bump fails (run 38280809117, Node 24, 2026-10-12).

Change

  • Test now asserts both artifact actions in publish.yml are pinned to a 40-hex commit SHA and never to a @vN tag.
  • publish.yml takes the v8.0.2 SHA 9000827ccba6bdab643e8b6fd33ac0654aef8333 (verified: gh api repos/actions/download-artifact/git/ref/tags/v8.0.2).

Verification (local)

  • Red: old test + new SHA -> 1 failed (same failure as CI).
  • Green: new test + new SHA -> 5/5.
  • Negative: new test + download-artifact@v8 tag pin -> 1 failed.
  • Full suite: 917 passed, 1 skipped.

Not included: vitest 5 (#135/#136). vitest 5.0.3 requires Node ^22.12.0 || ^24 || >=26; the test matrix runs Node 20 and engines is >=18. The two Dependabot PRs also fail separately because each bumps half of a peer pair (ERESOLVE).

Expected effect: Dependabot artifact-action bumps stop failing the release-readiness test; #133 can be closed as superseded.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QQ7W3CkRKEnBpU5KRQUfUu

tests/release-readiness.test.ts hard-coded the exact download-artifact
SHA, so Dependabot's bump (#133) could never pass. Assert that both
artifact actions are pinned to a 40-hex commit SHA and never to a tag
instead, and take the v8.0.2 pin (9000827c, verified against the tag).

Supersedes #133.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QQ7W3CkRKEnBpU5KRQUfUu
@coderabbitai

coderabbitai Bot commented Oct 14, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2c73c26c-e5ea-41e2-b756-23ae8169a701
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@karlwaldman karlwaldman added the risk:elevated Elevated: auto-merges after an adversarial review APPROVE label Oct 14, 2026
@karlwaldman

Copy link
Copy Markdown
Member Author

Adversarial review: APPROVE (head 4a15100)

Pin check:

  • gh api repos/actions/download-artifact/git/ref/tags/v8.0.2 returns commit 9000827ccba6bdab643e8b6fd33ac0654aef8333, which matches both pins in publish.yml.
  • v8.0.1 returns 3e5f45b2…, the old pin. So this is the 8.0.1 → 8.0.2 bump, as the PR claims.

Test (local worktree):

  • tests/release-readiness.test.ts passes 5/5.
  • Mutation: replacing the download pin with download-artifact@v8 gives 1 failed / 4 passed. The new tag-pin guard bites.

actionlint: 2 SC2094 info notes at publish.yml:86. The same 2 notes are present on main. Nothing new.

CI: all green (Node 20/22/24, lint, ESM/CJS smoke, snippets, live contract).

Non-blocking:

  1. The # v8 comments could say # v8.0.2.
  2. toMatch asserts at least one 40-hex pin per action, not every occurrence. The @vN negative check covers the realistic regression.

@karlwaldman
karlwaldman merged commit 83086d7 into main Oct 14, 2026
8 checks passed
@karlwaldman
karlwaldman deleted the chore/deps-vitest5-download-artifact branch October 14, 2026 21:31
karlwaldman added a commit that referenced this pull request Oct 17, 2026
* chore(deps-dev): bump vitest from 4.1.11 to 5.0.3

Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.11 to 5.0.3.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v5.0.3/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 5.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore(deps-dev): bump the dev-dependencies group with 2 updates (#134)

Bumps the dev-dependencies group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 10.11.0 to 10.12.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](eslint/eslint@v10.11.0...v10.12.0)

Updates `typescript-eslint` from 8.71.0 to 8.71.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.71.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.12.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
- dependency-name: typescript-eslint
  dependency-version: 8.71.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci: pin download-artifact v8.0.2 and assert SHA pinning by shape (#137)

tests/release-readiness.test.ts hard-coded the exact download-artifact
SHA, so Dependabot's bump (#133) could never pass. Assert that both
artifact actions are pinned to a 40-hex commit SHA and never to a tag
instead, and take the v8.0.2 pin (9000827c, verified against the tag).

Supersedes #133.


Claude-Session: https://claude.ai/code/session_01QQ7W3CkRKEnBpU5KRQUfUu

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

* chore: upgrade Vitest and V8 coverage together

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: karlwaldman <karl.waldman@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:elevated Elevated: auto-merges after an adversarial review APPROVE

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant