<Project id="awesomehub-cli" />

AwesomeHub CLI

CLI that crawls curated GitHub lists and generates a normalized, scored dataset for AwesomeHub

Project Overview

Command-line tool built with Symfony Console that ingests repositories from curated “awesome” lists on GitHub, normalizes metadata, computes scores, and emits static JSON consumed by the AwesomeHub web app.

Data Pipeline

  • Ingestion (GitHub REST API) — Handles auth, pagination, and rate limits with automatic token rotation, retries/backoff, and structured logging.
  • Normalization — Unifies repo fields (name, owner, topics, language, stars/forks, issues/PRs, contributors, latest commit) and dedupes across lists.
  • Static analysis — Lightweight checks to enrich data (activity recency, maintenance signals).

Scoring (PAMT)

Computes an overall PATM score per repo:

  • Popularity (e.g., stars/forks)
  • Activity (e.g., recent commits/issues/PRs)
  • Trending (e.g., short-term activity delta)
  • Maturity (e.g., age, release cadence)

Weights and thresholds are configurable so results are reproducible.

DevOps

Runs on a GitHub Actions schedule (and on-demand), then publishes versioned JSON artifacts for the frontend (e.g., repos.json, topics.json).

Outcomes

  • Fast UX in the app (no live API calls).
  • Deterministic datasets decoupled from GitHub rate limits.
  • Simple hosting (static files) with clear provenance.