1
0
mirror of https://github.com/go-gitea/gitea.git synced 2025-05-01 21:26:14 +00:00
gitea/modules
Rowan Bohde c57304ac3f
Add middleware for request prioritization ()
This adds a middleware for overload protection that is intended to help protect against malicious scrapers.
It does this via [`codel`](https://github.com/bohde/codel), which will perform the following:

1. Limit the number of in-flight requests to some user-defined max
2. When in-flight requests have reached their begin queuing requests.
    Logged-in requests having priority above logged-out requests
3. Once a request has been queued for too long,
    it has a probabilistic chance to be rejected based on how overloaded the entire system is.

When a server experiences more traffic than it can handle,
this keeps latency low for logged-in users and rejects just
enough requests from logged-out users to not overload the service.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2025-04-14 16:25:48 +02:00
..
actions Get changed files based on merge base when checking pull_request actions trigger () 2025-04-03 05:13:16 +00:00
activitypub
analyze Refactor older tests to use testify () 2025-01-09 09:21:47 +08:00
assetfs Enable testifylint rules () 2025-03-31 01:53:48 -04:00
auth Fix pam auth test regression () 2025-01-09 21:09:11 +08:00
avatar Enable addtional linters () 2025-04-01 10:14:01 +00:00
badge Add flat-square action badge style () 2025-04-01 09:42:10 +00:00
base Add material icons for file list () 2025-03-10 15:57:17 +08:00
cache Add cache for common package queries () 2025-04-13 09:40:36 +00:00
cachegroup Cache GPG keys, emails and users when list commits () 2025-04-09 16:34:38 +00:00
charset Enable testifylint rules () 2025-03-31 01:53:48 -04:00
container
csv Enable testifylint rules () 2025-03-31 01:53:48 -04:00
dump Enable testifylint rules () 2025-03-31 01:53:48 -04:00
emoji Refactor older tests to use testify () 2025-01-09 09:21:47 +08:00
eventsource Refactor older tests to use testify () 2025-01-09 09:21:47 +08:00
fileicon Keep file tree view icons consistent with icon theme () 2025-04-06 19:35:08 +00:00
generate
git Refactor Git Attribute & performance optimization () 2025-04-11 21:41:29 +08:00
gitrepo Refactor Branch struct in package modules/git () 2025-04-02 17:31:32 +00:00
globallock Enable addtional linters () 2025-04-01 10:14:01 +00:00
graceful Enable testifylint rules () 2025-03-31 01:53:48 -04:00
gtprof enable staticcheck QFxxxx rules () 2025-03-29 17:32:28 -04:00
hcaptcha
highlight Enable testifylint rules () 2025-03-31 01:53:48 -04:00
hostmatcher
htmlutil
httpcache Refactor cache-control () 2025-03-13 07:04:50 +08:00
httplib Enable addtional linters () 2025-04-01 10:14:01 +00:00
indexer Refactor Git Attribute & performance optimization () 2025-04-11 21:41:29 +08:00
issue/template Enable addtional linters () 2025-04-01 10:14:01 +00:00
json Fix some migration and repo name problems () 2025-03-24 20:26:58 -07:00
label feat: Add sorting by exclusive labels (issue priority) () 2025-04-10 17:18:07 +00:00
lfs Enable addtional linters () 2025-04-01 10:14:01 +00:00
lfstransfer Enable addtional linters () 2025-04-01 10:14:01 +00:00
log Enable testifylint rules () 2025-03-31 01:53:48 -04:00
markup Uniform all temporary directories and allow customizing temp path () 2025-04-08 16:15:28 +00:00
mcaptcha
metrics
migration remove context from retry downloader () 2025-03-14 00:28:57 +00:00
nosql Refactor older tests to use testify () 2025-01-09 09:21:47 +08:00
optional Enable testifylint rules () 2025-03-31 01:53:48 -04:00
options
packages Uniform all temporary directories and allow customizing temp path () 2025-04-08 16:15:28 +00:00
paginator Only use prev and next buttons for pagination on user dashboard () 2025-03-23 19:52:43 +00:00
pprof
private Enable addtional linters () 2025-04-01 10:14:01 +00:00
process Use test context in tests and new loop system in benchmarks () 2025-02-20 09:57:40 +00:00
proxy
proxyprotocol Enable addtional linters () 2025-04-01 10:14:01 +00:00
public Refactor cache-control () 2025-03-13 07:04:50 +08:00
queue Enable testifylint rules () 2025-03-31 01:53:48 -04:00
recaptcha
references Enable testifylint rules () 2025-03-31 01:53:48 -04:00
regexplru Enable testifylint rules () 2025-03-31 01:53:48 -04:00
repository Move and rename UpdateRepository () 2025-04-12 18:22:18 +00:00
reqctx Add material icons for file list () 2025-03-10 15:57:17 +08:00
secret Upgrade golangci-lint to v1.64.5 () 2025-02-21 00:05:40 +08:00
session
setting Add middleware for request prioritization () 2025-04-14 16:25:48 +02:00
sitemap
ssh Uniform all temporary directories and allow customizing temp path () 2025-04-08 16:15:28 +00:00
storage Enable addtional linters () 2025-04-01 10:14:01 +00:00
structs Add package version api endpoints () 2025-04-13 20:00:44 +00:00
svg
sync
system Enable testifylint rules () 2025-03-31 01:53:48 -04:00
tailmsg Support performance trace () 2025-01-21 18:57:07 +00:00
tempdir Uniform all temporary directories and allow customizing temp path () 2025-04-08 16:15:28 +00:00
templates feat: Add sorting by exclusive labels (issue priority) () 2025-04-10 17:18:07 +00:00
test Enable addtional linters () 2025-04-01 10:14:01 +00:00
testlogger Use test context in tests and new loop system in benchmarks () 2025-02-20 09:57:40 +00:00
timeutil
translation Enable testifylint rules () 2025-03-31 01:53:48 -04:00
turnstile
typesniffer
updatechecker Enable addtional linters () 2025-04-01 10:14:01 +00:00
uri
user Refactor older tests to use testify () 2025-01-09 09:21:47 +08:00
util Uniform all temporary directories and allow customizing temp path () 2025-04-08 16:15:28 +00:00
validation Enable addtional linters () 2025-04-01 10:14:01 +00:00
web Enable addtional linters () 2025-04-01 10:14:01 +00:00
webhook Add workflow_job webhook () 2025-03-11 10:40:38 -07:00
zstd