Fix linting issues: canonicalheader, embeddedstructfieldcheck, iotamixing, makezero, testableexamples, wastedassign, usetesting, tparallel, unconvert, intrange, iface

- canonicalheader: fix cacheTTL header value to canonical form
- embeddedstructfieldcheck: move embedded fields before regular fields in 4 structs
- iotamixing: split const blocks mixing iota with non-iota constants
- makezero: use make([]T, 0, n) instead of make([]T, n) before appending
- testableexamples: add missing Output: comment to ExampleOption_UnwrapOrZero
- wastedassign: remove wasted initial assignments in 4 locations
- usetesting: replace os.MkdirTemp/os.Setenv with t.TempDir/t.Setenv in tests
- tparallel: add t.Parallel() to 8 top-level test functions
- unconvert: remove 16 unnecessary type conversions
- intrange: convert 3 for loops to use integer range syntax
- iface: consolidate identical EditPrompter and Prompt interfaces via type alias

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-24 11:05:52 +00:00
parent 6c11ecd9ab
commit dca59d52b6
113 changed files with 222 additions and 287 deletions

View file

@ -952,7 +952,6 @@ func (a *API) startCreate(ctx context.Context, params *CreateCodespaceParams) (*
resp.Body = io.NopCloser(bodyCopy)
return nil, api.HandleHTTPError(resp)
} else if resp.StatusCode != http.StatusOK && resp.StatusCode != http.StatusCreated {
return nil, api.HandleHTTPError(resp)
}

View file

@ -19,6 +19,7 @@ const (
type TunnelClient struct {
*tunnels.Client
connected bool
mu sync.Mutex
}

View file

@ -264,9 +264,9 @@ func newMockrelayServer(opts ...relayServerOption) (*relayServer, error) {
return nil, fmt.Errorf("failed to parse private key: %w", err)
}
server.sshConfig.AddHostKey(ssh.Signer(sshPrivateKey))
server.sshConfig.AddHostKey(sshPrivateKey)
server.httpServer = httptest.NewServer(http.HandlerFunc(makeConnection(server)))
server.httpServer = httptest.NewServer(makeConnection(server))
for _, opt := range opts {
opt(server)

View file

@ -175,16 +175,16 @@ func (i *invoker) StartJupyterServer(ctx context.Context) (port int, serverUrl s
return 0, "", fmt.Errorf("failed to invoke JupyterLab RPC: %w", err)
}
if !response.Result {
return 0, "", fmt.Errorf("failed to start JupyterLab: %s", response.Message)
if !response.GetResult() {
return 0, "", fmt.Errorf("failed to start JupyterLab: %s", response.GetMessage())
}
port, err = strconv.Atoi(response.Port)
port, err = strconv.Atoi(response.GetPort())
if err != nil {
return 0, "", fmt.Errorf("failed to parse JupyterLab port: %w", err)
}
return port, response.ServerUrl, err
return port, response.GetServerUrl(), err
}
// Rebuilds the container using cached layers by default or from scratch if full is true
@ -200,7 +200,7 @@ func (i *invoker) RebuildContainer(ctx context.Context, full bool) error {
return fmt.Errorf("failed to invoke rebuild RPC: %w", err)
}
if !response.RebuildContainer {
if !response.GetRebuildContainer() {
return fmt.Errorf("couldn't rebuild codespace")
}
@ -233,19 +233,19 @@ func (i *invoker) StartSSHServerWithOptions(ctx context.Context, options StartSS
return 0, "", fmt.Errorf("failed to invoke SSH RPC: %w", err)
}
if !response.Result {
return 0, "", fmt.Errorf("failed to start SSH server: %s", response.Message)
if !response.GetResult() {
return 0, "", fmt.Errorf("failed to start SSH server: %s", response.GetMessage())
}
port, err := strconv.Atoi(response.ServerPort)
port, err := strconv.Atoi(response.GetServerPort())
if err != nil {
return 0, "", fmt.Errorf("failed to parse SSH server port: %w", err)
}
if !isUsernameValid(response.User) {
return 0, "", fmt.Errorf("invalid username: %s", response.User)
if !isUsernameValid(response.GetUser()) {
return 0, "", fmt.Errorf("invalid username: %s", response.GetUser())
}
return port, response.User, nil
return port, response.GetUser(), nil
}
func listenTCP() (*net.TCPListener, error) {
@ -278,7 +278,7 @@ func (i *invoker) heartbeat(ctx context.Context, interval time.Duration) {
case <-ctx.Done():
return
case <-ticker.C:
reason := ""
var reason string
// If the keep alive override flag is set, we don't need to check for activity on the forwarder
// Otherwise, grab the reason from the forwarder

View file

@ -126,11 +126,11 @@ func TestStartJupyterServerSuccess(t *testing.T) {
if err != nil {
t.Fatalf("expected %v, got %v", nil, err)
}
if strconv.Itoa(port) != resp.Port {
t.Fatalf("expected %s, got %d", resp.Port, port)
if strconv.Itoa(port) != resp.GetPort() {
t.Fatalf("expected %s, got %d", resp.GetPort(), port)
}
if url != resp.ServerUrl {
t.Fatalf("expected %s, got %s", resp.ServerUrl, url)
if url != resp.GetServerUrl() {
t.Fatalf("expected %s, got %s", resp.GetServerUrl(), url)
}
verifyNotifyCodespaceOfClientActivity(t, server)
@ -156,7 +156,7 @@ func TestStartJupyterServerFailure(t *testing.T) {
}
defer stop()
errorMessage := fmt.Sprintf("failed to start JupyterLab: %s", resp.Message)
errorMessage := fmt.Sprintf("failed to start JupyterLab: %s", resp.GetMessage())
port, url, err := invoker.StartJupyterServer(context.Background())
if err.Error() != errorMessage {
t.Fatalf("expected %v, got %v", errorMessage, err)
@ -269,11 +269,11 @@ func TestStartSSHServerSuccess(t *testing.T) {
if err != nil {
t.Fatalf("expected %v, got %v", nil, err)
}
if strconv.Itoa(port) != resp.ServerPort {
t.Fatalf("expected %s, got %d", resp.ServerPort, port)
if strconv.Itoa(port) != resp.GetServerPort() {
t.Fatalf("expected %s, got %d", resp.GetServerPort(), port)
}
if user != resp.User {
t.Fatalf("expected %s, got %s", resp.User, user)
if user != resp.GetUser() {
t.Fatalf("expected %s, got %s", resp.GetUser(), user)
}
verifyNotifyCodespaceOfClientActivity(t, server)
@ -299,7 +299,7 @@ func TestStartSSHServerFailure(t *testing.T) {
}
defer stop()
errorMessage := fmt.Sprintf("failed to start SSH server: %s", resp.Message)
errorMessage := fmt.Sprintf("failed to start SSH server: %s", resp.GetMessage())
port, user, err := invoker.StartSSHServer(context.Background())
if err.Error() != errorMessage {
t.Fatalf("expected %v, got %v", errorMessage, err)