Skip to content

Release Notes v0.10.0

This release adds powerful new profile output formats including README generation with contribution heatmaps, SVG stats cards with themes, and monthly activity charts. It also upgrades to go-github v84.

New Features

README.md Generation

Generate GitHub profile README files with contribution heatmaps directly from your profile data:

gogithub profile --user grokify --from 2024-01-01 --to 2024-12-31 \
    --output-readme README.md --readme-config config.json

Features

Feature Description
Contribution Heatmap GitHub-style calendar using Unicode blocks
Customizable Sections Configure via JSON config file
Template-Based Extensible Go templates

SVG Stats Cards

Generate embeddable stats cards with multiple theme support:

gogithub profile --user grokify --from 2024-01-01 --to 2024-12-31 \
    --output-svg stats.svg --svg-theme dracula --svg-title "My Stats"

Available Themes

Theme Description
default Light theme with blue accents
dark Dark background with light text
dracula Popular dark theme with purple accents
nord Arctic color palette
gruvbox Retro groove colors
solarized Precision colors for machines and people

Monthly Activity Charts

Generate monthly activity visualizations:

# SVG chart
gogithub profile --user grokify --from 2024-01-01 --to 2024-12-31 \
    --output-chart monthly.svg

# JSON IR for custom rendering
gogithub profile --user grokify --from 2024-01-01 --to 2024-12-31 \
    --output-chart-json chart-data.json

Chart Types

  • Bar Chart: Monthly commits, PRs, issues
  • Stacked Bar Chart: Commit type breakdown
  • JSON IR: Intermediate representation for custom chart libraries

GitHub Actions Workflow

Automatically update your profile README with latest stats:

# .github/workflows/update-profile-readme.yml
name: Update Profile README
on:
  schedule:
    - cron: '0 0 * * 0'  # Weekly
  workflow_dispatch:

jobs:
  update:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version: '1.25'
      - run: go install github.com/grokify/gogithub/cmd/gogithub@latest
      - run: |
          gogithub profile --user ${{ github.repository_owner }} \
            --from $(date -d '1 year ago' +%Y-%m-%d) \
            --output-readme README.md
      - uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "docs: update profile stats"

New CLI Flags

Flag Description
--output-readme Generate profile README.md file
--output-svg Generate SVG stats card
--output-chart Generate monthly chart SVG
--output-chart-json Generate chart data as JSON IR
--svg-theme Select stats card theme
--svg-title Custom title for stats card
--readme-config Path to README generation config

Breaking Changes

go-github v82 to v84: Update your imports:

// Before
import "github.com/google/go-github/v82/github"

// After
import "github.com/google/go-github/v84/github"

v84 changes that may affect you: - IssuesService.List split into ListAllIssues and ListUserIssues - IssuesService.ListByOrg now requires IssueListByOrgOptions

See go-github v84 release notes for details.

New Packages

profile/readme

Generate GitHub profile README files:

import "github.com/grokify/gogithub/profile/readme"

config := readme.DefaultConfig()
config.ShowHeatmap = true
config.HeatmapTitle = "Contribution Activity"

output, err := readme.Generate(profile, config)

profile/svg

Generate SVG visualizations:

import "github.com/grokify/gogithub/profile/svg"

// Stats card
card, err := svg.GenerateStatsCard(profile, svg.ThemeDracula, "My Stats")

// Monthly chart
chart, err := svg.GenerateMonthlyChart(profile.Timeline, svg.ChartOptions{
    Width:  800,
    Height: 400,
})

profile/svg/chart

Low-level chart primitives:

import "github.com/grokify/gogithub/profile/svg/chart"

data := chart.BarChartData{
    Labels: []string{"Jan", "Feb", "Mar"},
    Values: []int{10, 25, 15},
}
svg := chart.RenderBarChart(data, chart.DefaultOptions())

Dependencies

  • Upgraded github.com/google/go-github from v82 to v84

Upgrade Notes

  1. Update import paths from go-github/v82 to go-github/v84
  2. If using IssuesService.List, migrate to ListAllIssues or ListUserIssues
  3. All new features are additive - existing code should work without changes after import update
go get github.com/grokify/gogithub@v0.10.0