Skip to main content
GitHub Star Tracker provides powerful filtering options to control which repositories are tracked. This is especially useful when you have many repositories but only want to monitor specific ones.

Filter Execution Order

Filters are applied in the following order:
  1. only-repos - If specified, only these repositories are tracked (all other filters are ignored)
  2. visibility - Filter by public/private/owned
  3. include-archived - Include or exclude archived repositories
  4. include-forks - Include or exclude forked repositories
  5. exclude-repos - Exclude specific repositories or patterns
  6. min-stars - Minimum star threshold
When only-repos is set, it takes precedence over all other filters. Use it when you want to track an explicit list of repositories.

Visibility Filter

The visibility option controls which repositories are fetched based on their visibility status.

Available Options

Tracks both public and private repositories you have access to.
visibility: all
Only public repositories.
visibility: public
Only private repositories.
visibility: private
Only repositories you own. Excludes organization repositories where you’re a member but not the owner.
visibility: owned

Configuration Examples

with:
  visibility: public

Repository Status Filters

Control whether archived and forked repositories are included.

Include Archived Repositories

By default, archived repositories are excluded. Enable this to track them:
with:
  include-archived: true

Include Forked Repositories

By default, forked repositories are excluded. Enable this to track them:
with:
  include-forks: true

Exclude Repositories

Exclude specific repositories by name or using regex patterns.

Exact Name Matching

Exclude repositories by their exact name:
with:
  exclude-repos: old-repo, test-repo, archived-project

Regex Patterns

Use regular expressions for pattern-based exclusions. Regex patterns must be wrapped in forward slashes with optional flags: /pattern/flags
with:
  exclude-repos: /^test-.*/, /^draft/i, /-old$/

Common Patterns

PatternDescriptionExample Matches
/^test-.*/Starts with “test-”test-app, test-lib
/.*-old$/Ends with “-old”project-old, app-old
/demo/iContains “demo” (case-insensitive)Demo-App, my-demo, DEMO
/^(temp|tmp)-.*/Starts with “temp-” or “tmp-”temp-repo, tmp-test
/[0-9]{4}$/Ends with 4 digitsbackup-2023, archive-2024

Implementation Details

The filtering logic is implemented in src/infrastructure/github/filters.ts:14-23:
function matchesExcludePattern({ name, patterns }: MatchesExcludePatternParams): boolean {
  return patterns.some((pattern) => {
    const match = REGEX_PATTERN.exec(pattern);
    if (match) {
      const regex = new RegExp(match[1], match[2]);
      return regex.test(name);
    }
    return name === pattern;
  });
}

Only Repositories (Allowlist)

Track only specific repositories, ignoring all other filters.
When only-repos is set, all other filters are ignored. This creates an explicit allowlist.
with:
  only-repos: my-main-repo, my-other-repo, important-project

Minimum Star Threshold

Only track repositories with at least a certain number of stars.
with:
  min-stars: 5
This is useful for focusing on your more popular repositories and reducing noise from new or experimental projects.

Filter Examples

Track only public repositories with at least 10 stars:
star-tracker.yml
visibility: public
include_archived: false
include_forks: false
min_stars: 10

Example 2: All Owned Repos Except Tests

Track all repositories you own, excluding test projects:
star-tracker.yml
visibility: owned
include_archived: true
include_forks: false
exclude_repos:
  - /^test-.*/
  - /.*-test$/
  - /demo/i

Example 3: Specific Projects Only

Track only your main projects:
star-tracker.yml
only_repos:
  - my-awesome-lib
  - my-popular-tool
  - flagship-project

Example 4: All Non-Fork Public Repos

Track all public repositories that aren’t forks, including archived ones:
star-tracker.yml
visibility: public
include_archived: true
include_forks: false
min_stars: 1

Example 5: Complex Filtering

Combine multiple filters for precise control:
star-tracker.yml
visibility: all
include_archived: false
include_forks: false
exclude_repos:
  - /^test-.*/        # No test repos
  - /^draft-.*/       # No draft repos
  - /-backup$/        # No backup repos
  - /^\..*/           # No repos starting with a dot
  - old-website
  - legacy-app
min_stars: 3

Testing Your Filters

To test your filtering configuration:
  1. Use workflow_dispatch: Run the action manually to see which repositories are tracked
  2. Check action logs: The action logs show how many repositories were found and filtered:
Config: visibility=public, includeArchived=false, includeForks=false
After filtering: 12 repos
  1. Use only-repos first: Start with an explicit list, then transition to filters once you understand the pattern

Filter Configuration Matrix

Here’s a quick reference for common filtering scenarios:
Scenariovisibilityinclude-archivedinclude-forksexclude-reposmin-stars
All my reposalltruetrue-0
Public repos onlypublicfalsefalse-0
Popular reposallfalsefalse-10
Production reposallfalsefalse/^test-.*/,/draft/i0
Personal projectsownedfalsefalse-0

Next Steps

Action Inputs

View all available configuration options

Notifications

Configure when to send notifications

Build docs developers (and LLMs) love