Commit log

6f0a418 feat(deps): bump modernc.org/sqlite from 1.25.0 to 1.26.0 (#391)

Click to expand commit body
Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.25.0 to 1.26.0.
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.25.0...v1.26.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

d6b6f7c feat(deps): bump github.com/hashicorp/golang-lru/v2 from 2.0.6 to 2.0.7 (#392)

Click to expand commit body
Bumps [github.com/hashicorp/golang-lru/v2](https://github.com/hashicorp/golang-lru) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/hashicorp/golang-lru/releases)
- [Commits](https://github.com/hashicorp/golang-lru/compare/v2.0.6...v2.0.7)

---
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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

53832a9 feat(deps): bump github.com/prometheus/client_golang

Click to expand commit body
Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/v1.17.0/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

dependabot[bot] created

407c4ec fix(ssh): add authentication middleware

Click to expand commit body
We need to verify that the key used to establish the connection is the
same key used for authentication, otherwise, refuse connection.

Ayman Bagabas created

9021825 feat(ci): run tests against both sqlite and postgres

Ayman Bagabas created

b8ba37b test: use postgres in testscript

Ayman Bagabas created

fa09286 fix: postgres driver issues

Click to expand commit body
Related: https://github.com/charmbracelet/soft-serve/issues/380

Ayman Bagabas created

6a42d89 fix(db): quote postgres keywords (#383)

Click to expand commit body
The keyword "key" is a reserved word in Postgres and must be quoted if
used as a column name.

Fixes: https://github.com/charmbracelet/soft-serve/issues/380

Ayman Bagabas created

5464150 feat(deps): bump github.com/go-git/go-git/v5 from 5.8.1 to 5.9.0 (#381)

Click to expand commit body
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.8.1 to 5.9.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.8.1...v5.9.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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

dependabot[bot] and dependabot[bot] created

e47ac30 chore(deps): bump actions/checkout from 3 to 4 (#378)

Click to expand commit body
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

3c747e4 feat(deps): bump golang.org/x/crypto from 0.12.0 to 0.13.0 (#379)

Click to expand commit body
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.12.0 to 0.13.0.
- [Commits](https://github.com/golang/crypto/compare/v0.12.0...v0.13.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

fd167be fix: backend update hook arguments

Ayman Bagabas created

d1593cc feat(deps): bump github.com/hashicorp/golang-lru/v2 from 2.0.5 to 2.0.6 (#374)

dependabot[bot] created

e35538c chore(demo): add VHS demo.tape

Maas Lalani created

8594ecf fix: demo gif (#373)

Maas Lalani created

abcb242 Revert "docs: update soft-serve demo GIF / screencast"

Click to expand commit body
This reverts commit 0509a50c988737f23919d145c171e0bec0d853f7.

Maas Lalani created

0509a50 docs: update soft-serve demo GIF / screencast

Maas Lalani created

0353cf2 docs: add sqlite foreign key note

Ayman Bagabas created

a12b45b feat(deps): bump github.com/gogs/git-module from 1.8.2 to 1.8.3 (#365)

Click to expand commit body
Bumps [github.com/gogs/git-module](https://github.com/gogs/git-module) from 1.8.2 to 1.8.3.
- [Release notes](https://github.com/gogs/git-module/releases)
- [Commits](https://github.com/gogs/git-module/compare/v1.8.2...v1.8.3)

---
updated-dependencies:
- dependency-name: github.com/gogs/git-module
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

104aa73 feat(deps): bump github.com/charmbracelet/log from 0.2.3 to 0.2.4 (#371)

dependabot[bot] created

62b9fda feat(deps): bump github.com/charmbracelet/lipgloss from 0.7.1 to 0.8.0 (#372)

dependabot[bot] created

942d494 fix: add ssh commands back (#370)

Click to expand commit body
* fix: add ssh commands back

Unauthorized users would get an error message when using commands that
need authorization

* feat: bump charmbracelet/ssh to fix race issue

Ayman Bagabas created

09dedc4 fix: remove extra metrics label

Click to expand commit body
Fixes: b0eebaa36b8a ("fix: panic on ssh lfs transfer")

Ayman Bagabas created

49ec3aa docs: update readme (#360)

Click to expand commit body
* docs: update readme in preparation of v0.6

* docs: add database section

Fixes: https://github.com/charmbracelet/soft-serve/issues/363

* docs: http auth

* fix: typos

Ayman Bagabas created

b0eebaa fix: panic on ssh lfs transfer

Ayman Bagabas created

e10942e fix: config paths on windows

Click to expand commit body
Convert slashes on windows

Fixes: https://github.com/charmbracelet/soft-serve/issues/367

Ayman Bagabas created

bb94850 feat(deps): bump github.com/hashicorp/golang-lru/v2 from 2.0.4 to 2.0.5

Click to expand commit body
Bumps [github.com/hashicorp/golang-lru/v2](https://github.com/hashicorp/golang-lru) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/hashicorp/golang-lru/releases)
- [Commits](https://github.com/hashicorp/golang-lru/compare/v2.0.4...v2.0.5)

---
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

05ecf8d feat(deps): bump golang.org/x/crypto from 0.11.0 to 0.12.0

Click to expand commit body
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.11.0 to 0.12.0.
- [Commits](https://github.com/golang/crypto/compare/v0.11.0...v0.12.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>

dependabot[bot] created

e610867 feat(deps): bump github.com/go-git/go-git/v5 from 5.7.0 to 5.8.1

Click to expand commit body
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.7.0 to 5.8.1.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.7.0...v5.8.1)

---
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

75cf8a5 feat(deps): bump github.com/charmbracelet/log

Click to expand commit body
Bumps [github.com/charmbracelet/log](https://github.com/charmbracelet/log) from 0.2.3-0.20230713155356-557335e40e35 to 0.2.3.
- [Release notes](https://github.com/charmbracelet/log/releases)
- [Commits](https://github.com/charmbracelet/log/commits/v0.2.3)

---
updated-dependencies:
- dependency-name: github.com/charmbracelet/log
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

dependabot[bot] created

f52dcd2 feat(deps): bump modernc.org/sqlite from 1.24.0 to 1.25.0

Click to expand commit body
Bumps [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) from 1.24.0 to 1.25.0.
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.24.0...v1.25.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

882e701 feat: add collaborators with access level

Click to expand commit body
Now you can add a collaborator with a specific access level

Fixes: https://github.com/charmbracelet/soft-serve/issues/281

Ayman Bagabas created

c4dde1c feat,fix: add task manager

Click to expand commit body
Implement a task manager that can run different tasks given a unique ID.

This is needed to accommodate expensive tasks like importing a large
repository. The current behavior uses the connection's context (the SSH
connection) to import the repository. However, if the server has defined
an SSH `idle_timeout`, `max_timeout`, and/or the connection drops,
Soft Serve cancels the git clone process and aborts importing the
repository.

Instead, we add the import task to the "task manager" and wait on the
connection context. If a task already exists for the same repository,
return `Error: import already in progress`.

Fixes: https://github.com/charmbracelet/soft-serve/issues/348

Ayman Bagabas created

c7829a3 feat: print clone url on repo create

Click to expand commit body
Prints the repo ssh clone url on create

Fixes: https://github.com/charmbracelet/soft-serve/issues/297

Ayman Bagabas created

eaf3619 chore: update golang.org/x/net

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

Click to expand commit body
Make it up to the context to continue the process

Ayman Bagabas created

da5bf4e fix: remove repo when stat mismatch

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
- 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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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