Skip to main content
This page documents all available action inputs for GitHub Star Tracker. You can configure these in your workflow’s with: section.

Required Inputs

github-token
string
required
Personal Access Token (PAT) with repo or public_repo scope.Important: The default GITHUB_TOKEN does not work because it cannot push to protected branches or access all repositories.
with:
  github-token: ${{ secrets.PAT_TOKEN }}
Store your PAT as a repository secret and never commit it directly to your code.

GitHub Configuration

github-api-url
string
default:""
GitHub API base URL for GitHub Enterprise Server (e.g., https://github.example.com/api/v3).Auto-detected on GHES runners. Only needed if you’re using GitHub Enterprise Server.
with:
  github-api-url: https://github.example.com/api/v3
config-path
string
default:"star-tracker.yml"
Path to the configuration file (relative to repository root).
with:
  config-path: .github/star-tracker.yml

Repository Filtering

These inputs override corresponding values in the configuration file.
visibility
string
default:"all"
Repository visibility filter. Available options:
  • public - Only public repositories
  • private - Only private repositories
  • all - Both public and private repositories
  • owned - Only repositories you own (excludes organization repos where you’re a member)
with:
  visibility: public
include-archived
boolean
default:"false"
Include archived repositories in tracking.
with:
  include-archived: true
include-forks
boolean
default:"false"
Include forked repositories in tracking.
with:
  include-forks: true
exclude-repos
string
default:""
Comma-separated list of repository names or regex patterns to exclude.Regular expressions must be wrapped in forward slashes with optional flags: /pattern/flags
with:
  exclude-repos: old-repo, /^test-.*/, /^draft/i
Examples:
  • old-repo - Exact match
  • /^test-.*/ - Repos starting with “test-”
  • /draft/i - Repos containing “draft” (case-insensitive)
only-repos
string
default:""
Comma-separated list of repository names to exclusively track.When set, only these repositories will be tracked (ignoring all other filters).
with:
  only-repos: my-main-repo, my-other-repo
When only-repos is set, all other filtering options (visibility, include-archived, etc.) are ignored.
min-stars
number
default:"0"
Only track repositories with at least this many stars.
with:
  min-stars: 5

Data Storage

data-branch
string
default:"star-tracker-data"
Branch name for storing tracking data and historical snapshots.
with:
  data-branch: star-tracker-data
This branch is automatically created and managed by the action.
max-history
number
default:"52"
Maximum number of snapshots to keep in history.Older snapshots are automatically removed. Default is 52 (one year of weekly runs).
with:
  max-history: 100

Reports and Charts

include-charts
boolean
default:"true"
Include SVG charts in reports.Charts include:
  • Star history timeline
  • Repository comparison
  • Growth forecast
  • Individual repository trends
with:
  include-charts: false
locale
string
default:"en"
Language for reports and emails.Available locales:
  • en - English (English)
  • es - Spanish (Español)
  • ca - Catalan (Català)
  • it - Italian (Italiano)
with:
  locale: es
top-repos
number
default:"10"
Number of top repositories to feature in charts and forecasts (ranked by star count).
with:
  top-repos: 15
track-stargazers
boolean
default:"false"
Track individual stargazers and show new ones in reports.When enabled, the action will:
  • Track who stars your repositories
  • Show new stargazers since the last run
  • Include stargazer information in reports
with:
  track-stargazers: true
Tracking stargazers increases API calls and may take longer for repositories with many stars.

Email Notifications

smtp-host
string
default:""
SMTP server host. Providing this enables built-in email notifications.
with:
  smtp-host: smtp.gmail.com
smtp-port
number
default:"587"
SMTP server port.Common ports:
  • 587 - TLS/STARTTLS (recommended)
  • 465 - SSL
  • 25 - Unencrypted (not recommended)
with:
  smtp-port: 587
smtp-username
string
default:""
SMTP authentication username.
with:
  smtp-username: ${{ secrets.SMTP_USERNAME }}
smtp-password
string
default:""
SMTP authentication password.
with:
  smtp-password: ${{ secrets.SMTP_PASSWORD }}
Always store SMTP credentials as GitHub secrets.
email-to
string
default:""
Email recipient address.
with:
  email-to: [email protected]
email-from
string
default:"GitHub Star Tracker"
Email sender name or address.
with:
  email-from: Star Tracker <[email protected]>
send-on-no-changes
boolean
default:"false"
Send email even when no star changes are detected.
with:
  send-on-no-changes: true
notification-threshold
string
default:"auto"
Star change threshold before sending notification.Options:
  • 0 - Send on every run (regardless of changes)
  • <number> - Send when stars change by at least this amount (e.g., 5)
  • auto - Adaptive threshold based on total stars and history
with:
  notification-threshold: 5
The auto mode intelligently adjusts the threshold based on your repository activity patterns.

Complete Example

Here’s a workflow with all commonly used inputs:
.github/workflows/star-tracker.yml
name: Track GitHub Stars

on:
  schedule:
    - cron: '0 0 * * 0'  # Weekly on Sunday at midnight
  workflow_dispatch:

jobs:
  track:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        
      - name: Track stars
        uses: fbuireu/github-star-tracker@v2
        with:
          # Required
          github-token: ${{ secrets.PAT_TOKEN }}
          
          # Repository filtering
          visibility: public
          include-archived: false
          include-forks: false
          min-stars: 5
          
          # Data storage
          data-branch: star-tracker-data
          max-history: 52
          
          # Reports
          include-charts: true
          locale: en
          top-repos: 10
          track-stargazers: true
          
          # Email notifications
          smtp-host: smtp.gmail.com
          smtp-port: 587
          smtp-username: ${{ secrets.SMTP_USERNAME }}
          smtp-password: ${{ secrets.SMTP_PASSWORD }}
          email-to: [email protected]
          email-from: Star Tracker
          notification-threshold: auto

Next Steps

Filtering

Learn advanced repository filtering techniques

Notifications

Configure email notifications and thresholds

Build docs developers (and LLMs) love