Helper scripts
All scripts live under
.github/scripts/.
check-i18n-helper.sh
Validates that localization pages include the required default_lang_commit
front matter field. If pages are missing it, the script outputs a fix command:
npm run fix:i18n:new
pr-approval-labels.sh
Manages PR approval labels based on review state and file ownership. Called by
the pr-approval-labels workflow.
How it works:
- Fetches PR data (files changed, latest reviews, current labels) via
gh. - Resolves
docs-approversteam members from the GitHub org API. - Determines required SIG teams by matching changed files against
.github/component-owners.yml(parses YAML manually, noyqdependency). - Checks whether each required group has an approving review.
- Adds or removes labels using tri-state logic (
true/false/unknown) to avoid changing labels when team membership can’t be fetched.
Required env vars: REPO, PR, GITHUB_TOKEN.
update-registry-versions.sh
Auto-updates package versions in data/registry/*.yml by querying upstream
registries. Supports: npm, Packagist, RubyGems, Go, NuGet, Hex, Maven.
- In CI (
GITHUB_ACTIONSset): creates a branch and opens a PR. - Locally: runs in dry-run mode by default. Use
-fto force real execution.
Deduplicates PRs by generating a SHA-1 tag from the update summary.
When versions have changed, the script refreshes the link cache before
committing, since registry updates can add or remove external URLs. A transient
failure during that refresh can leave the bot PR with CACHE updates committed?
red even though links pass; comment /fix:link-cache on the PR to repair
it. If instead the update introduced a genuinely broken URL, the bot PR arrives
red on the link check itself; fix the URL rather than rerunning the cache fix.