Skip to main content

A modular Python tool that aggregates and formats user-authored messages from repositories.

Project description

Git Recap

Git Recap is a modular Python tool that aggregates and formats user-authored messages from repositories hosted on GitHub, Azure DevOps, and GitLab. It fetches commit messages, pull requests (along with their associated commits), and issues, then consolidates and sorts these events into a clear, chronological summary. This summary is output as a plain text string that can serve as context for large language models or other analysis tools.

Features

  • Multi-Platform Support:
    Retrieve messages from:

  • Flexible Date Filtering:
    Specify start and end dates (automatically converted to UTC if no timezone info is provided) to restrict the range of events.

  • Author Filtering:
    Optionally specify one or more authors. By default, the authenticated user is used.

  • Output Schema:
    Each fetched event is stored in a standardized dictionary format with keys such as:

    • type (commit, commit_from_pr, pull_request, issue)
    • repo
    • message
    • timestamp
    • Additional keys like sha, pr_title, and pr_number for context
  • Chronological Aggregation:
    All events are merged and sorted in chronological order.
    A helper function then parses the JSON output into a plain text summary grouped by day, making it ideal as context for LLMs.

File Structure

git_recap/
├── README.md
├── requirements.txt
└── src
    ├── __init__.py
    ├── fetcher.py
    └── providers
         ├── __init__.py
         ├── base_fetcher.py
         ├── github_fetcher.py
         ├── azure_fetcher.py
         └── gitlab_fetcher.py
  • fetcher.py:
    Contains the main entry point which parses command-line arguments (provider, PAT, dates, repo filters, etc.) and invokes the appropriate provider fetcher.

  • providers/base_fetcher.py:
    Defines the abstract base class with common functionality such as date filtering and aggregating messages.

  • providers/github_fetcher.py:
    Implements GitHub-specific logic for fetching commits, pull requests (including their commits), and issues.

  • providers/azure_fetcher.py & providers/gitlab_fetcher.py:
    Implement similar logic for Azure DevOps and GitLab respectively.

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/git_recap.git
    cd git_recap
    
  2. Create a virtual environment (optional but recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows use: venv\Scripts\activate
    
  3. Install dependencies:

    pip install -r requirements.txt
    

Usage

Run the main script with the required parameters. For example:

GitHub

python src/fetcher.py --provider github --pat YOUR_GITHUB_PAT --start-date 2025-03-07T00:00:00 --end-date 2025-03-15T23:59:59 --repos Repo1 Repo2

Azure DevOps

python src/fetcher.py --provider azure --pat YOUR_AZURE_PAT --organization-url https://dev.azure.com/YOURORG --start-date 2025-03-07T00:00:00 --end-date 2025-03-15T23:59:59 --repos Repo1 Repo2

GitLab

python src/fetcher.py --provider gitlab --pat YOUR_GITLAB_PAT --gitlab-url https://gitlab.example.com --start-date 2025-03-07T00:00:00 --end-date 2025-03-15T23:59:59 --repos Repo1 Repo2

Contributing

Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.

License

This project is licensed under the terms of the MIT License.

Acknowledgements

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

git_recap-0.1.3.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

git_recap-0.1.3-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file git_recap-0.1.3.tar.gz.

File metadata

  • Download URL: git_recap-0.1.3.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for git_recap-0.1.3.tar.gz
Algorithm Hash digest
SHA256 75d19f18f03024fd96bf2f0b011714a31487a6b78bd47ce5ca9ba657f85a6638
MD5 ef09e5ef375b7c7498765e2661d21275
BLAKE2b-256 399eeb0c3bac19e36e369ccc034ce7c2362023dbd011ea6099013b6ca39ac443

See more details on using hashes here.

File details

Details for the file git_recap-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: git_recap-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.22

File hashes

Hashes for git_recap-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 69b3c84bf409e71c857d74d4def7050b40c47d2a4979c964a8b0286a44ae0b9c
MD5 ee7a8bc7f7dd9edd032e99de66d8d5e0
BLAKE2b-256 d1012cf8776f9e3edce2cd467b683d8bdc1cd0d6330a5292ef27000b4c561315

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page