Skip to content

asimov-modules/asimov-git-module

Repository files navigation

ASIMOV Git Module

License Package on Crates.io Documentation

ASIMOV module for Git repository history. Ingests a repo's commits, authors, parent links, and file-touches as JSON-LD / RDF.

✨ Features

  • Walks a Git repository's history via the git binary (no libgit2).
  • Emits one git:Repository and one git:Commit per commit, with parent (the DAG), touches (changed files), authorDate, and message.
  • One schema:Person per distinct author email — commits authored under multiple display names collapse to one node, with the variants preserved as schema:alternateName.

🛠️ Prerequisites

  • The git binary on $PATH.
  • Rust 1.85+ (2024 edition) if building from source code.

⬇️ Installation

Installation with the ASIMOV CLI

asimov module install git -v

Installation from Source Code

cargo install asimov-git-module

👉 Examples

asimov-git-fetcher -o jsonld ~/repos/asimov/asimov-platform/asimov.rs
asimov-git-fetcher -o cli -n 5 .

⚙ Configuration

This module requires no configuration.

📚 Reference

Installed Binaries

  • asimov-git-fetcher

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

👨‍💻 Development

git clone https://github.com/asimov-modules/asimov-git-module.git

Vocabulary

This 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.


About

ASIMOV module for Git repository history (commits, authors, file changes).

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors