https://github.com/gojiplus/allstar
Tally stats across all the public repos. in your orgs. and under your username
https://github.com/gojiplus/allstar
analytics github stats
Last synced: about 2 months ago
JSON representation
Tally stats across all the public repos. in your orgs. and under your username
- Host: GitHub
- URL: https://github.com/gojiplus/allstar
- Owner: gojiplus
- License: mit
- Created: 2025-04-14T19:05:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-29T02:30:35.000Z (3 months ago)
- Last Synced: 2026-03-29T05:26:12.543Z (3 months ago)
- Topics: analytics, github, stats
- Language: Python
- Homepage:
- Size: 59.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## 📊 GitHub Stats Aggregator
GitHub Action to aggregate and summarize statistics from public repositories across multiple GitHub organizations and user accounts.
### 🚀 Overview
GitHub Stats Aggregator collects statistics such as total repositories, stars, forks, and open issues from specified GitHub user accounts and organizations. The aggregated statistics are saved in both JSON and Markdown formats, perfect for integrating into README files or dashboards.
### ✨ Features
1. Summarizes data across multiple GitHub organizations and personal accounts.
2. Generates a Markdown summary report (stats.md).
3. Generates a JSON data file (stats.json) for further use or visualization.
### 🔧 Usage
Step 1: Create a Workflow File
Create a file .github/workflows/aggregate-stats.yml:
```yaml
name: Aggregate GitHub Stats
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
aggregate:
runs-on: ubuntu-latest
permissions:
contents: write
env:
GITHUB_USER: "your-github-username"
ORG_LIST: "USER, org1, org2, org3"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.10"
- run: python -m pip install requests
- run: python src/main.py
- name: Commit and push
run: |
git config user.name github-actions
git config user.email github-actions@github.com
git add stats.json stats.md
git commit -m "Update aggregated GitHub stats" || echo "No changes"
git push
```
Replace your-github-username and org1, org2, org3 with your GitHub username and any organizations you want to include.
Step 2: Set up Python Script
Ensure the script (src/main.py) from this repository is present in your repository, along with any required files:
```
repo-root/
├── .github/
│ └── workflows/
│ └── aggregate-stats.yml
└── src/
└── main.py
```
Step 3: Workflow Execution
The workflow runs daily (adjust cron as needed) and aggregates stats. Manually trigger the workflow via GitHub Actions UI if necessary.
### 📂 Example Output
The Action generates two files:
stats.md
# 📈 GitHub Aggregate Stats
- Total Entities: **4**
- Total Repositories: **120**
- Total Stars: **650**
- Total Forks: **210**
- Total Open Issues: **32**
## 🚀 Detailed Breakdown
### 🏢 [your-github-username](https://github.com/your-github-username)
- Repositories: 20
- Stars: 100
- Forks: 30
- Open Issues: 5
### 🏢 [org1](https://github.com/org1)
- Repositories: 40
- Stars: 200
- Forks: 80
- Open Issues: 12
stats.json
```json
{
"total_entities": 4,
"total_repos": 120,
"total_stars": 650,
"total_forks": 210,
"total_open_issues": 32,
"details": [
{
"name": "your-github-username (User)",
"total_repos": 20,
"total_stars": 100,
"total_forks": 30,
"total_open_issues": 5
},
{
"name": "org1",
"total_repos": 40,
"total_stars": 200,
"total_forks": 80,
"total_open_issues": 12
}
]
}
```