Skip to main content
GitHub Star Tracker offers flexible configuration through two methods:
  1. GitHub Action inputs - Configure directly in your workflow file
  2. YAML configuration file - Use a separate config file for easier management

Configuration Priority

Configuration values are resolved in the following order (highest to lowest priority):
  1. Action inputs - Values specified in your workflow’s with: section
  2. Configuration file - Values from star-tracker.yml (or custom config path)
  3. Default values - Built-in defaults when no value is provided
This means action inputs will always override configuration file settings, giving you flexibility to use a base configuration file while overriding specific values per workflow.

Quick Example

Using Action Inputs

steps:
  - name: Track stars
    uses: fbuireu/github-star-tracker@v2
    with:
      github-token: ${{ secrets.PAT_TOKEN }}
      visibility: public
      include-forks: false
      min-stars: 5
      locale: en

Using Configuration File

Create star-tracker.yml in your repository root:
visibility: public
include_forks: false
min_stars: 5
locale: en
Then reference it in your workflow:
steps:
  - name: Track stars
    uses: fbuireu/github-star-tracker@v2
    with:
      github-token: ${{ secrets.PAT_TOKEN }}
      config-path: star-tracker.yml

Configuration File Location

By default, the action looks for star-tracker.yml in the root of your repository. You can specify a custom location:
with:
  config-path: .github/configs/star-tracker.yml
The configuration file uses snake_case (e.g., include_forks), while action inputs use kebab-case (e.g., include-forks).

Configuration Categories

Configuration options are organized into several categories:

Inputs

Core action inputs including GitHub authentication and config paths

Filtering

Control which repositories to track and which to exclude

Notifications

Configure email notifications and SMTP settings

Localization

Set language preferences for reports and emails

Complete Example

Here’s a comprehensive configuration showing all available options:
star-tracker.yml
# Repository filtering
visibility: all
include_archived: false
include_forks: false
exclude_repos:
  - old-repo
  - /^test-.*/  # Regex pattern
only_repos: []   # Leave empty to track all (respecting filters above)
min_stars: 1

# Data storage
data_branch: star-tracker-data
max_history: 52

# Reports
include_charts: true
locale: en
top_repos: 10
track_stargazers: false

# Notifications (optional)
notification_threshold: auto

Default Values

When no configuration is provided, these defaults are used:
SettingDefaultDescription
visibilityallTrack all repositories (public + private)
include_archivedfalseExclude archived repositories
include_forksfalseExclude forked repositories
min_stars0No minimum star threshold
data_branchstar-tracker-dataBranch for storing tracking data
max_history52Keep 52 snapshots (~1 year of weekly runs)
include_chartstrueGenerate SVG charts in reports
localeenEnglish language
notification_thresholdautoAdaptive notification threshold
top_repos10Show top 10 repositories
track_stargazersfalseDon’t track individual stargazers

Next Steps

Action Inputs

View all available action inputs with detailed descriptions

Filtering Options

Learn how to filter repositories effectively

Build docs developers (and LLMs) love