This page provides complete, copy-paste-ready workflow configurations for common scenarios.
Basic Configuration
Minimal Setup
The simplest configuration for tracking all your public repositories.
name: Track Stars
on:
schedule:
- cron: '0 0 * * *' # Daily at midnight UTC
workflow_dispatch: # Manual trigger
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
What this does:
- Tracks all repositories (public and private)
- Runs daily at midnight UTC
- Generates charts and reports
- Stores data in
star-tracker-data branch
Public Repositories Only
Track only your public repositories.
name: Track Public Stars
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
visibility: 'public'
Personal Repositories Only (Exclude Organizations)
Track only repositories you personally own, excluding organization repos.
name: Track Personal Stars
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
visibility: 'owned'
Filtering & Customization
Filter by Minimum Stars
Only track repositories with at least 10 stars.
name: Track Popular Repos
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
min-stars: '10'
include-archived: false
include-forks: false
Use case: Focus on your most popular projects and ignore test repos.
Exclude Specific Repositories
Exclude test, demo, or archived repositories using patterns.
name: Track Production Repos
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
exclude-repos: 'test-repo,sandbox,/^demo-.*$/,/^archive-/'
include-archived: false
Pattern syntax:
- Exact match:
test-repo
- Regex:
/^demo-.*$/ (matches repos starting with “demo-”)
Track Only Specific Repositories
Exclusively track a handful of important repositories.
name: Track Key Projects
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
only-repos: 'my-app,my-library,my-tool'
Email Notifications
Gmail Notifications
Send email notifications via Gmail when stars change.
name: Track Stars with Gmail Alerts
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
smtp-host: 'smtp.gmail.com'
smtp-port: '587'
smtp-username: ${{ secrets.GMAIL_USERNAME }}
smtp-password: ${{ secrets.GMAIL_APP_PASSWORD }}
email-to: '[email protected]'
email-from: 'GitHub Star Tracker'
notification-threshold: '0'
For Gmail, use an App Password, not your regular Google account password.
Setup steps:
- Generate a Gmail App Password
- Add to repository secrets:
GMAIL_USERNAME: your full email
GMAIL_APP_PASSWORD: the 16-character app password
Adaptive Notifications
Use intelligent threshold based on repository size.
name: Track Stars with Smart Alerts
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
smtp-host: ${{ secrets.SMTP_HOST }}
smtp-port: '587'
smtp-username: ${{ secrets.SMTP_USERNAME }}
smtp-password: ${{ secrets.SMTP_PASSWORD }}
email-to: ${{ secrets.NOTIFICATION_EMAIL }}
notification-threshold: 'auto' # Adaptive thresholds
Auto mode behavior:
- Small repos (< 100 stars): Notify on 1+ change
- Medium repos (100-1000): Notify on 5+ changes
- Large repos (> 1000): Notify on 10+ changes
Threshold-based Notifications
Only notify when 5 or more stars change.
name: Track Stars with Threshold
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
smtp-host: ${{ secrets.SMTP_HOST }}
smtp-port: '587'
smtp-username: ${{ secrets.SMTP_USERNAME }}
smtp-password: ${{ secrets.SMTP_PASSWORD }}
email-to: ${{ secrets.NOTIFICATION_EMAIL }}
notification-threshold: '5' # Only when ≥5 stars change
Advanced Features
Stargazer Tracking
Track individual users who star your repositories.
name: Track Stars and Stargazers
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
track-stargazers: true
top-repos: '5' # Reduce for faster execution
Stargazer tracking requires additional API calls and increases execution time. Best for users with fewer repositories.
What you get:
- List of new stargazers with avatars
- GitHub profiles and timestamps
- Links to stargazer profiles in reports
Multi-language Reports
Generate reports in Spanish.
name: Seguimiento de Estrellas
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
locale: 'es' # Spanish (options: en, es, ca, it)
Supported languages:
en: English (default)
es: Spanish
ca: Catalan
it: Italian
Extended History
Keep 2 years of historical data instead of the default 52 weeks.
name: Track Stars with Extended History
on:
schedule:
- cron: '0 0 * * 0' # Weekly (Sunday)
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
max-history: '104' # 2 years of weekly snapshots
Custom Data Branch
Store tracking data in a custom branch name.
name: Track Stars
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
data-branch: 'metrics-data' # Custom branch name
Scheduling Patterns
Multiple Times Per Day
Run at 8 AM and 8 PM UTC.
on:
schedule:
- cron: '0 8,20 * * *' # 8 AM and 8 PM UTC
workflow_dispatch:
Weekly on Specific Day
Run every Sunday at midnight.
on:
schedule:
- cron: '0 0 * * 0' # Sunday (0 = Sunday, 6 = Saturday)
workflow_dispatch:
First Day of Month
Run on the 1st of each month.
on:
schedule:
- cron: '0 0 1 * *' # 1st day of month at midnight
workflow_dispatch:
Every 6 Hours
on:
schedule:
- cron: '0 */6 * * *' # Every 6 hours
workflow_dispatch:
Use crontab.guru to generate and understand cron expressions.
Output Chaining
Use Outputs in Subsequent Steps
Access star data in other workflow steps.
name: Track Stars and Post to Slack
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
id: tracker
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
- name: Post to Slack
if: steps.tracker.outputs.stars-changed == 'true'
uses: slackapi/slack-github-action@v1
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK }}
payload: |
{
"text": "⭐ Star Update!",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Total Stars:* ${{ steps.tracker.outputs.total-stars }}\n*New Stars:* +${{ steps.tracker.outputs.new-stars }}\n*Lost Stars:* -${{ steps.tracker.outputs.lost-stars }}"
}
}
]
}
Save CSV to Artifact
Store CSV reports as workflow artifacts.
name: Track Stars and Save CSV
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
id: tracker
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
- name: Save CSV Report
run: |
echo '${{ steps.tracker.outputs.report-csv }}' > stars-report.csv
- name: Upload CSV Artifact
uses: actions/upload-artifact@v4
with:
name: star-report
path: stars-report.csv
retention-days: 30
Conditional Execution
Only run subsequent steps if stars changed significantly.
name: Track Stars with Conditional Actions
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
id: tracker
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
notification-threshold: '10'
- name: Celebrate Milestone
if: steps.tracker.outputs.should-notify == 'true'
run: |
echo "🎉 Significant star changes detected!"
echo "New stars: ${{ steps.tracker.outputs.new-stars }}"
# Add custom celebration logic here
GitHub Enterprise
GitHub Enterprise Server (GHES)
Auto-detection (no configuration needed on GHES runners):
name: Track Stars (GHES)
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: self-hosted # GHES runner
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
# github-api-url is auto-detected
Manual API URL specification:
name: Track Stars (GHES Manual)
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
github-api-url: 'https://github.example.com/api/v3'
Configuration File
Using YAML Config File
Store configuration in a separate file for better organization.
Workflow: .github/workflows/star-tracker.yml
name: Track Stars
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
contents: write
jobs:
track:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4 # Required to access config file
- uses: fbuireu/github-star-tracker@v1
with:
github-token: ${{ secrets.GITHUB_STAR_TRACKER_TOKEN }}
config-path: 'star-tracker.yml'
Config file: star-tracker.yml (in repository root)
visibility: public
locale: en
include-charts: true
max-history: 52
top-repos: 10
track-stargazers: false
include-archived: false
include-forks: false
min-stars: 5
exclude-repos:
- test-repo
- /^demo-.*$/
reporting:
email:
smtp_host: smtp.gmail.com
smtp_port: 587
smtp_username: ${{ secrets.SMTP_USERNAME }}
smtp_password: ${{ secrets.SMTP_PASSWORD }}
email_to: [email protected]
email_from: GitHub Star Tracker
notification_threshold: auto
send_on_no_changes: false
Workflow inputs override config file values. This allows for environment-specific overrides.
More Examples
Configuration Guide
Complete list of all configuration options
API Reference
All outputs and data formats
Email Notifications
Detailed email setup and providers
Viewing Reports
How to access and embed reports