Skip to content

v0.3.0 - Split storage implementation

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Nov 16:41
· 298 commits to main since this release

This release prepares the codebase for a few things, one multiple storage backends are now a possibility through the new Storage interface that's available. Also this is some groundwork for the upcoming testsuite for the codebase.

The Storage interface expects two functions:

CreateProjectNode(projectPath string) error
CreateIncludeEdge(include IncludeEdge) error

And the IncludeEdge type is just the metadata pulled out of GitLab packed into a type:

type IncludeEdge struct {
	SourceProject string
	TargetProject string
	Ref           string
	Files         []string
}

Configuration of the storage is still handled by the overall config package, that whole mechanism is subject to change as I'm not very happy with it - The interface for configuration of the final binary should be fairly stable I'm only planning to switch up some internal plumbing.

Changelog

c261df2 Add storage interface and neo4j implementation
b2058f4 Prevent empty linkheaders entering the parsing functions
d358828 Fix updateProjectInGraph to attempt to write includes after single failure