88 "strings"
99
1010 "github.com/sourcegraph/sourcegraph/lib/codeintel/upload"
11+ "github.com/sourcegraph/src-cli/internal/api"
1112 "github.com/sourcegraph/src-cli/internal/codeintel"
1213)
1314
@@ -32,9 +33,16 @@ var lsifUploadFlags struct {
3233 verbosity int
3334 json bool
3435 open bool
36+ apiFlags * api.Flags
3537}
3638
37- var lsifUploadFlagSet = flag .NewFlagSet ("upload" , flag .ExitOnError )
39+ var (
40+ lsifUploadFlagSet = flag .NewFlagSet ("upload" , flag .ExitOnError )
41+ apiClientFlagSet = flag .NewFlagSet ("upload client" , flag .ExitOnError )
42+ // Used to include the insecure-skip-verify flag in the help output, as we don't use any of the
43+ // other api.Client methods, so only the insecureSkipVerify flag is relevant here.
44+ dummyflag bool
45+ )
3846
3947func init () {
4048 lsifUploadFlagSet .StringVar (& lsifUploadFlags .file , "file" , "./dump.lsif" , `The path to the LSIF dump file.` )
@@ -57,6 +65,7 @@ func init() {
5765 lsifUploadFlagSet .IntVar (& lsifUploadFlags .verbosity , "trace" , 0 , "-trace=0 shows no logs; -trace=1 shows requests and response metadata; -trace=2 shows headers, -trace=3 shows response body" )
5866 lsifUploadFlagSet .BoolVar (& lsifUploadFlags .json , "json" , false , `Output relevant state in JSON on success.` )
5967 lsifUploadFlagSet .BoolVar (& lsifUploadFlags .open , "open" , false , `Open the LSIF upload page in your browser.` )
68+ lsifUploadFlagSet .BoolVar (& dummyflag , "insecure-skip-verify" , false , "Skip validation of TLS certificates against trusted chains" )
6069}
6170
6271// parseAndValidateLSIFUploadFlags calls lsifUploadFlagSet.Parse, then infers values for
@@ -70,6 +79,22 @@ func parseAndValidateLSIFUploadFlags(args []string) error {
7079 return err
7180 }
7281
82+ // extract only the -insecure-skip-verify flag so we dont get 'flag provided but not defined'
83+ var insecureSkipVerifyFlag []string
84+ for _ , s := range args {
85+ if strings .HasPrefix (s , "-insecure-skip-verify" ) {
86+ insecureSkipVerifyFlag = append (insecureSkipVerifyFlag , s )
87+ }
88+ }
89+
90+ // parse the api client flags separately and then populate the lsifUploadFlags struct with the result
91+ // we could just use insecureSkipVerify but I'm including everything here because it costs nothing
92+ // and maybe we'll use some in the future
93+ lsifUploadFlags .apiFlags = api .NewFlags (apiClientFlagSet )
94+ if err := apiClientFlagSet .Parse (insecureSkipVerifyFlag ); err != nil {
95+ return err
96+ }
97+
7398 if inferenceErrors := inferMissingLSIFUploadFlags (); len (inferenceErrors ) > 0 {
7499 return errorWithHint {
75100 err : inferenceErrors [0 ].err , hint : strings .Join ([]string {
0 commit comments