Your GitHub clone stats, visualized and celebrated.
Project description
📈 ClonePulse
Your GitHub clone stats, visualized and celebrated.
Track weekly trends, highlight milestones, and share visual dashboards—all automatically.
🚀 What is ClonePulse?
ClonePulse is a GitHub-friendly toolchain that fetches, tracks, and visualizes repository clone activity.
It offers:
- ✅ Daily clone tracking (total + unique)
- 📊 12-week visual dashboard (.PNG image)
- 📌 Automatic milestone detection (e.g., 500, 1K, 2K+ clones)
- 🏷️ Auto-annotations for clone spikes
- 🏁 Badge generation for README inclusion
- 🤖 GitHub Actions support for automation
Example badge setup
🏷️ ClonePulse Badge Snippet
[](https://github.com/<your-username>/<your-repo>/blob/main/doc/weekly_clones.png)
[](https://github.com/<your-username>/<your-repo>/blob/main/doc/weekly_clones.png)
✅ Instructions:
Replace <your-username> and <your-repo> with your actual GitHub handle and repository name.
Ensure the fetch_clones.yml and generate_clone_dashboard.yml GitHub Actions are set up, enabled and working. Run them manually to check.
The badges will auto-update based on your repo's clone activity, and clicking the badges will show the latest dashboard.
📷 Example Dashboard
A weekly clone activity chart is automatically updated and saved in
doc/weekly_clones.png.
It is intended to run every Monday morning. Data from the current week is discarded - only data for full weeks are shown.
🔐 Creating a Secure GitHub Token for ClonePulse
ClonePulse fetches traffic (clone) stats from the GitHub API. This requires a Personal Access Token (PAT) with read-only access to repository traffic. Here's how to create one securely and use it with GitHub Actions.
Token Requirements
For public repositories, a fine-grained token with Repository traffic (read-only) access is sufficient.
For private repositories, you will also need:
- Repository contents: Read-only
- Repository metadata: Read-only
- Repository traffic: Read-only
🛠️ How to Create a Fine-Grained Token
Visit: https://github.com/settings/tokens
Click "Generate new token" → "Fine-grained token"
Configure:
Name: e.g., ClonePulse fetch token
Expiration: e.g., 90 days
Resource owner: Your user or organization
Repository access: Select the specific repo
Permissions:
- "Read access to administration and metadata ": Read-only
- (Add others like contents if your repo is private)
Click "Generate token" and copy it immediately
🔒 Overview of securing the Token Using GitHub Secrets
-
Go to your GitHub repository:
Settings → Secrets and variables → Actions → New repository secret -
Name the secret:
CLONEPULSE_METRICS -
Paste the token you copied and save.
🚀 GitHub Action workflow fetch_clones.yml
The workflow references the secret as an environment variable:
- name: Run fetch_clones.py
env:
TOKEN: ${{ secrets.CLONEPULSE_METRICS }}
run: python src/clonepulse/fetch_clones.py
The workflows must be enabled and perhaps the crontab needs adjusting to your taste.
🛠️ Installation (dev setup)
git clone https://github.com/your-user/clonepulse.git
cd clonepulse
./build.sh # Creates virtualenv and installs dependencies
🤝 Contributing
Found a bug or have a suggestion?
Feel free to open an issue or submit a pull request!
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clonepulse-0.9.0.tar.gz.
File metadata
- Download URL: clonepulse-0.9.0.tar.gz
- Upload date:
- Size: 89.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10b7543ea78e0754cd8fc447f47cd59efcbed6e4ef299ca10d09dc30eecd22c3
|
|
| MD5 |
0523bf2d239da27c2ff68d3da5bb9857
|
|
| BLAKE2b-256 |
634df64f03381fdc27d1874324953d8bc2e7d3e73facb5548a5428339f9f0a9b
|
File details
Details for the file clonepulse-0.9.0-py3-none-any.whl.
File metadata
- Download URL: clonepulse-0.9.0-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25a6eeacef84e63f85f8565cd34db3d67652b6c52d64b64cbadad00129ced165
|
|
| MD5 |
2c63d0bdcb94eabe808a3cf8846a357c
|
|
| BLAKE2b-256 |
8765b5ad8fb43a6705f4e66a78434a0274b44ea12a639762bdc1eb274d3fc467
|