Generates activity reports for Apache Software Foundation projects by fetching mailing list archives and git repository metadata.
- uv (dependencies are managed inline via the script header)
- git
./project_activity.py -p <project> [-m <months>]
| Flag | Description | Default |
|---|---|---|
-p, --project |
ASF project name (e.g., iceberg, httpd) |
required |
-m, --months |
Number of months of history | 3 |
-h, --help |
Show help |
./project_activity.py -p iceberg -m 6
-
Mailing lists — Checks for common Apache list names (
dev,user,users,commits,issues,reviews), then fetches mbox archives for the time period. Already-fetched past months are skipped if complete; the current month is always refetched. -
Git repositories — Discovers
apache/{project}andapache/{project}-*repos on GitHub. Clones metadata-only (no file content). Existing clones are updated withgit pull. -
Report — Generates a Markdown report with the top 5 most active threads per mailing list and commit counts per repository. Lists and repos with no activity are omitted.
project-activity/
├── project_activity.py # Main script
├── README.md
├── DATA/
│ ├── mbox/
│ │ └── <project>/
│ │ └── <list>/ # e.g., dev/, issues/
│ │ └── YYYY-MM.mbox # Monthly mbox archives
│ └── REPOSITORIES/
│ └── <project>/
│ └── <repo>/ # Metadata-only git clones
└── REPORTS/
└── <project>/
└── YYYY-MM-DD.md # Datestamped activity reports