Filter Execution Order
Filters are applied in the following order:- only-repos - If specified, only these repositories are tracked (all other filters are ignored)
- visibility - Filter by public/private/owned
- include-archived - Include or exclude archived repositories
- include-forks - Include or exclude forked repositories
- exclude-repos - Exclude specific repositories or patterns
- 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
Thevisibility option controls which repositories are fetched based on their visibility status.
Available Options
all (default)
all (default)
Tracks both public and private repositories you have access to.
public
public
Only public repositories.
private
private
Only private repositories.
owned
owned
Only repositories you own. Excludes organization repositories where you’re a member but not the owner.
Configuration Examples
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:Include Forked Repositories
By default, forked repositories are excluded. Enable this to track them:Exclude Repositories
Exclude specific repositories by name or using regex patterns.Exact Name Matching
Exclude repositories by their exact name:Regex Patterns
Use regular expressions for pattern-based exclusions. Regex patterns must be wrapped in forward slashes with optional flags:/pattern/flags
Common Patterns
| Pattern | Description | Example Matches |
|---|---|---|
/^test-.*/ | Starts with “test-” | test-app, test-lib |
/.*-old$/ | Ends with “-old” | project-old, app-old |
/demo/i | Contains “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 digits | backup-2023, archive-2024 |
Implementation Details
The filtering logic is implemented insrc/infrastructure/github/filters.ts:14-23:
Only Repositories (Allowlist)
Track only specific repositories, ignoring all other filters.Minimum Star Threshold
Only track repositories with at least a certain number of stars.Filter Examples
Example 1: Only Popular Public Repositories
Track only public repositories with at least 10 stars:star-tracker.yml
Example 2: All Owned Repos Except Tests
Track all repositories you own, excluding test projects:star-tracker.yml
Example 3: Specific Projects Only
Track only your main projects:star-tracker.yml
Example 4: All Non-Fork Public Repos
Track all public repositories that aren’t forks, including archived ones:star-tracker.yml
Example 5: Complex Filtering
Combine multiple filters for precise control:star-tracker.yml
Testing Your Filters
To test your filtering configuration:- Use workflow_dispatch: Run the action manually to see which repositories are tracked
- Check action logs: The action logs show how many repositories were found and filtered:
- 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:| Scenario | visibility | include-archived | include-forks | exclude-repos | min-stars |
|---|---|---|---|---|---|
| All my repos | all | true | true | - | 0 |
| Public repos only | public | false | false | - | 0 |
| Popular repos | all | false | false | - | 10 |
| Production repos | all | false | false | /^test-.*/,/draft/i | 0 |
| Personal projects | owned | false | false | - | 0 |
Next Steps
Action Inputs
View all available configuration options
Notifications
Configure when to send notifications