transportAuth(): Add checks for invalid transports
Update GitRepositoryReconciler to use a nil authOpts unless it's configured. Signed-off-by: Sunny <darkowlzz@protonmail.com>
This commit is contained in:
parent
f9a34045e1
commit
a7f2e870bf
|
@ -230,7 +230,7 @@ func (r *GitRepositoryReconciler) reconcile(ctx context.Context, repository sour
|
|||
defer os.RemoveAll(tmpGit)
|
||||
|
||||
// Configure auth options using secret
|
||||
authOpts := &git.AuthOptions{}
|
||||
var authOpts *git.AuthOptions
|
||||
if repository.Spec.SecretRef != nil {
|
||||
name := types.NamespacedName{
|
||||
Namespace: repository.GetNamespace(),
|
||||
|
|
|
@ -17,6 +17,8 @@ limitations under the License.
|
|||
package gogit
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-git/go-git/v5/plumbing/transport"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport/http"
|
||||
"github.com/go-git/go-git/v5/plumbing/transport/ssh"
|
||||
|
@ -53,6 +55,10 @@ func transportAuth(opts *git.AuthOptions) (transport.AuthMethod, error) {
|
|||
}
|
||||
return pk, nil
|
||||
}
|
||||
case "":
|
||||
return nil, fmt.Errorf("no transport type set")
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown transport '%s'", opts.Transport)
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
|
|
@ -168,12 +168,16 @@ func Test_transportAuth(t *testing.T) {
|
|||
wantErr: errors.New("knownhosts: knownhosts: missing host pattern"),
|
||||
},
|
||||
{
|
||||
name: "Empty",
|
||||
opts: &git.AuthOptions{},
|
||||
wantFunc: func(g *WithT, t transport.AuthMethod, opts *git.AuthOptions) {
|
||||
g.Expect(t).To(BeNil())
|
||||
name: "Empty",
|
||||
opts: &git.AuthOptions{},
|
||||
wantErr: errors.New("no transport type set"),
|
||||
},
|
||||
{
|
||||
name: "Unknown transport",
|
||||
opts: &git.AuthOptions{
|
||||
Transport: "foo",
|
||||
},
|
||||
wantErr: nil,
|
||||
wantErr: errors.New("unknown transport 'foo'"),
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
|
|
Loading…
Reference in New Issue