aboutsummaryrefslogtreecommitdiffstats
path: root/modules/lfs/shared.go
diff options
context:
space:
mode:
authorRoyce Remer <royceremer@gmail.com>2024-06-28 01:42:57 -0700
committerGitHub <noreply@github.com>2024-06-28 08:42:57 +0000
commitdf805d6ed0458dbec258d115238fde794ed4d0ce (patch)
tree058b60f2a376038ebd6f78162f30e56f07063940 /modules/lfs/shared.go
parent62b373896869da769992fbad06d13606c57c5585 (diff)
downloadgitea-df805d6ed0458dbec258d115238fde794ed4d0ce.tar.gz
gitea-df805d6ed0458dbec258d115238fde794ed4d0ce.zip
Support legacy _links LFS batch responses (#31513)
Support legacy _links LFS batch response. Fixes #31512. This is backwards-compatible change to the LFS client so that, upon mirroring from an upstream which has a batch api, it can download objects whether the responses contain the `_links` field or its successor the `actions` field. When Gitea must fallback to the legacy `_links` field a logline is emitted at INFO level which looks like this: ``` ...s/lfs/http_client.go:188:performOperation() [I] <LFSPointer ee95d0a27ccdfc7c12516d4f80dcf144a5eaf10d0461d282a7206390635cdbee:160> is using a deprecated batch schema response! ``` I've only run `test-backend` with this code, but added a new test to cover this case. Additionally I have a fork with this change deployed which I've confirmed syncs LFS from Gitea<-Artifactory (which has legacy `_links`) as well as from Gitea<-Gitea (which has the modern `actions`). Signed-off-by: Royce Remer <royceremer@gmail.com>
Diffstat (limited to 'modules/lfs/shared.go')
-rw-r--r--modules/lfs/shared.go1
1 files changed, 1 insertions, 0 deletions
diff --git a/modules/lfs/shared.go b/modules/lfs/shared.go
index 80f4fed00d..675d2328b7 100644
--- a/modules/lfs/shared.go
+++ b/modules/lfs/shared.go
@@ -47,6 +47,7 @@ type BatchResponse struct {
type ObjectResponse struct {
Pointer
Actions map[string]*Link `json:"actions,omitempty"`
+ Links map[string]*Link `json:"_links,omitempty"`
Error *ObjectError `json:"error,omitempty"`
}