Skip to content

A GitHub CLI plugin that helps open-source maintainers stay on top of repository activity across multiple projects.

License

Notifications You must be signed in to change notification settings

jackchuka/gh-oss-watch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OSS Watch πŸ“Š

Test Go Report Card

A GitHub CLI plugin that helps open-source maintainers stay on top of repository activity across multiple projects. Track stars, issues, pull requests, and more β€” all from your terminal.

Features

  • πŸ” Multi-repo tracking - Monitor multiple repositories from a single dashboard
  • πŸ“Š Activity monitoring - Track stars, issues, PRs, forks, etc...
  • πŸš€ Diff-based status - Only see new activity since your last check
  • 🎯 Configurable events - Choose which events to track per repository
  • πŸ“± Clean terminal UI - Beautiful CLI output with emojis and clear formatting

Installation

Prerequisites

  • GitHub CLI installed and authenticated
  • Go 1.24+ (if building from source)

GitHub CLI Extension

gh extension install jackchuka/gh-oss-watch

Install from Source

git clone https://github.com/jackchuka/gh-oss-watch.git
cd gh-oss-watch
go build -o gh-oss-watch .
# Copy to your PATH or use directly

Quick Start

  1. Initialize configuration:

    gh oss-watch init
  2. Add repositories to watch:

    gh oss-watch add facebook/react
    gh oss-watch add microsoft/vscode stars issues
  3. Check for new activity:

    gh oss-watch status
  4. View dashboard:

    gh oss-watch dashboard

Commands

Command Description Example
init Initialize config file gh oss-watch init
add <repo> [events...] Add repo to watch list gh oss-watch add owner/repo stars issues
set <repo> <events...> Configure events for repo gh oss-watch set owner/repo forks
remove <repo> Remove repo from watch list gh oss-watch remove owner/repo
status Show new activity since last check gh oss-watch status
dashboard Display summary across all repos gh oss-watch dashboard

Event Types

  • stars - Repository stars
  • issues - Issues created/reopened
  • pull_requests - Pull requests opened
  • forks - Repository forks

Configuration

Configuration is stored in ~/.gh-oss-watch/config.yaml:

repos:
  - repo: facebook/react
    events:
      - stars
      - issues
      - pull_requests
  - repo: microsoft/vscode
    events:
      - stars
      - forks

Example Output

Status Command

$ gh oss-watch status

πŸ“ˆ facebook/react:
  ⭐ +23 stars (219,432 total)
  πŸ› +5 issues (823 open)
  πŸ”€ +12 pull requests (156 open)

πŸ“ˆ microsoft/vscode:
  ⭐ +45 stars (158,234 total)
  🍴 +8 forks (26,789 total)

Dashboard Command

$ gh oss-watch dashboard

πŸ“Š OSS Watch Dashboard
======================

πŸ“ facebook/react
   ⭐ Stars: 219,432
   πŸ› Issues: 823
   πŸ”€ Pull Requests: 156
   🍴 Forks: 43,234
   πŸ“… Last Updated: 2024-01-15 14:23
   πŸ“’ Watching: stars, issues, pull_requests

πŸ“ˆ Total Across All Repos:
   ⭐ Total Stars: 377,666
   πŸ› Total Issues: 1,456
   πŸ”€ Total PRs: 289
   🍴 Total Forks: 70,023

Automation

Perfect for cron jobs or CI/CD pipelines:

# Check for activity every hour
0 * * * * /path/to/gh-oss-watch status

# Weekly dashboard summary
0 9 * * 1 /path/to/gh-oss-watch dashboard | mail -s "Weekly OSS Summary" you@example.com

Development

Project Structure

.
β”œβ”€β”€ cmd/                 # Command handlers
β”œβ”€β”€ services/           # Business logic & interfaces
β”‚   └── mock/          # Generated mocks
β”œβ”€β”€ .github/workflows/ # CI/CD pipelines
└── main.go           # Entry point

Building

go build -o gh-oss-watch .

Testing

# Run tests
go test ./...

# Run tests with race detection
go test -race ./...

# Generate mocks
cd services && go generate

Code Quality

# Format code
gofmt -s -w .

# Run linter
golangci-lint run

# Check formatting
gofmt -s -l .

Architecture

  • Modular design with clean separation of concerns
  • Dependency injection for testability
  • Generated mocks using mockgen for comprehensive testing
  • Interface-based architecture enabling easy mocking and testing
  • Caching system for efficient API usage and offline support

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for your changes
  5. Ensure all tests pass (go test ./...)
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

License

This project is licensed under the MIT License.

Acknowledgments

  • Built with GitHub CLI for seamless GitHub integration
  • Uses gomock for testing
  • Inspired by the need for better OSS project monitoring tools

Happy monitoring! πŸŽ‰ If you find this tool useful, please consider giving it a ⭐ on GitHub.

About

A GitHub CLI plugin that helps open-source maintainers stay on top of repository activity across multiple projects.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •  

Languages