git-stratum 0.1.0

High(er) level repository for mining git repositories, this library abstracts git2-rs for efficient processing.
Documentation
git-stratum-0.1.0 has been yanked.

Git Stratum

Stratum: A single layer of something - Cambridge Dictionary.

A library that lets you anlayse your repository one strata at a time, leveraging a higher level API than git2-rs analysing your repository is simple!

Quick Start

First add stratum to your dependencies.

cargo add git-stratum

Then inside of your main function:

use stratum::open_repository;

let repo = open_repository("path/to/repo").unwrap();
for commit in repo.iter_commits().unwrap() {
    let commit = commit.unwrap();
    ...
}

Note that the API is liable to change up until version 1.0.0.

For more detail on the API, see the docs.

Testing

credit: The /test-repos.zip file was originally created by the maintainer of PyDriller, which is the core inspiration for this project. At the time of writing Pydriller is under the Apache2.0 license.

To write new tests:

  • Manually unzip the test-repos.zip choose a repository to use in testing.
    • If one is not appropriate, create a new one, be sure to upload a new zip file containing your new repository.
  • To use your chosen repository, use a code block similar to the following:
mod common;
use common::test_data_dir;

fn small_repo() -> PathBuf {
    test_data_dir().join("small_repo")
}
  • The test-repo should only be unzipped once per test module, so if your testing fits within an existing test module, it will save some time to put the test in an existing module.