Org-wide community-health repo for the vyos GitHub organisation. Hosts the canonical reusable GitHub Actions workflows (workflow_call) consumed by every vyos/* repo, plus PR-validation, doc-linter, typo-checker, and XML preprocessor scripts. Default branch is production; changes ship to all consumers immediately — no semver, no release process.
- GitHub Actions YAML (18 reusable
workflow_callworkflows + 1 regular workflow (cla-check.yml) under.github/workflows/). - Python helpers (
scripts/check-pr-conflicts.py,scripts/process-typos.py,.github/doc-linter.py,scripts/override-default,scripts/transclude-template). - Minimal Python deps in
scripts/requirements.txt(requests>=2.32.0,<3.0.0);lxmlis pulled by consumer repos for the XML preprocessors. - Shell helper (
scripts/check-typos.sh) wrapping thetyposCLI.
No build system, test suite, or lockfile. To exercise a workflow before merging, call it from a consumer repo pinned to a feature branch (uses: vyos/.github/.github/workflows/<name>.yml@<branch>). check-pr-merge-conflict.yml accepts an action-ref input for this.
pip install -r scripts/requirements.txt
GITHUB_TOKEN=... GITHUB_REPOSITORY=vyos/.github GITHUB_EVENT_NAME=schedule \
python scripts/check-pr-conflicts.py
python.github/doc-linter.py "['path/to/file.rst']"
python scripts/override-default <xml-dir>
python scripts/transclude-template <file.xml>
.github/workflows/— reusable workflows: staleness (check-stale), PR validation (check-pr-merge-conflict), linting (lint-doc,lint-j2,lint-with-ruff,lint-with-darker-ruff,check-unused-imports,check-typos), security (codeql-analysis), CLA (cla-check), package rebuilds (trigger-rebuild-repo-package,trigger-and-wait-rebuild-repo-package), mirror (pr-mirror-repo-sync). PR labeling, author-assign, title/commit-format, and base-branch conflict labeling moved to central Mergify rules invyos/mergify(T8937 retirement).check-pr-merge-conflictis preserved — it covers the committed-conflict-marker case (T8934) that Mergify'sconflictpredicate cannot..github/doc-linter.py— RST/TXT linter (RFC 5737/3849 IPs, ≤80-char lines,.. stop_vyoslintertoggles)..github/.typos.toml— defaulttyposconfig; excludessmoketest/**,mibs/**.scripts/— helpers (Python + shell).profile/README.md— rendered as thevyosorg landing page.CODEOWNERS,CONTRIBUTING.md,PRMirrorOnboarding.md.
This repo is the canonical workflow library for both orgs. Consumers reference workflows as uses: vyos/.github/.github/workflows/<name>.yml@production with no version pin. The mirror pipeline (pr-mirror-repo-sync.yml) is currently live for vyos-1x, vyos-build, vyos-utils, and vyos1x-config. vyos/vyos-cla-signatures provides the CLA reusable. vyos-documentation consumes lint-doc.yml (which runs .github/doc-linter.py).
- Commit / PR title format:
component: T12345: description. Phorge task ID at https://vyos.dev mandatory. Enforced by Mergify merge protections (per-product-repoinvalid-task-idrule + centralinvalid-title/invalid-body, T8966). - This repo's own default branch is
production(renamed fromcurrentin rollout 1c). Release-train branch model (in consumer repos, labeled by central Mergify base-branch rules):rolling(renamed fromcurrent),circinus(1.5 LTS),sagitta(1.4 LTS),equuleus(1.3 LTS). - Backports:
@Mergifyio backport <branch>(built-in Mergify command). The mirror pipeline injects these frombp/<branch>source labels. - Workflows here must be reusable (
workflow_call); avoid adding non-reusable workflows unless necessary (the only current exception iscla-check.yml, which usespull_request_target). - Most jobs include a
bullfrogsec/bullfrog@v0.10.0egress-audit step (non-fatal). - Bot identity for cross-org mutations:
vyosbotvia org-levelPATandREMOTE_OWNERsecrets.
- Any change merged to
productionships to every consumer immediately. Test from a feature branch first viauses:...@<branch>. - Onboarding a repo to the mirror pipeline: see
PRMirrorOnboarding.md. - Architecture & cross-org drift inventory: Confluence 792723546. GHA security hardening spec: 795344927. GHE baseline audit: 795967489.
- This file (
CLAUDE.md) is the authoritative working document for AI agents and contributors; keep it updated when conventions or layout change.