github-stargazers

module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 4, 2025 License: MIT

README

GitHub Stargazers Tracker

Go Report Card Go Reference GitHub release

A Go application built with Cobra CLI that tracks stargazers for your GitHub repositories over time. It helps you monitor the growth and changes in your repository's stargazers.

Features

  • Track stargazers for all your GitHub repositories
  • Store historical stargazer data in SQLite database
  • Identify new and lost stargazers between runs
  • Simple configuration with environment variables
  • Lightweight and fast execution
  • Modern CLI interface with subcommands
  • Easy to extend with new commands

Prerequisites

  • Go 1.25 or higher
  • GitHub Personal Access Token with public_repo scope
  • Git

Installation

From Source
  1. Clone the repository:

    git clone https://github.com/dbunt1tled/github-stargazers.git
    cd github-stargazers
    
  2. Build the application:

    go build -o github-stargazers ./cmd/main.go
    
Using Go Install
go install github.com/dbunt1tled/github-stargazers/cmd/github-stargazers@latest

Configuration

  1. Copy the example environment file:

    cp .env.example .env
    
  2. Edit the .env file with your GitHub credentials:

    GITHUB_USERNAME="your-github-username"
    GITHUB_TOKEN="your-github-token"
    DATABASE_PATH="./data.db"
    

Available Commands

Track Stargazers

Fetch and track stargazers for all your repositories:

./github-stargazers stargazers

This command will:

  1. Fetch all repositories for the specified GitHub user
  2. Get current stargazers for each repository
  3. Store the data in the SQLite database
  4. Show new and lost stargazers compared to the previous run
List Unstarred Users

List users who have unstarred your repositories:

./github-stargazers unstar
Help

Get help about any command:

./github-stargazers help

Or for a specific command:

./github-stargazers help stargazers
./github-stargazers help unstar

Project Structure

.
├── cmd/
│   └── main.go               # Main application entry point
├── internal/
│   ├── cli/                  # CLI command implementations using Cobra
│   │   ├── root.go           # Root command and command setup
│   │   ├── stat.go           # Stargazers statistics command
│   │   └── unstargazer.go    # Unstargazer tracking command
│   ├── config/               # Configuration management
│   ├── db/                   # Database operations
│   └── github/               # GitHub API client
├── .env.example             # Example environment variables
├── go.mod                   # Go module definition
└── go.sum                   # Go module checksums

Building and Running

Build
go build -o github-stargazers ./cmd/main.go
Run
./github-stargazers
Run with custom config
GITHUB_USERNAME=your-username GITHUB_TOKEN=your-token ./github-stargazers

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Directories

Path Synopsis
internal
cli
db

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL