Skip to the content.

Introducing Historia

I am excited to announce the first official blog post for the Historia project! Historia is a specialized tool designed to help developers and teams analyze Git repositories to track the history of tests and requirements. It provides valuable insights into code quality and test coverage by identifying files that have been modified without corresponding test updates.

What Does Historia Do?

At its core, Historia analyzes Git repositories to:

This information is crucial for:

Alpha Releases

As of today, I have released two alpha versions of Historia:

Alpha 1: Initial Proof of Concept

Our first alpha release provided the very initial Proof of Concept for the project. It included the basic functionality to:

Alpha 2: Pull Request Support

The second alpha release added a significant enhancement: support for Pull Requests when looking at commit history. This feature allows Historia to:

How Historia Works

Historia uses JGit to interact with Git repositories and analyze their history. The core functionality is currently implemented in the UntestedCommitDetectionStrategy class, which:

  1. Processes each file in the repository
  2. Finds all pull requests that include changes to the file
  3. Checks if any commit in the pull request affects test files
  4. Tracks statistics about updates and untested updates for each file

The tool generates a CSV report with the following information:

Getting Started

Historia can be run using the following command:

java -cp core/target/historia-core-1.0.0-SNAPSHOT.jar org.jboss.historia.core.Runner org.jboss.historia.core.UntestedCommitDetectionStrategy ./output.csv src/main/java https://github.com/your-repo.git target/jgit/local-clone

Where:

Future Plans

I am continuing to develop Historia and plan to add more features in future releases. Stay tuned for updates on the project’s development and new features!

Get Involved

Historia is an open-source project, and we welcome contributions from the community. Check out the GitHub repository to learn more about the project and how you can get involved.