Repository navigation
Update to Go 1.27 and port to the stdlib uuid package - #831
Merged
Merged
Conversation
Co-authored-by: tg123 <170430+tg123@users.noreply.github.com>
…ecvLogs EOF) Co-authored-by: tg123 <170430+tg123@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The Go 1.27 bump currently prevents the required Go CodeQL analysis from building either module.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates sshpiper to Go 1.27 and replaces direct google/uuid usage with the standard-library UUID package.
Changes:
- Updates Go versions across modules, CI, Docker, and documentation.
- Migrates UUID generation and parsing to
uuid. - Replaces deprecated upstream fields and handles normal log-stream EOF.
File summaries
| File | Description |
|---|---|
.github/copilot-instructions.md |
Updates the workspace example. |
.github/workflows/release.yaml |
Uses Go 1.27 for releases. |
.github/workflows/test.yml |
Uses Go 1.27 for tests. |
Dockerfile |
Updates the Go builder image. |
cmd/sshpiperd/go.mod |
Updates Go and removes direct UUID dependency. |
cmd/sshpiperd/internal/plugin/chain.go |
Migrates UUID generation. |
cmd/sshpiperd/internal/plugin/grpc.go |
Migrates UUIDs and handles EOF. |
e2e/admin_test.go |
Migrates UUID imports. |
e2e/banner_test.go |
Migrates UUID imports. |
e2e/connmeta_test.go |
Migrates UUID imports. |
e2e/docker_test.go |
Migrates UUID imports. |
e2e/failtoban_test.go |
Migrates UUID imports. |
e2e/fixed_test.go |
Migrates UUID imports. |
e2e/forwarding_test.go |
Migrates UUID imports. |
e2e/kubernetes_test.go |
Migrates UUID imports. |
e2e/lua_test.go |
Migrates UUID imports. |
e2e/revtunnel_test.go |
Migrates UUID imports. |
e2e/screenrecording_test.go |
Migrates UUID imports. |
e2e/sendenv_test.go |
Migrates UUID imports. |
e2e/stdout_test.go |
Migrates UUID imports. |
e2e/testplugin/benchmark/main.go |
Uses URI-based upstream configuration. |
e2e/testplugin/testcreateconnplugin/main.go |
Migrates UUID generation. |
e2e/workingdir_test.go |
Migrates UUID imports. |
e2e/yaml_test.go |
Migrates UUID imports. |
go.mod |
Updates Go and demotes UUID to indirect. |
libplugin/skel/skel.go |
Uses URI-based upstream configuration. |
plugin/fixed/main.go |
Uses URI-based upstream configuration. |
plugin/revtunnel/plugin_config.go |
Migrates UUID parsing. |
plugin/revtunnel/server.go |
Migrates UUID generation. |
plugin/revtunnel/store_file.go |
Updates UUID documentation. |
plugin/username-router/main.go |
Uses URI-based upstream configuration. |
Review details
- Files reviewed: 31/31 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Co-authored-by: tg123 <170430+tg123@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The latest Go CodeQL check still fails under Go 1.26.6, while the replacement workflow remains blocked pending approval and default-setup reconfiguration.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 32/32 changed files
- Comments generated: 0 new
- Review effort level: Balanced
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
hhuuggoo
added a commit
to saturncloud/sshpiper
that referenced
this pull request
Oct 22, 2026
From upstream 509a64d (tg123#831), without its Go 1.27 and uuid changes: - skel, fixed, username-router and the benchmark test plugin set the upstream Uri (tcp://host:port) instead of the deprecated Host/Port fields. The daemon's GetOrGenerateUri builds the same tcp://host:port from Host/Port, so the resolved address is unchanged. - RecvLogs returns nil on io.EOF, so the caller's error check is no longer always true (SA4023). golangci-lint v2.15.0 (what CI installs) flagged these; upstream v1.6.1 was linted with an older version. Claude-Session: https://claude.ai/code/session_01ERBF9Fi4Rk46VQ5NExAZaC
hhuuggoo
added a commit
to saturncloud/sshpiper
that referenced
this pull request
Oct 22, 2026
From upstream 509a64d (tg123#831), without its Go 1.27 and uuid changes: - skel, fixed, username-router and the benchmark test plugin set the upstream Uri (tcp://host:port) instead of the deprecated Host/Port fields. The daemon's GetOrGenerateUri builds the same tcp://host:port from Host/Port, so the resolved address is unchanged. - RecvLogs returns nil on io.EOF, so the caller's error check is no longer always true (SA4023). golangci-lint v2.15.0 (what CI installs) flagged these; upstream v1.6.1 was linted with an older version. Claude-Session: https://claude.ai/code/session_01ERBF9Fi4Rk46VQ5NExAZaC (cherry picked from commit bc28125)
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.
Go 1.27 ships a standard-library
uuidpackage (RFC 9562), making thegithub.com/google/uuiddependency unnecessary. This bumps the toolchain to 1.27 and migrates all UUID usage to the stdlib.Toolchain
go 1.27.0in bothgo.mod(root) andcmd/sshpiperd/go.modgo-version: '1.27.x'in.github/workflows/test.ymlandrelease.yamlgolang:1.27-bookwormbuilder inDockerfile.github/copilot-instructions.mdbumped togo 1.27UUID migration
github.com/google/uuidto stdlibuuidacross the daemon, the revtunnel plugin, and e2e testsuuid.NewRandom()→uuid.New(); the stdlib constructor cannot fail, so the surrounding error plumbing is droppeduuid.NewString()→uuid.New().String()uuid.Parseis API- and format-compatible (plain, braced,urn:uuid:, unhyphenated), soisGeneratedGUIDis unchangedgithub.com/google/uuidis no longer a direct requirement in either module; it remains indirect via k8s deps