fe70399
      fix(tests): make git-daemon use random port
    
    
    
     Ayman Bagabas created
fe70399
      fix(tests): make git-daemon use random port
    Ayman Bagabas created
bd8c60c
      fix(lfs): don't timeout when searching lfs objects
    Make it up to the context to continue the process
Ayman Bagabas created
da5bf4e
      fix: remove repo when stat mismatch
    Remove repo files when the repo doesn't exist in the database but exists in the filesystem
Ayman Bagabas created
babc52f
      fix(lfs): fetch missing lfs objects when mirroring
    Ensure to pull the latest lfs objects when mirroring a repository with lfs enabled.
Ayman Bagabas created
e5f8b20
      fix(tests): testscript race condition
    Ayman Bagabas created
61ad744
      feat(ssh): use custom logging middleware
    Ayman Bagabas created
b26060b
      refactor,fix(ssh): use cobra for git commands
    - Fix git commands errors on invalid args and permissions - Use Cobra to handle git commands - Add Git SSH tests - Better ssh and git pktline error handling
Ayman Bagabas created
b3d5ce8
      refactor: combine migrations into one
    Ayman Bagabas created
ea6b9a4
      fix: add repo owner and separate lfs data for each repository
    Add repository owner
Ayman Bagabas created
3a61783
      refactor: move jobs into its own module
    Ayman Bagabas created
7c73084
      fix: tests
    Ayman Bagabas created
f1a1da5
      feat: use gorilla/mux
    Ayman Bagabas created
af81aec
      feat: add lfs config and tests
    Enable/disable LFS endpoints Enable/disable SSH LFS transfer fix: lfs request validation chore: add jwt, lfs, and http tests fix: tests race feat: more tests fix: return 403 on bad creds
Ayman Bagabas created
a9e5ace
      feat: support user access tokens
    Users now can generate access tokens and use them to authenticate with Soft Serve HTTP Git server. It supports basic username & password, generated access tokens, and JWT tokens. As of now there is no way the user can set a password. This will be implemented in a separate PR. Access tokens hashes are stored in the database along with an optional expiry date. Access tokens can be used as the Git user or password in a HTTP clone URL e.g. `https://<token>@git.example.com/repo.git` fix: lint errors fix: ensure default branch on http push fix: address carlos comments
Ayman Bagabas created
f69f064
      feat(web): implement git auth and lfs
    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
    - 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
    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.
Ayman Bagabas created
d0afaa0
      fix: respect gitattributes (#342)
    * fix: respect gitattributes Check gitattributes for file attrs before displaying files. Fixes: https://github.com/charmbracelet/soft-serve/issues/238 * chore: add tests
Ayman Bagabas created
0e9abaf
      feat(deps): bump go.uber.org/automaxprocs from 1.5.2 to 1.5.3 (#343)
    dependabot[bot] created
e4a47c5
      feat: support git push options (#341)
    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
Ayman Bagabas created
02fd650
      fix: disable codecov on push
    Ayman Bagabas created
050a0d1
      fix: initial default branch name (#340)
    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)
    * 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)
    Bumps [github.com/lib/pq](https://github.com/lib/pq) from 1.2.0 to 1.10.9. - [Release notes](https://github.com/lib/pq/releases) - [Commits](https://github.com/lib/pq/compare/v1.2.0...v1.10.9) --- updated-dependencies: - dependency-name: github.com/lib/pq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] and dependabot[bot] created
e398b4d
      refactor: implement database module and abstract backend (#337)
    * 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
Ayman Bagabas created
7cd0583
      fix(ci): golangci linter
    Add soft lint
Ayman Bagabas created
ad4231b
      feat(deps): bump modernc.org/sqlite from 1.23.1 to 1.24.0 (#336)
    Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.23.1 to 1.24.0. - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.23.1...v1.24.0) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] and dependabot[bot] created
75172cf
      feat(deps): bump golang.org/x/crypto from 0.10.0 to 0.11.0 (#335)
    Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.10.0 to 0.11.0. - [Commits](https://github.com/golang/crypto/compare/v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] and dependabot[bot] created
e78725f
      Smart HTTP Git transport & partial clones (#291) (#332)
    * 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.
Ayman Bagabas created
b60a7f2
      Add commit command (#331)
    * 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
    Andy Lu created
d7fcf9d
      feat(deps): bump github.com/rogpeppe/go-internal
    Bumps [github.com/rogpeppe/go-internal](https://github.com/rogpeppe/go-internal) from 1.10.1-0.20230524175051-ec119421bb97 to 1.11.0. - [Release notes](https://github.com/rogpeppe/go-internal/releases) - [Commits](https://github.com/rogpeppe/go-internal/commits/v1.11.0) --- updated-dependencies: - dependency-name: github.com/rogpeppe/go-internal dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
191b832
      feat(deps): bump github.com/charmbracelet/keygen from 0.4.2 to 0.4.3
    Bumps [github.com/charmbracelet/keygen](https://github.com/charmbracelet/keygen) from 0.4.2 to 0.4.3. - [Release notes](https://github.com/charmbracelet/keygen/releases) - [Commits](https://github.com/charmbracelet/keygen/compare/v0.4.2...v0.4.3) --- updated-dependencies: - dependency-name: github.com/charmbracelet/keygen dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
f147ff5
      feat(deps): bump github.com/muesli/termenv from 0.15.1 to 0.15.2
    Bumps [github.com/muesli/termenv](https://github.com/muesli/termenv) from 0.15.1 to 0.15.2. - [Release notes](https://github.com/muesli/termenv/releases) - [Commits](https://github.com/muesli/termenv/compare/v0.15.1...v0.15.2) --- updated-dependencies: - dependency-name: github.com/muesli/termenv dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
fa6deb4
      feat(deps): bump github.com/hashicorp/golang-lru/v2 from 2.0.3 to 2.0.4
    Bumps [github.com/hashicorp/golang-lru/v2](https://github.com/hashicorp/golang-lru) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/hashicorp/golang-lru/releases) - [Commits](https://github.com/hashicorp/golang-lru/compare/v2.0.3...v2.0.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/golang-lru/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
7b3f2c2
      feat(deps): bump github.com/prometheus/client_golang (#325)
    dependabot[bot] created
a72790a
      feat(deps): bump golang.org/x/sync from 0.2.0 to 0.3.0
    Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.2.0 to 0.3.0. - [Commits](https://github.com/golang/sync/compare/v0.2.0...v0.3.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
691f681
      feat(deps): bump golang.org/x/crypto from 0.9.0 to 0.10.0 (#323)
    Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.9.0 to 0.10.0. - [Commits](https://github.com/golang/crypto/compare/v0.9.0...v0.10.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] and dependabot[bot] created
65de5ba
      feat(deps): bump modernc.org/sqlite from 1.23.0 to 1.23.1
    Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.23.0 to 1.23.1. - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.23.0...v1.23.1) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
c2a9b29
      feat(deps): bump github.com/hashicorp/golang-lru/v2 from 2.0.2 to 2.0.3
    Bumps [github.com/hashicorp/golang-lru/v2](https://github.com/hashicorp/golang-lru) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/hashicorp/golang-lru/releases) - [Commits](https://github.com/hashicorp/golang-lru/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: github.com/hashicorp/golang-lru/v2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
bf6b47f
      feat(deps): bump github.com/charmbracelet/bubbletea
    Bumps [github.com/charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) from 0.24.1 to 0.24.2. - [Release notes](https://github.com/charmbracelet/bubbletea/releases) - [Commits](https://github.com/charmbracelet/bubbletea/compare/v0.24.1...v0.24.2) --- updated-dependencies: - dependency-name: github.com/charmbracelet/bubbletea dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
6ce418b
      feat(deps): bump modernc.org/sqlite from 1.22.1 to 1.23.0
    Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.22.1 to 1.23.0. - [Commits](https://gitlab.com/cznic/sqlite/compare/v1.22.1...v1.23.0) --- updated-dependencies: - dependency-name: modernc.org/sqlite dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
ddb3bd6
      feat(deps): bump github.com/charmbracelet/bubbles from 0.15.0 to 0.16.1
    Bumps [github.com/charmbracelet/bubbles](https://github.com/charmbracelet/bubbles) from 0.15.0 to 0.16.1. - [Release notes](https://github.com/charmbracelet/bubbles/releases) - [Commits](https://github.com/charmbracelet/bubbles/compare/v0.15.0...v0.16.1) --- updated-dependencies: - dependency-name: github.com/charmbracelet/bubbles dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
969cf76
      fix: metric cardinality et al (#315)
    Carlos Alexandro Becker created
29aec70
      test: collab tests (#314)
    Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
f89ee59
      test: more cmd tests (#313)
    * 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>
Carlos Alexandro Becker created
1660e64
      test: repo tree tests (#312)
    Signed-off-by: Carlos Alexandro Becker <caarlos0@users.noreply.github.com>
Carlos Alexandro Becker created
6d6e112
      test: smoke tests with testscript (#305)
    * 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>
Carlos Alexandro Becker and Ayman Bagabas created
1c781fe
      fix: ignore case README filenames
    bashbunni created
940bde7
      feat(deps): bump github.com/charmbracelet/bubbletea
    Bumps [github.com/charmbracelet/bubbletea](https://github.com/charmbracelet/bubbletea) from 0.24.0 to 0.24.1. - [Release notes](https://github.com/charmbracelet/bubbletea/releases) - [Commits](https://github.com/charmbracelet/bubbletea/compare/v0.24.0...v0.24.1) --- updated-dependencies: - dependency-name: github.com/charmbracelet/bubbletea dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created
1491acb
      feat(deps): bump github.com/go-git/go-git/v5 from 5.6.1 to 5.7.0
    Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.6.1 to 5.7.0. - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](https://github.com/go-git/go-git/compare/v5.6.1...v5.7.0) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
dependabot[bot] created