Go to file
Conrad Hoffmann 8a40a82b96 api: delete repositories asynchronously
Currently, a request to delete a repository is blocked until the
repository is completely removed from the filesystem. When CephFS is
under load and a user deletes a large-ish repo, this can cause signicant
request latency, making the user abort the request or even timing out
completely. The context gets canceled, causing the transaction to roll
back, even though the data is eventually wiped completely from storage,
leaving users with broken repositories on their profile.

Instead, simply do the deletion from storage asynchronously, so that the
user gets instant feedback. Even though the deletion itself blocks for
potentially a long time, experience has shown that it finishes even in
case of cancellation. As such, I expect that the deletion will go
through even if the go-routine were to be aborted (e.g. by a restart of
the API).
2024-04-11 16:42:40 +02:00
.builds Upgrade to Alpine 3.19 2024-03-20 13:35:34 +01:00
_static Handle unselecting all highlights properly 2020-08-21 09:09:17 -04:00
api api: delete repositories asynchronously 2024-04-11 16:42:40 +02:00
contrib add REUSE-based licenses to repo page 2022-10-10 11:23:24 +02:00
gitsrht Do not use bare `except:` 2024-02-21 09:25:03 +01:00
gitsrht-dispatch Drop go.mod files in subdirectories 2023-12-04 12:13:23 +01:00
gitsrht-keys Drop go.mod files in subdirectories 2023-12-04 12:13:23 +01:00
gitsrht-shell Upgrade core-go 2024-01-24 12:06:52 +01:00
gitsrht-update-hook gitsrht-update-hook: always enable secrets when submitting builds 2024-02-15 13:36:31 +01:00
scripts Do not use bare `except:` 2024-02-21 09:25:03 +01:00
scss Revert "Fix text-decoration for <del> tag" 2022-12-19 13:14:10 +01:00
.gitignore gqlgen.yml: rename generated file 2022-03-24 14:39:07 +01:00
.gitmodules Update SCSS to srht standard 2017-02-05 17:41:17 -05:00
LICENSE AGPL 2017-04-08 17:06:51 -04:00
Makefile Upgrade to Alpine 3.19 2024-03-20 13:35:34 +01:00
README.md Add README.md 2019-01-08 18:06:49 -05:00
cloneperf Go bits: parse Redis host as a URL 2019-12-19 10:31:26 -05:00
config.example.ini Add api-origin to example config 2022-04-08 14:09:23 +02:00
gitsrht-initdb add database stamp for core.sr.ht 2020-08-11 10:32:47 -04:00
gitsrht-migrate Set up scm.sr.ht webhooks 2019-04-19 13:59:25 -04:00
gitsrht-periodic gitsrht_periodic: don't overwrite metrics group 2023-06-01 12:41:52 +02:00
go.mod api/graph: use core-go's s3.Enabled 2024-02-02 12:09:50 +01:00
go.sum api/graph: use core-go's s3.Enabled 2024-02-02 12:09:50 +01:00
run.py Add debug server support for http cloning 2019-03-01 14:40:59 -07:00
schema.sql Implement user account deletion 2022-11-01 14:01:38 +01:00
setup.py Add minio dependency 2021-04-02 13:56:08 -04:00
static Implement authorized keys command 2017-04-02 06:51:26 -04:00

README.md

This repository contains the code for the sr.ht git hosting service. For instructions on deploying or contributing to this project, visit the manual here:

https://man.sr.ht/git.sr.ht/installation.md