diff options
| author | Yuriy Andamasov <yuriy@vyos.io> | 2026-05-11 11:02:46 +0300 |
|---|---|---|
| committer | Yuriy Andamasov <yuriy@vyos.io> | 2026-05-11 11:02:46 +0300 |
| commit | 93008a777551f37fe9e07a3902fd76e29ec84e35 (patch) | |
| tree | 87ca165317a215aec27e69309825acfec2052e8a /docs/_html_extra | |
| parent | a8328e682b1a26e0bc37ae2ff132fa245429e22c (diff) | |
| download | vyos-documentation-93008a777551f37fe9e07a3902fd76e29ec84e35.tar.gz vyos-documentation-93008a777551f37fe9e07a3902fd76e29ec84e35.zip | |
ci(ai-validation): add :(glob) pathspec magic so top-level docs/*.md match
CRITICAL BUG discovered during smoke verify of PR #1977 (a draft PR
touching docs/quick-start.md). The prepare job ran SUCCESS but
validate SKIPPED because has_md_changes was false:
$ git diff origin/rolling...HEAD --name-only -- 'docs/**/*.md'
(empty)
$ git diff origin/rolling...HEAD --name-only -- ':(glob)docs/**/*.md'
docs/quick-start.md
Root cause: git's default pathspec syntax uses fnmatch with
FNM_PATHNAME (slashes are not crossed by `*`). The `**` glob is NOT
recognized in default pathspec — it's treated as plain `**`
(two consecutive asterisks). For `docs/**/*.md` this means git
requires at least one `/` between `docs/` and `*.md`, so:
- docs/configuration/service/foo.md → MATCHES (1+ subdir)
- docs/quick-start.md → NO MATCH (0 subdirs)
- docs/index.md → NO MATCH (0 subdirs)
- docs/cli.md → NO MATCH (0 subdirs)
- docs/copyright.md → NO MATCH (0 subdirs)
- docs/coverage.md → NO MATCH (0 subdirs)
- docs/404.md → NO MATCH (0 subdirs)
- docs/documentation.md → NO MATCH (0 subdirs)
7 top-level files silently bypass validation on every PR that
touches them. Adding the `:(glob)` magic prefix opts in to true
shell-style ** semantics (also recognised by git's pathspec
parser per gitignore-pattern rules):
- docs/**/*.md → :(glob)docs/**/*.md
- docs/**/*.rst → :(glob)docs/**/*.rst
Three pathspec usages updated in the prepare job; comment references
to "docs/**/*.md" left unchanged (they read as informal shorthand).
Paired PR on VyOS-Networks/vyos-docs-opus-reviewer adjusts the
canonical scripts/ai-validation.yml identically.
Diffstat (limited to 'docs/_html_extra')
0 files changed, 0 insertions, 0 deletions
