diff options
author | Royce Remer <royceremer@gmail.com> | 2024-06-28 01:42:57 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-28 08:42:57 +0000 |
commit | df805d6ed0458dbec258d115238fde794ed4d0ce (patch) | |
tree | 058b60f2a376038ebd6f78162f30e56f07063940 /modules/lfs/shared.go | |
parent | 62b373896869da769992fbad06d13606c57c5585 (diff) | |
download | gitea-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.go | 1 |
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"` } |