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>