From f5198952ff1babebc83fb4837badc83fa49c810a Mon Sep 17 00:00:00 2001 From: Erik Seliger Date: Tue, 23 Feb 2021 20:02:31 +0100 Subject: [PATCH 1/2] Also respect client flags in src login command --- CHANGELOG.md | 12 ++++++++++-- cmd/src/login.go | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9a476813f..7a84624623 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,14 +15,22 @@ All notable changes to `src-cli` are documented in this file. ### Changed +### Fixed + +- The src login command now also properly respects the `-insecure-skip-verify` flag. + +### Removed + +## 3.25.2 + +### Changed + - The volume workspace Docker image is now only pulled if the volume workspace mode is in use. [#477](https://github.com/sourcegraph/src-cli/pull/477) ### Fixed - Using volume workspace mode could result in Git errors when used with Docker containers that do not run as root. These have been fixed. [#478](https://github.com/sourcegraph/src-cli/issues/478) -### Removed - ## 3.25.1 ### Added diff --git a/cmd/src/login.go b/cmd/src/login.go index a7f2dbdd83..21de7850cd 100644 --- a/cmd/src/login.go +++ b/cmd/src/login.go @@ -9,6 +9,8 @@ import ( "io/ioutil" "os" "strings" + + "github.com/sourcegraph/src-cli/internal/api" ) func init() { @@ -32,21 +34,28 @@ Examples: flagSet := flag.NewFlagSet("login", flag.ExitOnError) usageFunc := func() { fmt.Fprintln(flag.CommandLine.Output(), usage) + flagSet.PrintDefaults() } + var ( + apiFlags = api.NewFlags(flagSet) + ) + handler := func(args []string) error { if err := flagSet.Parse(args); err != nil { return err } endpoint := cfg.Endpoint - if len(args) == 1 { - endpoint = args[0] + if flagSet.NArg() >= 1 { + endpoint = flagSet.Arg(0) } if endpoint == "" { return &usageError{errors.New("expected exactly one argument: the Sourcegraph URL, or SRC_ENDPOINT to be set")} } - return loginCmd(context.Background(), cfg, endpoint, os.Stdout) + client := cfg.apiClient(apiFlags, ioutil.Discard) + + return loginCmd(context.Background(), cfg, client, endpoint, os.Stdout) } commands = append(commands, &command{ @@ -58,7 +67,7 @@ Examples: var exitCode1 = &exitCodeError{exitCode: 1} -func loginCmd(ctx context.Context, cfg *config, endpointArg string, out io.Writer) error { +func loginCmd(ctx context.Context, cfg *config, client api.Client, endpointArg string, out io.Writer) error { endpointArg = cleanEndpoint(endpointArg) printProblem := func(problem string) { @@ -97,7 +106,6 @@ func loginCmd(ctx context.Context, cfg *config, endpointArg string, out io.Write var result struct { CurrentUser *struct{ Username string } } - client := cfg.apiClient(nil, ioutil.Discard) if _, err := client.NewRequest(query, nil).Do(ctx, &result); err != nil { if strings.HasPrefix(err.Error(), "error: 401 Unauthorized") || strings.HasPrefix(err.Error(), "error: 403 Forbidden") { printProblem("Invalid access token.") From 023e3bbca7551f92a1c10d5b9ddd32239bae5982 Mon Sep 17 00:00:00 2001 From: Erik Seliger Date: Tue, 23 Feb 2021 20:08:34 +0100 Subject: [PATCH 2/2] Fix test --- cmd/src/login_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/src/login_test.go b/cmd/src/login_test.go index b1502d2060..eda70fa94f 100644 --- a/cmd/src/login_test.go +++ b/cmd/src/login_test.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "fmt" + "io/ioutil" "net/http" "net/http/httptest" "strings" @@ -15,7 +16,7 @@ func TestLogin(t *testing.T) { t.Helper() var out bytes.Buffer - err = loginCmd(context.Background(), cfg, endpointArg, &out) + err = loginCmd(context.Background(), cfg, cfg.apiClient(nil, ioutil.Discard), endpointArg, &out) return strings.TrimSpace(out.String()), err }