tag:github.com,2008:https://github.com/git-pkgs/git-pkgs/releases Tags from git-pkgs 2026-03-05T17:08:37Z tag:github.com,2008:Repository/1135068161/v0.15.1 2026-03-05T18:36:36Z v0.15.1 <p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/163">#163</a> from git-pkgs/bump-purl-v0.1.9</p> <p>Bump github.com/git-pkgs/purl from 0.1.8 to 0.1.9</p> github-actions tag:github.com,2008:Repository/1135068161/v0.15.0 2026-02-27T10:26:26Z v0.15.0 <p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/140">#140</a> from git-pkgs/update-dependencies</p> <p>Update git-pkgs dependencies</p> github-actions tag:github.com,2008:Repository/1135068161/v0.14.0 2026-02-16T11:47:46Z v0.14.0 <p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/120">#120</a> from git-pkgs/generate-docs</p> <p>Add Hugo doc generator for website command reference</p> github-actions tag:github.com,2008:Repository/1135068161/v0.13.2 2026-02-10T11:42:06Z v0.13.2 <p>Update module versions for user-agent support</p> <p>registries v0.2.4, vulns v0.1.2, enrichment v0.1.1</p> github-actions tag:github.com,2008:Repository/1135068161/v0.13.1 2026-02-09T11:41:13Z v0.13.1 <p>Replace go-git gitignore matcher with custom implementation (<a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/99">#99</a>)</p> <p>* Replace go-git gitignore matcher with custom implementation</p> <p>go-git's gitignore.Matcher doesn't handle negation patterns correctly. <br />Repos with deny-by-default .gitignore patterns (/* then !.github/) cause <br />DependenciesInWorkingDir and where to skip entire directory trees that <br />should be visible, breaking diff on clean working trees.</p> <p>Add internal/gitignore package with a matcher that correctly implements <br />gitignore semantics: last-match-wins, directory-only trailing slash, <br />leading/middle slash anchoring, ** in all positions, and pattern scoping <br />for nested .gitignore files. Verified against git check-ignore.</p> <p>Remove LoadIgnoreMatcher/IgnoreMatcher from repository.go. Add <br />GetExcludeDirs for configurable directory skipping via git config.</p> <p>Ref <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/98">#98</a></p> <p>* Skip escaped wildcards test on Windows</p> <p>The "escaped wildcards" test case creates files named hello* and hello? <br />on disk, which Windows does not support. Skip this case on Windows since <br />it's a filesystem limitation, not a matcher bug.</p> <p>* Fix phantom diffs for packages with multiple versions in lockfiles</p> <p>npm lockfiles can contain the same package at multiple versions due to <br />dependency hoisting (e.g. [email protected] and [email protected]). Both computeDiff <br />and AnalyzeCommit used single-value maps keyed by package name, so <br />duplicate versions collapsed to whichever was iterated last. When the <br />database and working tree paths iterated in different orders, this <br />produced phantom "modified" entries on clean workspaces.</p> <p>Replace single-value maps with multi-maps in both locations:</p> <p>- computeDiff: group by manifest:name, compare version sets when a <br /> package appears at multiple versions <br />- AnalyzeCommit: replace beforeByName/afterByName with multi-maps so <br /> PreviousRequirement reflects the actual replaced version</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/issues/53">#53</a></p> <p>* Support POSIX character classes in gitignore patterns</p> <p>Git's wildmatch supports POSIX character classes like [[:space:]], <br />[[:alpha:]], [[:digit:]] inside bracket expressions. Our parseBracket <br />found the first ] as the closing bracket, splitting [[:space:]] into <br />[[:space:] plus a literal ]. Fix by skipping past [:...:] sequences <br />when scanning for the closing bracket.</p> <p>Test cases adapted from git/t/t3070-wildmatch.sh, including multiple <br />classes in one bracket and mixing ranges with POSIX classes.</p> <p>* Handle backslash escapes inside bracket expressions</p> <p>In wildmatch, \X inside a bracket expression means literal X. The <br />bracket parser was blindly doubling all backslashes for the regex <br />engine, which broke patterns like [\-_] (literal dash and underscore), <br />[\1-\3] (range 1-3), and [[-\]] (range [ to ]).</p> <p>The fix processes escape sequences during both bracket scanning (so \] <br />does not prematurely close the bracket) and content building (so \X <br />resolves to the literal character).</p> <p>* Use github.com/git-pkgs/gitignore v0.1.0</p> <p>Replace the internal gitignore package with the standalone module.</p> <p>* Bump gitignore to v1.0.0</p> github-actions tag:github.com,2008:Repository/1135068161/v0.13.0 2026-02-07T12:01:57Z v0.13.0 github-actions tag:github.com,2008:Repository/1135068161/v0.12.0 2026-02-06T13:06:42Z v0.12.0 <p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/92">#92</a> from git-pkgs/use-shared-enrichment</p> <p>Replace internal enrichment with shared module</p> github-actions tag:github.com,2008:Repository/1135068161/v0.11.6 2026-02-05T16:49:23Z v0.11.6 github-actions tag:github.com,2008:Repository/1135068161/v0.11.5 2026-02-05T12:28:54Z v0.11.5 <p>Ignore git submodules when scanning for manifests (<a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/pull/76">#76</a>)</p> <p><span class="issue-keyword tooltipped tooltipped-se">Fixes</span> <a class="issue-link js-issue-link" href="https://github.com/git-pkgs/git-pkgs/issues/72">#72</a></p> <p>Manifests and lockfiles found in git submodule directories are now properly ignored by default when scanning the working directory. This prevents dependencies from submodules being incorrectly reported as part of the main repository.</p> <p>A new --include-submodules flag allows opting in to scanning submodules when needed.</p> <p>The implementation uses go-git's native Worktree.Submodules() API to detect submodule paths, which are then filtered out during filesystem walks in both the analyzer and where command.</p> <p>Changes: <br />- Added GetSubmodulePaths() method to Repository using go-git's submodule support <br />- Updated DependenciesInWorkingDir() to skip submodule directories by default <br />- Updated where command to skip submodule directories by default <br />- Added --include-submodules persistent flag to opt in to scanning submodules <br />- Updated diff command to respect the flag <br />- Added comprehensive tests for submodule filtering <br />- Documented the flag in README.md and docs/internals.md</p> github-actions tag:github.com,2008:Repository/1135068161/v0.11.4 2026-01-31T21:28:25Z v0.11.4 <p>v0.11.4</p> <p>- Fix vulnerability scanning with proper version comparison <br />- Include Go dependencies in vulnerability scanning <br />- Auto-reindex in bisect when commits are not indexed <br />- Group manifest and lockfile entries in history output <br />- Use purl library for vulns sync PURL generation</p> github-actions