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-githubfrom v82 to v84
Upgrade Notes¶
- Update import paths from
go-github/v82togo-github/v84 - If using
IssuesService.List, migrate toListAllIssuesorListUserIssues - All new features are additive - existing code should work without changes after import update