Over the years, GitHub organizations tend to accumulate repositories. Some are actively maintained, others slowly fade into obscurity, and a few become completely forgotten. Without a systematic way to assess repository health across an entire organization, it’s easy to lose track of what’s actively maintained and what’s collecting digital dust.

I built Patina to solve this problem.

What is Patina?

Patina is a command-line tool that scans GitHub organizations to identify and assess repository freshness. The name comes from the surface coating that forms on materials over time—a fitting metaphor for detecting code that’s been left untouched.

The tool analyzes when repositories were last updated and categorizes them into three freshness levels:

  • 🟢 Green: Updated within 2 months - actively maintained
  • 🟡 Yellow: Updated 2-6 months ago - aging
  • 🔴 Red: Not updated in over 6 months - stale

Why Build This?

As organizations grow, so does their repository count. Without automated scanning, answering simple questions becomes surprisingly difficult:

  • Which repositories are actually being maintained?
  • What projects might be candidates for archiving?
  • Are there forgotten codebases that need attention?

I wanted a tool that could quickly audit an entire organization and provide clear, actionable insights about repository health.

Key Features

Patina provides three primary commands:

patina scan

Get a quick overview of your organization’s repository health:

$ patina scan scottbrown
Scanning organization: scottbrown
Using cached data from 2025-12-04

Organization Summary:
  Green (fresh): 8 repositories
  Yellow (aging): 3 repositories
  Red (stale): 12 repositories

Top 10 Most Stale Repositories:
  1. 🔴 old-project (2 years, 3 months ago)
  2. 🔴 legacy-api (1 year, 8 months ago)
  ...

The scan command gives you an immediate sense of your organization’s health with colour-coded summaries and highlights the repositories that need the most attention.

patina list

View a complete inventory of all repositories with detailed freshness information:

$ patina list scottbrown --freshness red

This shows all repositories with their ages and freshness status, and you can filter by specific freshness levels to focus on repos that need review.

patina report

Generate a professional HTML report perfect for sharing with stakeholders:

$ patina report scottbrown --output report.html

The report includes:

  • Summary cards with colour-coded repository counts
  • An interactive CSS-based pie chart showing freshness distribution
  • A sortable, filterable table with direct links to each repository on GitHub
  • Professional styling suitable for presentations

Technical Highlights

Patina is written in Go and follows idiomatic Go conventions throughout. Some notable technical decisions:

Smart Authentication: Patina tries to use the GITHUB_TOKEN environment variable first, then falls back to the GitHub CLI (gh) for authentication. This means zero configuration in most development environments.

Intelligent Caching: To minimize API quota usage, Patina caches organization data for 30 days. You can force a refresh with the --refresh flag when you need fresh data.

Clean Architecture: The codebase uses interface-based design for testability, with separate concerns for GitHub API interaction, caching, and freshness calculation. No external mocking libraries—just clean, idiomatic Go.

Professional CLI: Built with Cobra, Patina provides a polished command-line experience with helpful descriptions, proper flag handling, and clear output formatting.

Installation

Patina is distributed as a single binary. You can install it using Go:

go install github.com/scottbrown/patina/cmd/patina@latest

Or download pre-built binaries from the releases page.

Use Cases

I’ve found Patina particularly useful for:

  1. Organization Audits: Quickly identify which repositories need attention
  2. Repository Cleanup: Find candidates for archiving or consolidation
  3. Project Health Reports: Generate dashboards for stakeholders or management
  4. CI/CD Integration: Run automated scans and publish HTML reports
  5. Team Accountability: Identify teams with stale codebases that might need intervention

Try It Out

Patina is open source and available on GitHub at github.com/scottbrown/patina.

If you manage GitHub organizations—whether for work, open source projects, or personal use—give it a try and let me know what you think. Issues and pull requests are welcome!

The next time you wonder which repositories in your organization are actively maintained versus forgotten relics, just run patina scan and get your answer in seconds.