Skip to content

v0.2.0 Release Notes

Release Date: 2026-08-01

Agent Code Review v0.2.0 is a breaking change release that migrates the Go SDK's GitHub client from a raw go-github client to gogithub's version-isolated clientv1.Client. This resolves a module-graph conflict that had left the project unbuildable, and removes the direct go-github dependency going forward.

Highlights

  • Breaking: pkg/review now wraps clientv1.Client instead of *github.Client
  • Dependency conflict resolved — go-github v84 (direct) and v88/v89 (pulled in transitively via other dependencies) could no longer coexist in the module graph
  • No more direct go-github dependencygithub.com/google/go-github/v84 is gone from go.mod; GitHub App auth is adapted internally via clientv1.NewClientFromRaw

Breaking Changes

review.NewClient()

Before (v0.1.0):

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

gh := github.NewClient(nil).WithAuthToken(token)
client := review.NewClient(gh)

After (v0.2.0):

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

gh, err := clientv1.NewClient(ctx, token)
if err != nil {
    panic(err)
}
client := review.NewClient(gh)

review.NewClient() now takes a clientv1.Client instead of a raw *github.Client.

review.NewClientFromToken()

Before (v0.1.0):

client := review.NewClientFromToken(ctx, "your-github-token")

After (v0.2.0):

client, err := review.NewClientFromToken(ctx, "your-github-token")
if err != nil {
    panic(err)
}

review.NewClientFromToken() now returns (*Client, error) instead of *Client, since building a clientv1.Client can fail.

review.NewClientFromAppConfig()

Unchanged — this constructor already returned (*Client, error).

Why This Happened

gogithub v0.15.0 migrated its pr and auth packages to clientv1.Client as part of its own version-isolation work. That was itself a breaking change for any code, like this SDK's pkg/review, that still passed a raw *github.Client into those packages. Upgrading gogithub without migrating pkg/review was not possible — the two changes had to land together.

Migrating to clientv1.Client also fixes the root problem that motivated the upgrade: this project directly required github.com/google/go-github/v84, while other dependencies (including the previous gogithub version) pulled in v88/v89 transitively. Two different major versions of the same package existed as two different Go types, and the module simply would not build. Routing through clientv1.Client — which wraps whichever go-github version gogithub uses internally — removes the direct dependency entirely, so this conflict can't recur.

Migration Guide

  1. Replace client creation:

    // Old
    gh := github.NewClient(nil).WithAuthToken(token)
    client := review.NewClient(gh)
    
    // New
    gh, err := clientv1.NewClient(ctx, token)
    client := review.NewClient(gh)
    

  2. Handle the new error return from NewClientFromToken:

    // Old
    client := review.NewClientFromToken(ctx, token)
    
    // New
    client, err := review.NewClientFromToken(ctx, token)
    

  3. Update imports:

    // Remove
    "github.com/google/go-github/v84/github"
    
    // Add
    "github.com/grokify/gogithub/clientv1"
    

GitHub App authentication (review.NewClientFromAppConfig) requires no changes — its signature was already (*Client, error).

Dependencies

Package Version Purpose
github.com/grokify/gogithub v0.15.0 (was v0.11.0) Version-isolated GitHub client (clientv1.Client)
github.com/plexusone/omnillm v0.17.0 (was v0.14.0) Multi-LLM integration
github.com/modelcontextprotocol/go-sdk v1.7.0 MCP server
github.com/spf13/cobra v1.10.2 CLI framework

github.com/google/go-github/v84 is no longer a direct dependency.

Documentation

  • README, Go SDK Guide, and Home examples updated for clientv1.Client
  • Applied a unified PlexusOne MkDocs theme