Skip to content

The action is pinned in the snippets, and the ref does not pin the tool - #106

Merged
arpanghoshal merged 1 commit into
mainfrom
docs/pin-the-action
Sep 6, 2026
Merged

arpanghoshal merged 1 commit into
mainfrom
docs/pin-the-action

Conversation

@arpanghoshal

Copy link
Copy Markdown
Member

Pre-tag work for 0.6.0, and a prerequisite for listing the action on the GitHub Marketplace.

Two things

1. The five published snippets said @main. test_repository_signals.py::test_every_action_is_pinned_to_a_commit holds every uses: in this repository's own workflows to a full commit SHA. The snippets this project hands to users named a branch — and three of the five followed that line with a sentence telling the reader to pin, which makes the inconsistency visible in a single screen. All five now name @v0.6.0.

2. The ref does not pin the tool, and nothing said so. install defaults to ctrlrun, unpinned. So CTRLRun/ctrlrun@v0.6.0 pins the workflow steps and installs whatever PyPI serves on the day the job runs. A reader who pins the action reasonably believes they pinned the thing being verified with, and they have not. At a 0.5 → 0.6 boundary that is a version nobody chose. The install input's own description says it now, and so does every page that shows the pin.

Files

  • README.md, docs/verify.md
  • docs/verify/get-the-badge.mdx, docs/cookbook/verify-in-github-actions.mdx, docs/guides/verify-in-ci.mdx
  • action.yml — the install input's description only

No behaviour change

action.yml's runs:, defaults, input names and output names are untouched, so test_T118_the_action_is_a_composite_action_at_the_repository_root is unaffected. Full suite green locally: 4112 passed, 45 skipped.

Ordering

@v0.6.0 names a tag that does not exist yet. That is deliberate and it is why this is pre-tag work: merge this, then tag v0.6.0 from a main that already contains it, so the tagged tree's docs point at the tag they ship in. Tagging first leaves 0.6.0 telling its readers to use @main.

…the tool

`test_repository_signals.py::test_every_action_is_pinned_to_a_commit` holds every
`uses:` in this repository's own workflows to a full commit SHA. The five snippets
this project publishes said `uses: CTRLRun/ctrlrun@main`, and three of them followed
that line with a sentence telling the reader to pin. Recommending less than what you
enforce on yourself is the shape a reader notices first, and a Marketplace listing
would put it in front of more of them.

All five now name `@v0.6.0`.

The second half is the defect the first half hides. `install` defaults to `ctrlrun`,
unpinned, so pinning the action ref pins the workflow steps and not the package they
install: `@v0.6.0` runs whatever PyPI serves on the day the job runs. Nothing said so
anywhere, and at a 0.5 -> 0.6 boundary that is a version somebody did not choose. The
input's own description says it now, and so does every page that shows the pin.

No behaviour changes: `action.yml`'s defaults, inputs and outputs are untouched.
@mintlify

mintlify Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
ctrlrun 🟢 Ready View Preview Sep 6, 2026, 10:37 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

@arpanghoshal
arpanghoshal merged commit 04e3275 into main Sep 6, 2026
11 checks passed
@arpanghoshal
arpanghoshal deleted the docs/pin-the-action branch September 6, 2026 22:44
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.

1 participant