Skip to content

Release Notes v0.9.0

This release adds the Profile Viewer web application, release statistics, and improved progress reporting.

New Features

Profile Viewer Web Application

A new web application for visualizing GitHub contribution statistics generated by gogithub profile:

# Generate profile data
gogithub profile --user grokify --from 2024-01-01 --to 2024-12-31 \
    --include-releases --output-raw profile.json

# Open the Profile Viewer and drag-and-drop your JSON file

Features

Feature Description
Stats Card Embeddable SVG showing commits, PRs, issues, reviews, code changes
Contribution Calendar GitHub-style green heatmap with daily tooltips
Monthly Charts Bar and line charts for activity trends
Top Repositories Sortable table by commits or code changes
Dark Mode Automatic theme switching with manual toggle
Export Download stats card as SVG or PNG

Usage Options

  1. Interactive Mode: Visit the hosted viewer, drag and drop your JSON file
  2. Personal Static Site: Deploy to GitHub Pages with automatic weekly updates

See the Profile Viewer Guide for deployment instructions.

Release Statistics

New --include-releases flag fetches release counts for contributed repositories:

gogithub profile --user grokify --from 2024-01-01 --to 2024-12-31 \
    --include-releases --output-raw raw.json

New JSON Fields

Field Location Description
net_additions Aggregate Total additions minus deletions
total_releases Aggregate Total releases across all repos
releases Monthly Releases per month

API Overhead

Without --include-releases With --include-releases
2-4 GraphQL calls total 2-4 GraphQL calls + 1 REST call per repository

For a user with 71 contributed repositories, enabling releases adds 71+ API calls. Use --output-raw to cache results.

Progress Callback for Commit Stats

New progress reporting capability in the graphql package:

import "github.com/grokify/gogithub/graphql"

progress := func(current, total int) {
    fmt.Printf("Processing repository %d/%d\n", current, total)
}

stats, err := graphql.GetCommitStatsWithProgress(
    ctx, client, username, from, to, visibility, progress)

Changes

Improved Progress Display

The CLI now uses mogo/fmt/progress.MultiStageRenderer for consistent progress rendering:

  • Per-repository progress updates during commit detail fetching
  • Consistent alignment with percentage after progress bar

Monthly Activity

The MonthlyActivity type now includes a Releases field:

type MonthlyActivity struct {
    Year    int
    Month   time.Month
    Commits  int
    Issues   int
    PRs      int
    Reviews  int
    Releases int  // NEW
    Additions int
    Deletions int
}

Documentation

  • Profile Viewer Guide - Complete guide for the web app
  • Updated CLI Guide with release data documentation
  • Added release data caching recommendations

Dependencies

  • Updated github.com/grokify/mogo from v0.72.7 to v0.73.0 for fmt/progress package

Upgrade Notes

This release is fully backward compatible. The new fields in JSON output are additive.

To use the new features:

  1. Update to v0.9.0: go get github.com/grokify/gogithub@v0.9.0
  2. Regenerate profile data with --include-releases to populate release counts
  3. Use the Profile Viewer to visualize your data