diff --git a/server/ssh/cmd/create.go b/server/ssh/cmd/create.go index 7e301b3fd014bd3a8d821d7b34667b609c50edfb..545470ff5d8ccae5e6de5efdaaf77fec7e26e91c 100644 --- a/server/ssh/cmd/create.go +++ b/server/ssh/cmd/create.go @@ -1,7 +1,10 @@ package cmd import ( + "fmt" + "github.com/charmbracelet/soft-serve/server/backend" + "github.com/charmbracelet/soft-serve/server/config" "github.com/charmbracelet/soft-serve/server/proto" "github.com/spf13/cobra" ) @@ -20,17 +23,24 @@ func createCommand() *cobra.Command { PersistentPreRunE: checkIfCollab, RunE: func(cmd *cobra.Command, args []string) error { ctx := cmd.Context() + cfg := config.FromContext(ctx) be := backend.FromContext(ctx) user := proto.UserFromContext(ctx) name := args[0] - if _, err := be.CreateRepository(ctx, name, user, proto.RepositoryOptions{ + r, err := be.CreateRepository(ctx, name, user, proto.RepositoryOptions{ Private: private, Description: description, ProjectName: projectName, Hidden: hidden, - }); err != nil { + }) + if err != nil { return err } + + cloneurl := fmt.Sprintf("%s/%s.git", cfg.SSH.PublicURL, r.Name()) + cmd.PrintErrf("Created repository %s\n", r.Name()) + cmd.Println(cloneurl) + return nil }, } diff --git a/testscript/script_test.go b/testscript/script_test.go index 7c345dd71d4b7f9dfddff1443af84c98c4cfd4f5..3c544b037677647b4c4f0d7d1e44556ceb3e5e48 100644 --- a/testscript/script_test.go +++ b/testscript/script_test.go @@ -99,8 +99,7 @@ func TestScript(t *testing.T) { cfg.Stats.ListenAddr = statsListen cfg.DB.Driver = "sqlite" cfg.LFS.Enabled = true - // TODO: run tests with both SSH enabled/disabled - cfg.LFS.SSHEnabled = false + cfg.LFS.SSHEnabled = true if err := cfg.Validate(); err != nil { return err diff --git a/testscript/testdata/repo-create.txtar b/testscript/testdata/repo-create.txtar index 6787ee9d0b32828f5613bbf70adfe4b60dcbd66f..794294a16e195b7509babc6bc2e26ed30980f3c5 100644 --- a/testscript/testdata/repo-create.txtar +++ b/testscript/testdata/repo-create.txtar @@ -5,6 +5,8 @@ # create a repo soft repo create repo1 -d 'description' -H -p -n 'repo11' +stderr 'Created repository repo1.*' +stdout ssh://localhost:$SSH_PORT/repo1.git soft repo hidden repo1 stdout true soft repo private repo1 @@ -95,6 +97,8 @@ soft user create bar --key "$USER1_AUTHORIZED_KEY" # user create a repo usoft repo create repo2 -d 'description' -H -p -n 'repo2' +stderr 'Created repository repo2.*' +stdout ssh://localhost:$SSH_PORT/repo2.git usoft repo hidden repo2 stdout true usoft repo private repo2