aboutsummaryrefslogtreecommitdiffstats
path: root/go.mod
diff options
context:
space:
mode:
authorLibravatar Rutger Broekhoff2023-12-29 20:29:22 +0100
committerLibravatar Rutger Broekhoff2023-12-29 20:29:22 +0100
commit77f852e06d3be7cb558be73d6edc98d30cb52d65 (patch)
treed217dc9faf144cc188340c9ce6324fd3f862e765 /go.mod
parent0b2fb488e1ccb877f16bad2f413494824f43d9c8 (diff)
downloadgitolfs3-77f852e06d3be7cb558be73d6edc98d30cb52d65.tar.gz
gitolfs3-77f852e06d3be7cb558be73d6edc98d30cb52d65.zip
Write basic read-only public Git LFS server
The 'integration' with Gitolite is honestly pretty bad and should not be taken very seriously: it runs the 'gitolite access' command to check if some user (e.g., daemon/nobody) should be able to read from the repository. Based on this, it grants access to objects stored in S3, by generating Presigned GetObject URLs using the S3 API. Of course, this integration with Gitolite (especially when using the daemon user to check if the user should be able to read) is not very 'high-value': 1. If we already make use of the daemon pseudo-user to control access to public repositories, we may as well check for the existence of git-daemon-export-ok files. In case they exist, we simply assume that the repository is meant to be shown on the public internet and that therefore the LFS archive should also be considered 'open to the public'. 2. The way that Gitolite commands are currently run, this program breaks when not running under the git user without extra configuration; Gitolite decides where repositories are based on the HOME environment variable. This program currently does not set this. This could be set by the CGI server (or fcgiwrap) and would unbreak the system. There's no support for any more advanced kind of authn/authz. Uploading is also not supported yet. That's still to come.
Diffstat (limited to 'go.mod')
-rw-r--r--go.mod21
1 files changed, 21 insertions, 0 deletions
diff --git a/go.mod b/go.mod
index e5c27f4..751d2c6 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,24 @@
1module git.fautchen.eu/gitolfs3 1module git.fautchen.eu/gitolfs3
2 2
3go 1.21.5 3go 1.21.5
4
5require github.com/minio/minio-go/v7 v7.0.66
6
7require (
8 github.com/dustin/go-humanize v1.0.1 // indirect
9 github.com/google/uuid v1.5.0 // indirect
10 github.com/json-iterator/go v1.1.12 // indirect
11 github.com/klauspost/compress v1.17.4 // indirect
12 github.com/klauspost/cpuid/v2 v2.2.6 // indirect
13 github.com/minio/md5-simd v1.1.2 // indirect
14 github.com/minio/sha256-simd v1.0.1 // indirect
15 github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
16 github.com/modern-go/reflect2 v1.0.2 // indirect
17 github.com/rs/xid v1.5.0 // indirect
18 github.com/sirupsen/logrus v1.9.3 // indirect
19 golang.org/x/crypto v0.16.0 // indirect
20 golang.org/x/net v0.19.0 // indirect
21 golang.org/x/sys v0.15.0 // indirect
22 golang.org/x/text v0.14.0 // indirect
23 gopkg.in/ini.v1 v1.67.0 // indirect
24)