v0.3.0 - Split storage implementation
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