Release Notes v0.15.0¶
Release Date: 2026-08-01
This is a breaking change release that completes the version-isolation architecture. All public APIs now use clientv1.Client and stable gogithub.* types instead of exposing go-github types directly. This ensures consumers are insulated from go-github major version changes.
Breaking Changes¶
Package: search¶
Before (v0.14.0):
import "github.com/google/go-github/v88/github"
ghClient, _ := github.NewClient()
c := search.NewClient(ghClient)
result, _, _ := c.SearchIssues(ctx, qry, &github.SearchOptions{})
After (v0.15.0):
import "github.com/grokify/gogithub/clientv1"
client, _ := clientv1.NewClient(ctx, token)
c := search.NewClient(client)
result, _ := c.SearchIssues(ctx, qry, &clientv1.SearchOptions{})
search.NewClient()now acceptsclientv1.Clientinstead of*github.ClientSearchIssues()andSearchOpenPullRequests()now accept*clientv1.SearchOptionsinstead of*github.SearchOptionsIssuestype is now[]*gogithub.Issueinstead of[]*github.Issue
Package: repo¶
Before (v0.14.0):
import "github.com/google/go-github/v88/github"
batch, _ := repo.NewBatch(ctx, ghClient, owner, repo, branch, message)
After (v0.15.0):
import "github.com/grokify/gogithub/clientv1"
client, _ := clientv1.NewClient(ctx, token)
batch, _ := repo.NewBatch(ctx, client, owner, repo, branch, message)
repo.NewBatch()now acceptsclientv1.Clientinstead of*github.Client
Package: sarif¶
Before (v0.14.0):
import "github.com/google/go-github/v88/github"
result, _ := sarif.Upload(ctx, ghClient, owner, repo, data, opts)
status, _ := sarif.GetUploadStatus(ctx, ghClient, owner, repo, sarifID)
After (v0.15.0):
import "github.com/grokify/gogithub/clientv1"
client, _ := clientv1.NewClient(ctx, token)
result, _ := sarif.Upload(ctx, client, owner, repo, data, opts)
status, _ := sarif.GetUploadStatus(ctx, client, owner, repo, sarifID)
- All sarif functions now accept
clientv1.Clientinstead of*github.Client
Deprecated Packages¶
The following packages retain go-github types but are deprecated:
auth.NewGitHubClient()- Useclientv1.NewClient()insteadauth.GetAuthenticatedUser()- Useclient.GetAuthenticatedUser()insteadauth.GetUser()- Useclient.GetUser()insteadconfig.Config.NewClient()- Useconfig.Config.NewClientV1()insteadconfig.Config.MustNewClient()- Useconfig.Config.MustNewClientV1()instead
New Features¶
clientv1 Enhancements¶
- GitHub Enterprise support: New
NewClientWithOptions()function supports custom BaseURL and UploadURL - 60+ API methods: Comprehensive coverage for repositories, content, git data, pull requests, issues, commits, releases, checks, search, and more
- File content writes:
CreateFile,UpdateFile,DeleteFile, andGetFileContentWithSHAcover the Contents API - Git Data API for atomic commits:
GetTreeandCreateBlobjoin the existingCreateTree/CreateCommitso callers can build multi-file atomic commits (blobs → tree → commit → ref update) entirely throughclientv1 - Issue CRUD:
GetIssue,ListIssues,CreateIssue,UpdateIssue - Code search:
SearchCodealongside the existingSearchIssues - Stable types: All methods return
gogithub.*types that won't change with go-github updates
config Package¶
- New
Config.NewClientV1()andConfig.MustNewClientV1()methods returnclientv1.Client
Type Additions¶
New stable types and fields in the gogithub package:
Issue.RepositoryURL,Issue.Comments, andIssue.IsPullRequestfields (the latter lets callers filter pull requests out of issue listings without a go-github type)PullRequest.Labels,PullRequest.Additions,PullRequest.Deletions, andPullRequest.CommitsfieldsCommit.Treefield (the commit's root tree SHA, needed to resolve a base tree for atomic commits)TreeNode,CreateFileResult,DeleteFileResult,CodeSearchResult, andCodeResulttypes
Dependency Updates¶
github.com/google/go-githubupgraded from v88 to v89
Migration Guide¶
-
Replace client creation:
-
Update function calls:
- Replace
*github.Clientparameters withclientv1.Client - Replace
*github.SearchOptionswith*clientv1.SearchOptions -
Replace
*github.Issuewith*gogithub.Issue -
Import changes:
-
For advanced use cases requiring direct go-github access:
Installation¶
See CHANGELOG.md for the categorized commit list.