Skip to content

kelhaji/geit

Repository files navigation

GitHub license

Geit

Git educational insights tool. Because f*#k slackers.

About Geit

Geit is a tool developed to aggregate contribution data of developers in a software development group project that uses Git. It is designed for teachers and teaching assistants to asses an entire group project and its individual members in terms of their code contributions behavior.

Demo

Here is one example output created by Geit

Geit

Features

  • Shows contributions by contribution types for each developer. Contribution types are:
    • Code contributions
    • Test contributions
    • Comment contributions
    • Configuration contributions
    • User interface contributions
    • Documentation contributions
  • Heuristically points out developers who are performing below average, above average, or need attention
  • Shows project files and folders with percentage of contribution for each developer
  • Displays overall commit distribution since inception of project
  • Shows issues and merge requests contribution activity (if available)
  • GitLab integration

Requirements

Installation

Install the latest version using the following instructions:

git clone https://github.com/kelhaji/geit
cd geit
pip3 install -r requirements.txt

A note for Windows users: Currently, the only way to run Geit on Windows is via the Windows Subsystem for Linux (WSL). Click here to see how to install WSL. After installing WSL 2, you can follow the installation instructions here to set up Geit on the Linux subsystem.

How to Use

You can generate a report by running the following command:

python3 geit.py --target-repo /path/to/repo

You can also specify the output type:

python3 geit.py --target-repo /path/to/repo --output json

The default output type is HTML.

Note for WSL users: when running the above commands ensure that the target repo was cloned within WSL.

Usage with GitLab

You can generate a report by running the following command:

python3 geit.py --gitlab-url <YOUR_GITLAB_URL> --gitlab-api-key <YOUR_API_KEY> --gitlab-project-id <YOUR_PROJECT_ID>