fc819145f26200b443f5fef813170e2fee3c1f8f

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

feat: add ssh lfs-transfer tests

Diff

  1diff --git a/pkg/git/lfs.go b/pkg/git/lfs.go
  2index 7dc4b8b353ea480501eab855fee922d2a94f74ee..4b0065f3e5e3d830347dc2bbc3b50ead7a19b347 100644
  3--- a/pkg/git/lfs.go
  4+++ b/pkg/git/lfs.go
  5@@ -159,8 +159,6 @@ func (t *lfsTransfer) StartUpload(oid string, r io.Reader, _ transfer.Args) (io.
  6 		return nil, err
  7 	}
  8 
  9-	t.logger.Infof("Object name: %s", obj.Name())
 10-
 11 	return &uploadObject{
 12 		oid:    oid,
 13 		size:   written,
 14diff --git a/testscript/script_test.go b/testscript/script_test.go
 15index 0b1b619e28d656363afe56e28dc6336a969e8e2d..32ebe77c127a343571e430657263ac8c93a63e81 100644
 16--- a/testscript/script_test.go
 17+++ b/testscript/script_test.go
 18@@ -148,7 +148,6 @@ func TestScript(t *testing.T) {
 19 			cfg.HTTP.PublicURL = "http://" + httpListen
 20 			cfg.Stats.ListenAddr = statsListen
 21 			cfg.LFS.Enabled = true
 22-			// cfg.LFS.SSHEnabled = true
 23 
 24 			// Parse os SOFT_SERVE environment variables
 25 			if err := cfg.ParseEnv(); err != nil {
 26diff --git a/testscript/testdata/ssh-lfs.txtar b/testscript/testdata/ssh-lfs.txtar
 27new file mode 100644
 28index 0000000000000000000000000000000000000000..a3753b66a92c44256c4804b1bb21c51a384ce732
 29--- /dev/null
 30+++ b/testscript/testdata/ssh-lfs.txtar
 31@@ -0,0 +1,76 @@
 32+# vi: set ft=conf
 33+
 34+[windows] dos2unix err1.txt err2.txt err3.txt errauth.txt
 35+
 36+# enable ssh lfs transfer
 37+env SOFT_SERVE_LFS_SSH_ENABLED=true
 38+# start soft serve
 39+exec soft serve &
 40+# wait for server to start
 41+waitforserver
 42+
 43+# create a user
 44+soft user create foo --key "$USER1_AUTHORIZED_KEY"
 45+
 46+# create a repo
 47+soft repo create repo1
 48+soft repo create repo1p -p
 49+usoft repo create repo2
 50+usoft repo create repo2p -p
 51+
 52+# SSH Git LFS Transfer command
 53+! soft git-lfs-transfer
 54+cmp stderr err1.txt
 55+! soft git-lfs-transfer repo1
 56+cmp stderr err2.txt
 57+soft git-lfs-transfer repo1 download
 58+stdout '000eversion=1\n000clocking\n0000'
 59+soft git-lfs-transfer repo1 upload
 60+stdout '000eversion=1\n000clocking\n0000'
 61+usoft git-lfs-transfer repo1 download
 62+stdout '000eversion=1\n000clocking\n0000'
 63+! usoft git-lfs-transfer repo1 upload
 64+cmp stderr errauth.txt
 65+
 66+# Unauthorized user
 67+! usoft git-lfs-transfer
 68+cmp stderr err1.txt
 69+! usoft git-lfs-transfer repo1p
 70+cmp stderr err2.txt
 71+! usoft git-lfs-transfer repo1p download
 72+cmp stderr errauth.txt
 73+! usoft git-lfs-transfer repo1p upload
 74+cmp stderr errauth.txt
 75+
 76+# push & create repo with some files, commits, tags...
 77+mkdir ./repo1
 78+git -c init.defaultBranch=master -C repo1 init
 79+mkfile ./repo1/README.md '# Project\nfoo'
 80+mkfile ./repo1/foo.png 'foo'
 81+mkfile ./repo1/bar.png 'bar'
 82+git -C repo1 remote add origin ssh://localhost:$SSH_PORT/repo1
 83+git -C repo1 lfs install --local
 84+git -C repo1 lfs track '*.png'
 85+git -C repo1 add -A
 86+git -C repo1 commit -m 'first'
 87+git -C repo1 tag v0.1.0
 88+git -C repo1 push origin HEAD
 89+git -C repo1 push origin HEAD --tags
 90+
 91+# clone repo with ssh lfs-transfer
 92+git clone ssh://localhost:$SSH_PORT/repo1 repo1c
 93+exists repo1c/README.md
 94+exists repo1c/foo.png
 95+exists repo1c/bar.png
 96+
 97+# stop the server
 98+[windows] stopserver
 99+
100+-- err1.txt --
101+Error: accepts 2 arg(s), received 0
102+-- err2.txt --
103+Error: accepts 2 arg(s), received 1
104+-- err3.txt --
105+Error: invalid request
106+-- errauth.txt --
107+Error: you are not authorized to do this