installer: use soft-serve keygen lib
diff --git a/core/installer/soft/client.go b/core/installer/soft/client.go
index d23a2f7..4f0bf16 100644
--- a/core/installer/soft/client.go
+++ b/core/installer/soft/client.go
@@ -1,6 +1,7 @@
package soft
import (
+ "errors"
"fmt"
"golang.org/x/crypto/ssh"
"log"
@@ -12,6 +13,7 @@
"github.com/go-git/go-billy/v5/memfs"
"github.com/go-git/go-git/v5"
+ "github.com/go-git/go-git/v5/plumbing/transport"
gitssh "github.com/go-git/go-git/v5/plumbing/transport/ssh"
"github.com/go-git/go-git/v5/storage/memory"
)
@@ -103,8 +105,8 @@
}
func ParseRepositoryAddress(addr string) (RepositoryAddress, error) {
- items := regexp.MustCompile(`ssh://.*)/(.*)`).FindStringSubmatch(addr)
- if len(items) != 2 {
+ items := regexp.MustCompile(`ssh://(.*)/(.*)`).FindStringSubmatch(addr)
+ if len(items) != 3 {
return RepositoryAddress{}, fmt.Errorf("Invalid address")
}
ipPort, err := netip.ParseAddrPort(items[1])
@@ -138,7 +140,7 @@
InsecureSkipTLS: true,
Progress: os.Stdout,
})
- if err != nil {
+ if err != nil && !errors.Is(err, transport.ErrEmptyRemoteRepository) {
return nil, err
}
return &Repository{