ASIMOV module for Git repository history. Ingests a repo's commits, authors, parent links, and file-touches as JSON-LD / RDF.
- Walks a Git repository's history via the
gitbinary (nolibgit2). - Emits one
git:Repositoryand onegit:Commitper commit, withparent(the DAG),touches(changed files),authorDate, andmessage. - One
schema:Personper distinct author email — commits authored under multiple display names collapse to one node, with the variants preserved asschema:alternateName.
- The
gitbinary on$PATH. - Rust 1.85+ (2024 edition) if building from source code.
Installation with the ASIMOV CLI
asimov module install git -vcargo install asimov-git-moduleasimov-git-fetcher -o jsonld ~/repos/asimov/asimov-platform/asimov.rs
asimov-git-fetcher -o cli -n 5 .This module requires no configuration.
asimov-git-fetcher
Ingest a Git repository's history (commits, authors, file changes) as RDF.
Usage: asimov-git-fetcher [OPTIONS] [REPO]
Arguments:
[REPO] Path to the Git repository (default: current directory) [default: .]
Options:
-o, --output <FORMAT> Output format: jsonld (default) or cli [default: jsonld]
-n, --max <N> Limit to the N most recent commits (default: all)
-d, --debug Enable debugging output
--license Show license information
-v, --verbose... Enable verbose output (may be repeated for more verbosity)
-V, --version Print version information
-h, --help Print help
git clone https://github.com/asimov-modules/asimov-git-module.gitThis module emits an inline git: namespace (Commit, Repository,
authoredBy, parent, touches, authorDate, inRepository) alongside
schema:Person from KNOW. A future revision will upstream the git:
terms into KNOW and emit through its typed structs.