deps(go): bump module github.com/jferrl/go-githubauth to v1.6.0#8615
Merged
olblak merged 2 commits intoApr 25, 2026
Merged
Conversation
Made with ❤️️ by updatecli
Made with ❤️️ by updatecli
olblak
approved these changes
Apr 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
deps(go): bump module github.com/jferrl/go-githubauth
clean: go mod tidy
ran shell command "go mod tidy"
deps(go): bump module github.com/jferrl/go-githubauth to v1.6.0
go.mod updated Module path "github.com/jferrl/go-githubauth" version from "v1.5.1" to "v1.6.0"
v1.6.0
## ✨ Features ### External key store support for GitHub App JWTs Added `NewApplicationTokenSourceFromSigner` which accepts any `crypto.Signer` with an RSA public key. Enables signing via AWS KMS, GCP KMS, Azure Key Vault, HashiCorp Vault Transit, PKCS#11 HSMs, or ssh-agent — the private key never touches process memory. Validates at construction that the signer's public key is `*rsa.PublicKey` (GitHub requires RS256). ```go signer, _ := kms.NewSigner(ctx, keyID) // any crypto.Signer backed by RSA ts, err := githubauth.NewApplicationTokenSourceFromSigner(appID, signer) ``` ### Proactive token refresh with configurable skew New `ReuseTokenSourceWithSkew` refreshes cached tokens when `time.Until(exp) <= skew` instead of waiting for expiry to pass. Closes the in-flight 401 window where a request starts shortly before expiry and reaches GitHub already expired. `NewApplicationTokenSource` and `NewInstallationTokenSource` now wrap with `DefaultExpirySkew` (30s); tune via `WithExpirySkew` / `WithInstallationExpirySkew`. Zero/negative skew delegates to `oauth2.ReuseTokenSource` verbatim for backwards compatibility. ### Automatic retry on installation token throttling `createInstallationToken` now performs a single automatic retry when GitHub returns `429`, or `403` with `Retry-After` / `X-RateLimit-Reset` headers. Sleep honors context cancellation and is capped at 60s. Terminal throttle errors wrap `ErrRateLimited` for `errors.Is` branching. Opt out via `WithRetryOnThrottle(false)`. ### New `webhook` subpackage Added a `webhook` package for verifying GitHub webhook deliveries using constant-time HMAC-SHA256: - `Verify(secret, body, signature)` with sentinel errors (`ErrMissingSignature`, `ErrInvalidSignatureFormat`, `ErrSignatureMismatch`) wrapped for `errors.Is` / `errors.As`. - `Middleware(secret, opts...)` `net/http` middleware with body restoration, 25 MiB default cap, and 401/413 short-circuits. - Functional options `WithMaxPayloadSize` and `WithErrorHandler`. - Suitable for direct use in queue, Lambda, or Cloud Run consumers. ```go http.Handle("/webhook", webhook.Middleware(secret)(handler)) ``` ## 📦 Dependencies - Bump `golang.org/x/oauth2` from 0.34.0 → 0.36.0 - Bump `codecov/codecov-action` 5 → 6 - Bump `styfle/cancel-workflow-action` 0.13.0 → 0.13.1 ## ⚠️ Breaking / Behavior Changes - **Minimum Go version is now 1.25** (transitively required by `golang.org/x/oauth2` v0.36.0). README previously claimed 1.21; the actual floor is now enforced. - Token sources refresh **30s before expiry** by default. Set skew to `0` via `WithExpirySkew(0)` / `WithInstallationExpirySkew(0)` to restore prior behavior. **Full Changelog**: https://github.com/jferrl/go-githubauth/compare/v1.5.1...v1.6.0v1.5.1
Created automatically by Updatecli
Options:
Most of Updatecli configuration is done via its manifest(s).
Feel free to report any issues at github.com/updatecli/updatecli.
If you find this tool useful, do not hesitate to star our GitHub repository as a sign of appreciation, and/or to tell us directly on our chat!