Point documented tag references at a release that exists - #286
Merged
Conversation
The repository has been recreated twice and each recreation dropped the tags before it, but the guides did not move: the GitHub Actions, GitLab CI and Compose install pages pinned their copy-paste examples to v0.10.0, which no longer resolves. Following the quickstart failed to resolve the action; the include URL and curl install returned 404. The composite action's README pointed at trustedoss/scan-action, a repository that does not exist. Adds tools/release-refs, which derives the current release from CHANGELOG.md and checks every executable reference against it. It runs in lint (frontend) and in scripts/release.sh before a tag is pushed, so the values cannot drift again. Chart version, appVersion, image.tag and the README badge are pinned the same way; .env.example and the docker-compose fallback are listed as pending while other work holds those files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The repository has been recreated twice, and each recreation dropped the tags that came before it. Only
v0.20.0and later resolve today. The documentation did not move with them, so the CI-integration and installation guides still pinned their copy-paste examples tov0.10.0:uses: trustedoss/trusca/actions/scan@v0.10.0failed with "unable to resolve action", and the GitLabinclude: remote:URL, thecurlquick install andgit checkout v0.10.0all returned 404. Twenty-eight places in English and Korean, and they are the first thing an evaluator runs. The composite action's README and the workflow template pointed attrustedoss/scan-action, which is not a repository at all; both now name the in-repotrustedoss/trusca/actions/scanpath. The "pin to a commit" example used an invented six-character SHA and is now the real commitv0.22.4points at. All five previously-404 fetches return 200 on the rewritten URLs.Editing the values would fix today and nothing else, so
tools/release-refsderives the release from the newest## [X.Y.Z]section inCHANGELOG.mdand checks every reference against it. Tag-shaped refs into this repository are found by pattern, so a reference written later is covered the day it is written;main, a full commit SHA and an angle-bracket placeholder pass, and prose like "v0.10.0 removed Dependency-Track" deliberately does not match, because rewriting history would make the sentence false. Bare literals a pattern cannot tell from any other number are listed inpins.json: the chart version andappVersion, the chart'simage.tagdefault, the README badge, the Helm values table and its Korean mirror.--fixrewrites only the line a finding sits on, since a whole-file replace would also rewrite the same digits where they mean something else.The gate runs in
lint (frontend), a required check, and inscripts/release.shbefore the tag is created, so a release cannot be cut while the guides name the previous one. A selftest runs first, for the reason the license-header one does: a pattern that silently matches nothing reports clean. It carries the miss found while writing this change, where the URL pattern required a trailing slash and so never sawBASE=https://raw.githubusercontent.com/trustedoss/trusca/v0.10.0..env.example(IMAGE_TAG=0.22.0), thedocker-compose.ymlfallback (0.12.0, ten minors behind) and the Compose guide sentence that stated that default are listed underpendinginpins.jsonrather than fixed here, because PR #285 and two open worktrees hold those files. The linter prints them as a notice; moving each entry up intopinsis the whole of the follow-up. Verified locally:release-refslint and selftest,ko-style --all --fail-on S2(0 findings), em-dash on the staged diff,license-header --all,docs-uat extract --lint(0 errors),shellcheck --severity=warning,helm lint, and a fulldocs-siteproduction build.