Skip to main content

A lightweight CLI tool that reports Git pull events to a GitPulse server.

Project description

🛰️ GitPulse CLI

Track every git pull across your repositories — automatically.

GitPulse is a lightweight Python CLI that silently tracks git pull events and reports them to a GitPulse dashboard (Laravel-based). It's designed for teams, freelancers, and open-source maintainers who want to know who pulled what, and when — without any friction.


🚀 Part 1: For Regular Users

If you just want to use GitPulse with the official dashboard (hosted by the GitPulse team), follow these simple steps 👇

🧩 Installation

Make sure you have Python 3.7+ installed, then run:

pip install gitpulse-cli

Once installed, confirm it works:

gitpulse --version

⚙️ Setup Inside a Git Project

Navigate into any of your Git repositories and run:

gitpulse setup

That's it ✅
This will automatically install a Git hook that runs after every git pull.

If you ever want to reinstall the hook cleanly:

gitpulse setup --force

📡 How It Works

Every time you or anyone in your team runs:

git pull

GitPulse automatically sends a lightweight event to the GitPulse API, containing:

  • ✅ Repository name
  • ✅ Current branch
  • ✅ Git user email
  • ✅ UTC timestamp

Your Laravel-powered dashboard will instantly update with who pulled the latest changes and when.


🖥️ View Pull Activity

Log into the GitPulse Dashboard:

👉 https://gitpulse.io

You'll see your repositories, branches, and last pull timestamps beautifully displayed.


🧹 Uninstall

If you ever want to remove the GitPulse hook from a project:

rm .git/hooks/post-merge

🧠 Part 2: For Developers / Self-Hosting

If you're a developer who wants to run your own private GitPulse server (e.g., for enterprise or intranet use), you can easily clone and customize both components.

1️⃣ Clone the CLI

git clone https://github.com/yourusername/gitpulse-cli.git
cd gitpulse-cli
pip install -e .

This installs it locally in "editable" mode so you can modify the source.


2️⃣ Set Your Own API Endpoint

Edit gitpulse/main.py and update the API URL:

API_URL = "https://your-private-domain.com/api/report-pull"

Now your CLI will send pull events to your private backend instead of the public GitPulse server.


3️⃣ Deploy the Laravel Backend

You can either fork or deploy the official GitPulse backend (Laravel app).

Features include:

  • REST API endpoint (/api/report-pull)
  • Admin dashboard with real-time pull activity
  • User authentication & access control
  • Per-repo and per-user activity logs

Setup is as simple as:

git clone https://github.com/yourusername/gitpulse-laravel.git
composer install
php artisan migrate
php artisan serve

Then update your CLI's API_URL to point to this new backend.


4️⃣ Optional: Publish Your Forked CLI

You can publish your modified version to your private PyPI server:

python -m build
twine upload --repository-url https://your-pypi-server.com dist/*

🧩 Example Workflow

# 1. Developer clones a repo
git clone https://github.com/org/project.git

# 2. Installs GitPulse hook once
gitpulse setup

# 3. Pulls latest updates
git pull

# 4. Event automatically sent Git pull event reported successfully!

Dashboard updates automatically 🎉


🧰 Commands Reference

Command Description
gitpulse setup Install GitPulse hook in current repo
gitpulse setup --force Force reinstall the hook
gitpulse run Manually send pull event (used internally by the hook)

📄 License

MIT License © 2025 Tayo Adepetu

You're free to use, modify, and distribute GitPulse under the terms of the MIT license.


🌐 Links


🤝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Made with ❤️ by Tayo Adepetu

⭐ Star this repo if you find it helpful!

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

gitpulse_cli-0.1.0.tar.gz (5.1 kB view details)

Uploaded Source

Built Distribution

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

gitpulse_cli-0.1.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file gitpulse_cli-0.1.0.tar.gz.

File metadata

  • Download URL: gitpulse_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 5.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for gitpulse_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f443d319597498b1e1bc94cb0465dbc2f2f9dc0c98f9d985e86b4b02a97ccc77
MD5 c934005333611df62cd8f9a2500f2021
BLAKE2b-256 354e9914bca4a06a862c123013895d9c7e22044feda65dfd4f316ec13b75f19e

See more details on using hashes here.

File details

Details for the file gitpulse_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitpulse_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for gitpulse_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aba3cd4b27d5c38dc7f684885d964b6c28518022143a8a0317063a4a0479ab35
MD5 01d0e13b6e0abcfc05f9717d3ab48a24
BLAKE2b-256 1ebc6bec314b9dab2c5c74e159f195f47fbcf3fc1f5ed057a3fb003e5fc44bca

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