@ -122,7 +122,7 @@ func init() {
createSourceGitCmd . Flags ( ) . Var ( & sourceGitArgs . keyECDSACurve , "ssh-ecdsa-curve" , sourceGitArgs . keyECDSACurve . Description ( ) )
createSourceGitCmd . Flags ( ) . StringVar ( & sourceGitArgs . secretRef , "secret-ref" , "" , "the name of an existing secret containing SSH or basic credentials" )
createSourceGitCmd . Flags ( ) . Var ( & sourceGitArgs . gitImplementation , "git-implementation" , sourceGitArgs . gitImplementation . Description ( ) )
createSourceGitCmd . Flags ( ) . StringVar ( & sourceGitArgs . caFile , "ca-file" , "" , "path to TLS CA file used for validating self-signed certificates , requires libgit2 ")
createSourceGitCmd . Flags ( ) . StringVar ( & sourceGitArgs . caFile , "ca-file" , "" , "path to TLS CA file used for validating self-signed certificates ")
createSourceGitCmd . Flags ( ) . StringVar ( & sourceGitArgs . privateKeyFile , "private-key-file" , "" , "path to a passwordless private key file used for authenticating to the Git SSH server" )
createSourceCmd . AddCommand ( createSourceGitCmd )
@ -146,16 +146,6 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
return fmt . Errorf ( "url is required" )
}
if sourceGitArgs . gitImplementation . String ( ) != sourcev1 . LibGit2Implementation && sourceGitArgs . caFile != "" {
return fmt . Errorf ( "specifing a CA file requires --git-implementation=%s" , sourcev1 . LibGit2Implementation )
}
tmpDir , err := ioutil . TempDir ( "" , name )
if err != nil {
return err
}
defer os . RemoveAll ( tmpDir )
u , err := url . Parse ( sourceGitArgs . url )
if err != nil {
return fmt . Errorf ( "git URL parse failed: %w" , err )
@ -164,6 +154,16 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
return fmt . Errorf ( "git URL scheme '%s' not supported, can be: ssh, http and https" , u . Scheme )
}
if sourceGitArgs . caFile != "" && u . Scheme == "ssh" {
return fmt . Errorf ( "specifing a CA file is not supported for Git over SSH" )
}
tmpDir , err := ioutil . TempDir ( "" , name )
if err != nil {
return err
}
defer os . RemoveAll ( tmpDir )
sourceLabels , err := parseLabels ( )
if err != nil {
return err