fbuireu/GitHub Star Tracker
Track star count changes across your repositories with historical reports and badges
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 10, 2026
- License
- AGPL 3.0
Pinned Snippet
uses: fbuireu/github-star-tracker@b0ffff6398be4cf92555d627a995f659d6d492af # v1.22.1tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| github-token | Personal Access Token (PAT) with repo or public_repo scope - GITHUB_TOKEN does not work | yes | — |
| github-api-url | GitHub API base URL for GitHub Enterprise Server (e.g. https://github.example.com/api/v3). Auto-detected on GHES runners. | no | "" |
| config-path | Path to the configuration file (relative to repo root) | no | star-tracker.yml |
| visibility | Repository visibility filter: public, private, all, or owned (only repos you own) (overrides config file) | no | "" |
| include-archived | Include archived repositories (overrides config file) | no | "" |
| include-forks | Include forked repositories (overrides config file) | no | "" |
| exclude-repos | Comma-separated list of repository names or regex patterns (e.g. /^test-.*/) to exclude (overrides config file) | no | "" |
| only-repos | Comma-separated list of repository names to exclusively track (overrides config file) | no | "" |
| only-orgs | Comma-separated list of organization/owner names or regex patterns (e.g. /^my-org$/) to exclusively track (overrides config file) | no | "" |
| exclude-orgs | Comma-separated list of organization/owner names or regex patterns to exclude (overrides config file) | no | "" |
| min-stars | Only track repos with at least this many stars (overrides config file) | no | "" |
| data-branch | Branch name for storing tracking data | no | star-tracker-data |
| max-history | Maximum number of snapshots to keep in history | no | 52 |
| smtp-host | SMTP server host. Providing this enables built-in email notifications | no | "" |
| smtp-port | SMTP server port | no | 587 |
| smtp-username | SMTP authentication username | no | "" |
| smtp-password | SMTP authentication password | no | "" |
| email-to | Email recipient address | no | "" |
| email-from | Email sender name or address | no | GitHub Star Tracker |
| send-on-no-changes | Send email even when no star changes are detected | no | false |
| include-charts | Include star trend charts in reports (true/false) | no | true |
| notification-threshold | Star change threshold before sending notification: 0 (every run), a number (e.g. 5), or "auto" (adaptive) | no | 0 |
| locale | Language for reports and emails: en, es, ca, it | no | en |
| top-repos | Number of top repositories to feature in charts and forecasts (by star count) | no | 10 |
| track-stargazers | Track individual stargazers and show new ones in reports (true/false) | no | false |
| smart-sampling | Sample stargazer pages for high-star repos instead of fetching every page, to avoid API rate limits (true/false). Sampled repos lose exact new-stargazer lists. | no | false |
| smart-sampling-threshold | Star count above which a repo is sampled instead of fully fetched (only when smart-sampling is enabled) | no | 1500 |
| smart-sampling-pages | Maximum number of evenly-spaced stargazer pages (100 stargazers each) to fetch per sampled repo | no | 30 |
| chart-line-color | Hex color for the primary chart line, fill and points (star-history, per-repo and forecast historical series); does not affect the comparison palette or forecast trend lines. Accepts 3/4/6/8-digit hex with or without a leading #. In YAML a bare # starts a comment, so either omit it (chart-line-color: 6b63ff) or quote it (chart-line-color: "#6b63ff"). (default #dfb317) | no | "" |
| chart-line-width | Stroke width in px (>0, decimals allowed) for data lines across all charts. (default 2.5) | no | "" |
| chart-max-points | How many points to plot across the full reconstructed history, i.e. the curve granularity (capped at 365). Higher means a more detailed curve over the same span; this is resolution, not the time window (use chart-range for that). Set to 0 to reconstruct the full history at weekly resolution. Email charts are always limited to 30 points. (default 30) | no | 30 |
| chart-y-axis-side | Which side to render the Y-axis value labels on: left or right. (default left) | no | left |
| chart-smoothing | Smooth chart lines with a curve (true) or draw straight segments between points to reveal small spikes (false). (default true) | no | true |
| chart-curve | Curve used when chart-smoothing is true: "monotone" (smooth, never overshoots, best for star data), "catmull-rom" (natural spline, can overshoot on sharp steps), "cubic-bezier" (eased S-curves, flat at every point), or "rounded-step" (flat segments with rounded corners). Email charts render monotone and rounded-step as monotone, and catmull-rom and cubic-bezier as a smooth spline. (default monotone) | no | monotone |
| chart-show-points | Draw a marker on each data point (true) or hide them for a cleaner line on dense charts (false). (default true) | no | true |
| chart-animation | Animate the SVG charts with a draw-on line and fading points (true) or render them static (false). Static is better for email and other contexts that do not play CSS animations. (default true) | no | true |
| chart-milestones | Draw milestone reference lines (10, 50, 100, 500, 1k, 5k, 10k stars) on the main star-history chart (true) or hide them (false). (default true) | no | true |
| chart-begin-at-zero | Start the chart Y-axis at zero (true) for absolute scale, or zoom into the data range (false) to emphasize recent changes. Applies to all charts. (default false) | no | false |
| chart-theme | Color theme for the charts and email report: auto, light or dark. auto follows the readers prefers-color-scheme in the SVG charts; email clients that ignore it fall back to light. Force light or dark to override. (default auto) | no | auto |
| chart-custom-milestones | Comma-separated star counts to use as milestone reference lines instead of the built-in defaults (e.g. "250, 750, 2500"). Values are sorted and de-duplicated; non-positive or non-numeric entries are ignored, and an input with no valid numbers warns and falls back to the built-in milestones. Requires chart-milestones to be enabled. When empty, the built-in milestones are used. (default empty) | no | "" |
| chart-range | Time window of history to plot: 30d, 90d, 1y or all. Filters snapshots to the most recent window (relative to the latest data point) before applying chart-max-points. (default all) | no | all |
| chart-trend-line | Overlay a dashed moving-average trend line on the main star-history chart to smooth out noise and show the underlying direction (true) or hide it (false). (default false) | no | false |
| velocity-metrics | Add a growth-velocity section to the report (stars/day, percent growth, and projected days to the next star milestone), computed from the tracked history (true) or omit it (false). (default false) | no | false |
Outputs
| name | description |
|---|---|
| report | Markdown report of star changes |
| report-html | HTML report of star changes (for email) |
| report-html-path | Path to a file containing the HTML report. Use this instead of report-html when piping into a custom mailer step, as large reports can exceed the shell environment variable size limit |
| total-stars | Total star count across all tracked repositories |
| stars-changed | Whether any star counts changed since last run (true/false) |
| new-stars | Number of new stars gained since last run |
| lost-stars | Number of stars lost since last run |
| should-notify | Whether the notification threshold was reached (true/false) |
| report-csv | CSV report of star changes |
| new-stargazers | Number of new stargazers detected since last run (0 if tracking disabled) |