skillfed

PyDriller

Framework for MSR

pydriller v2.10 314.8K downloads/30d#7,696 on PyPI968
Permissive license Apache License Active released

What it is and what it does

PyDriller is a Python framework for mining software repositories, built on gitpython to traverse and analyze Git history. It lets you programmatically extract structured data about commits, developers, file changes, and code diffs from any Git repository—local or remote—without writing raw Git commands yourself. The framework handles the parsing and object model so you work with clean Python objects representing commits, authors, and file modifications.

It's commonly used in software engineering research, code quality analysis, and repository auditing. The package depends on gitpython for Git operations, pytz for timezone handling, and lizard for optional code complexity metrics. It supports Python 3.5 and later, with active maintenance and no known security vulnerabilities.

Use it for:

  • Extract commit history and metadata for software engineering research or empirical studies on development patterns.
  • Analyze file change frequency and developer contributions to identify code hotspots and team dynamics.
  • Build automated code review or quality monitoring tools that examine diffs and commit patterns over time.
  • Generate repository statistics and reports on project evolution, commit volume, and contributor activity.
  • Audit repository history for compliance, security, or documentation purposes without manual Git log parsing.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

PyDriller extracts commit history, developer metadata, modified files, diffs, and source code information from Git repositories for analysis and mining.

Yes. PyDriller is actively maintained, has no security vulnerabilities, installs with low friction, and offers a clean Python API for Git analysis. It's well-suited for anyone building repository analysis tools, conducting software engineering research, or automating repository audits. The permissive Apache License poses no barrier to adoption.

Install

pydriller on PyPI

pip

pip install pydriller

uv

uv add pydriller

poetry

poetry add pydriller

Installing PyDriller

Before you install

Low friction install with a pure-Python wheel distribution. Active maintenance with a recent release 44 days ago and ongoing repository activity.

License in practice

Apache License permits commercial and private use with minimal restrictions, making it suitable for most projects without licensing concerns.

Quickstart

pip install pydriller

from pydriller import Repository

for commit in Repository('https://github.com/ishepard/pydriller').traverse_commits():
    print(commit.hash, commit.msg, commit.author.name)

Verify before relying

  • Whether the package handles very large repositories efficiently or has performance limitations on scale.
  • Specific Git version requirements or compatibility constraints beyond Python version support.

Package facts

License Apache License (permissive)
Python support supports the current Python release (>=3.5)
Install friction low — pure-Python wheel
Runtime dependencies 4 — gitpython, pytz, types-pytz, lizard
Maintenance actively maintained — 44 days since the last release
Last repo commit
First released
Downloads 314,790/month — #7,696 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pydriller-2.10-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: OS IndependentOperating System :: POSIXProgramming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules

Tags

git repository analysismining software repositoriesextract commit historygit commit metadataanalyze git diffssource code miningrepository data extraction
git-miningrepository-analysismsr

More Python Modules packages