Generate jwt tokens
Implement git-lfs-authenticate to generate tokens through ssh
Authenticate user using HTTP
fix: git lfs endpoint auth
feat: git lfs locks
Implement git lfs locks endpoints
fix: tests
fix: access tokens migration
add expires_at
fix: lint errors
fix: cleanup
Revert "fix: cleanup"
This reverts commit 728173fbb9594d8ba32e0ca6223be08646e0136a.
fix(db): don't drop tables
Ayman Bagabas
created
8e68dba
feat: implement git-lfs preliminary support
Click to expand commit body
- Support Git LFS SSH transfer (server-side)
- Implement Git LFS Basic transfer (client)
- Import missing LFS objects when importing a repository
wip
fix: user can be nil for anonymous connections
fix: wrap db errors
fix: lint errors
Ayman Bagabas
created
8d41446
fix(ssh): increase the default idle-timeout to 10 minutes
Click to expand commit body
This would close dangling SSH connections that last for more than 10
minutes. The only down side is that the connection will get closed
without restoring the terminal for PTY sessions and the UI.
Add support to git push options.
Reference: https://git-scm.com/docs/git-push#Documentation/git-push.txt--oltoptiongt
Fixes: https://github.com/charmbracelet/soft-serve/issues/327
Use git plumbing to set the initial default branch name.
Fixes: https://github.com/charmbracelet/soft-serve/issues/147
Fixes: https://github.com/charmbracelet/soft-serve/issues/260
Ayman Bagabas
created
e0882cc
feat: store repo meta data in repo directory (#338)
Click to expand commit body
* feat: store repo meta data in repo directory
- Store auth'd user in context.
- Write description, owner, and git-daemon-export-ok files.
Fixes: https://github.com/charmbracelet/soft-serve/issues/255
Fixes: https://github.com/charmbracelet/soft-serve/issues/256
* fix: add tests
Ayman Bagabas
created
f0eb762
feat(deps): bump github.com/lib/pq from 1.2.0 to 1.10.9 (#339)
e398b4d
refactor: implement database module and abstract backend (#337)
Click to expand commit body
* refactor(server): abstract database from backend
Prepare for multi database driver support
* feat(server): add db models
* feat(db): add database migrations
* feat(db): add support to postgres
* feat: implement database store logic
* refactor: use db module and abstract backend logic
* fix(db): postgres migrate sql
* feat(db): add database query tracing
* refactor: move internal packages to server
* fix(config): normalize sqlite database path
* fix,feat: support custom log path and fix logging leak in hooks
* fix(test): race condition
* refactor: tidy up files and use middlewares
* chore: add test for repo commit command
Reference: https://github.com/charmbracelet/soft-serve/pull/331
* fix: lint errors
* fix: use utc time and fix git packp error format
* fix: lint errors
* fix: testscript on windows
* chore: format sql files
* fix: lint issues
re-enable revive linter
* refactor: clean up server/config
* feat: add admin command to manage server
* fix(db): use migration versions
* chore: add deprecation warning.
* refactor: move shared interfaces and errors to proto
* fix: increase golangci lint timeout
* feat: add move tests
e78725f
Smart HTTP Git transport & partial clones (#291) (#332)
Click to expand commit body
* refactor: tidy up server git
use git services to implement handling git server commands
pass config to git as environment variables
* feat(git): enable partial clones
* feat(server): use smart http git backend
This implements the smart http git protocol which also supports
git-receive-pack service.
* Add commit command
* fix bad refactor
* fix: actually support the color flag
* Squashed commit of the following:
commit 814ee9f8fa7014dd4fafab12974e2edd4b8f7d73
Author: Andy Lu <luandy64@gmail.com>
Date: Fri Jun 30 23:07:49 2023 -0400
Run gofmt
commit 3db029502c74461b57e776a0ebc9d27c944acc5d
Author: Andy Lu <luandy64@gmail.com>
Date: Fri Jun 30 23:06:31 2023 -0400
Pull out statsLine and diffLine, add a commit body line
commit eb1da4296e0181bae842622e0dc98ca8ca845049
Author: Andy Lu <luandy64@gmail.com>
Date: Fri Jun 30 23:05:36 2023 -0400
Add flag for printing the patch only
commit e76702e92b085f02427aae1c7052f235454242fd
Author: Andy Lu <luandy64@gmail.com>
Date: Fri Jun 30 22:50:55 2023 -0400
Add commit, author, date, and stats
commit 0359b1dc49417d11f8f8b8529f8b942417d79128
Author: Andy Lu <luandy64@gmail.com>
Date: Fri Jun 30 21:43:35 2023 -0400
Add commit, author, date, and stats
Missing color on stats
* Whitespace cleanup
* test: more cmd tests
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* test: repo delete
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* test: playing with testscript
* fix: multiple servers
* fix: -update flag
* test: user management tests
* test: fix config
* fix: ensure perms after clone
* fix: race condition
* fix: shutdown
* test: set-username
* test: repo collab
* test: repo mirror and other ops
* test: import repo
* test: repo create
* test: disable hooks on testscript
* test: random port: prevent port reuse
* test: wait for server
* fix: git with no user info
* test: no idea whats going on on windows
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* test: create keys on runtime
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* chore: organizing repo
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: remove if for windows
* Revert "fix: remove if for windows"
This reverts commit 5776fde194d675d25336967e5f89c8fd9a5e7b4f.
* chore: trying something out
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* refactor: use crypto/ssh instead of ssh binary
* fix: neg only the actual cmd
* fix: unix2dos on windows tests
* fix: unix2dos
* fix: skip hooks on tests
* fix: trainling whitespace
* chore: editorconfig and gitattributes
* test: maybe its not really needed?
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* Revert "test: maybe its not really needed?"
This reverts commit a704c5fbf17dad7bd34646950074b125a093ae31.
* fix: improve \r\n handling
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: crlf
* chore: trigger
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: disable unix2docs
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* test: validate repo
* chore: debug
* fix(test): convert dos crlf to lf (#311)
* fix(test): convert dos crlf to lf
* use temp files
* chore: log
* fix: ssh config
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: config
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix(ci): use build workflow from main
* fix: editorconfig
* fix: editorconfig
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* feat(test): add SanitizeRepo tests
* fix(test): sanitizerepo test
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Ayman Bagabas <ayman.bagabas@gmail.com>
* fix(log): respect log config
Parse log config
fix(git): ensure os envs are present
feat: set the default time format to dateTime
fix(log): change update mirror log message into debug
fix(config): rename log config struct
fix(config): always return cfg
* perf: update mirrors in a workpool (#285)
* perf: update mirrors in a workqueue
Implement a simple chunked workqueue to queue updating mirrors. We use
the number of cpus to calculate the number of workers to distribute the
work to.
* fix: use automaxprocs
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix: set maxprocs in main
* feat(wp): use a workpool impl
Use semaphores to implement a workpool of n workers
and use that to run the mirroring job
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
---------
Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Co-authored-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
* fix(backend): wrap i/o operations in transactions
when i/o errors, transaction rolls back
* fix(lint): inefficient assignment
* fix(ui): respect log settings
* fix(ui): truncate command string after yanking
* fix(git): make sure to use system git config in diff
* fix(ui): move support goto top/bottom in viewport
Ayman Bagabas
created
1420502
fix(backend): wrap i/o operations in transactions (#278)
Click to expand commit body
* fix(backend): wrap i/o operations in transactions
when i/o errors, transaction rolls back
* fix(lint): inefficient assignment
Ayman Bagabas
created
c1d62b5
fix: set CI=1 in Dockerfile as a workaround (#284)
Carlos Alexandro Becker
created
5580b5b
fix(backend): cache repos in memory (#274)
Click to expand commit body
* fix(backend): cache repos in memory using lru
Signed-off-by: Ayman Bagabas <ayman.bagabas@gmail.com>
* fix(backend): use mutex instead of rwmutex
---------
Signed-off-by: Ayman Bagabas <ayman.bagabas@gmail.com>