Repository navigation
Copy fixture projects with glob selection and Git metadata protection - #19
Merged
Merged
Conversation
Base automatically changed from
dblock/markdown-replacement-overload
to
master
November 11, 2026 18:57
dblock
force-pushed
the
dblock/recursive-fixture-copying
branch
from
November 11, 2026 18:57
baa6f82 to
9d2d75a
Compare
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dblock
force-pushed
the
dblock/recursive-fixture-copying
branch
from
November 11, 2026 19:04
9d2d75a to
509a2e2
Compare
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.
Ports the complete behavior of dblock/ruby-gem-release#54 and adds optional glob selection.
Glob strings support wildcards, recursive
**, character classes, and brace alternatives with portable/separators. Hidden files are included; no matches copy nothing. Arrays remain literal file lists, including filenames containing glob characters. A stable minimatch dependency provides matching on all supported Node.js versions without using experimental runtime glob APIs.Recursive/glob copying preserves nested paths, binary bytes and modes, and skips
.gitmetadata at every level. Exact metadata selections and source/destination aliases into metadata are rejected before copying any file. Matching uses the existing non-following directory walk and canonical-root preflight, not a filesystem glob that traverses directory links. The real lifecycle example copies its files recursively and runs a focused fixture test command.Validation: 92 source tests;
npm run lint; actual packed-consumer installation with shared recursive/glob/exact-copy and metadata-protection checks, installed declarations, and the executable lifecycle example. The testing module has 100% line/function and 97.63% branch coverage.AI-authored by GitHub Copilot on behalf of @dblock.