gitea/modules
Rowan Bohde c57304ac3f
Add middleware for request prioritization (#33951)
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 +07:00
..
actions Get changed files based on merge base when checking `pull_request` actions trigger (#34106) 2025-04-03 05:13:16 +07:00
activitypub Enable tenv and testifylint rules (#32852) 2024-12-15 10:41:29 +07:00
analyze Refactor older tests to use testify (#33140) 2025-01-09 09:21:47 +07:00
assetfs Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
auth Fix pam auth test regression (#33169) 2025-01-09 21:09:11 +07:00
avatar Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
badge Add flat-square action badge style (#34062) 2025-04-01 09:42:10 +07:00
base Add material icons for file list (#33837) 2025-03-10 15:57:17 +07:00
cache Add cache for common package queries (#22491) 2025-04-13 09:40:36 +07:00
cachegroup Cache GPG keys, emails and users when list commits (#34086) 2025-04-09 16:34:38 +07:00
charset Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
container Refactor sidebar assignee&milestone&project selectors (#32465) 2024-11-11 04:07:54 +07:00
csv Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
dump Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
emoji Refactor older tests to use testify (#33140) 2025-01-09 09:21:47 +07:00
eventsource Refactor older tests to use testify (#33140) 2025-01-09 09:21:47 +07:00
fileicon Keep file tree view icons consistent with icon theme (#33921) 2025-04-06 19:35:08 +07:00
generate
git Refactor Git Attribute & performance optimization (#34154) 2025-04-11 21:41:29 +07:00
gitrepo Refactor Branch struct in package modules/git (#33980) 2025-04-02 17:31:32 +07:00
globallock Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
graceful Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
gtprof enable staticcheck QFxxxx rules (#34064) 2025-03-29 17:32:28 +07:00
hcaptcha
highlight Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
hostmatcher
htmlutil Refactor HTMLFormat, update chroma render, fix js error (#33136) 2025-01-08 03:44:32 +07:00
httpcache Refactor cache-control (#33861) 2025-03-13 07:04:50 +07:00
httplib Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
indexer Refactor Git Attribute & performance optimization (#34154) 2025-04-11 21:41:29 +07:00
issue/template Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
json Fix some migration and repo name problems (#33986) 2025-03-24 20:26:58 +07:00
label feat: Add sorting by exclusive labels (issue priority) (#33206) 2025-04-10 17:18:07 +07:00
lfs Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
lfstransfer Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
log Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
markup Uniform all temporary directories and allow customizing temp path (#32352) 2025-04-08 16:15:28 +07:00
mcaptcha
metrics
migration remove context from retry downloader (#33871) 2025-03-14 00:28:57 +07:00
nosql Refactor older tests to use testify (#33140) 2025-01-09 09:21:47 +07:00
optional Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
options
packages Uniform all temporary directories and allow customizing temp path (#32352) 2025-04-08 16:15:28 +07:00
paginator Only use prev and next buttons for pagination on user dashboard (#33981) 2025-03-23 19:52:43 +07:00
pprof
private Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
process Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +07:00
proxy
proxyprotocol Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
public Refactor cache-control (#33861) 2025-03-13 07:04:50 +07:00
queue Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
recaptcha
references Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
regexplru Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
repository Move and rename UpdateRepository (#34136) 2025-04-12 18:22:18 +07:00
reqctx Add material icons for file list (#33837) 2025-03-10 15:57:17 +07:00
secret Upgrade golangci-lint to v1.64.5 (#33654) 2025-02-21 00:05:40 +07:00
session
setting Add middleware for request prioritization (#33951) 2025-04-14 16:25:48 +07:00
sitemap
ssh Uniform all temporary directories and allow customizing temp path (#32352) 2025-04-08 16:15:28 +07:00
storage Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
structs Add package version api endpoints (#34173) 2025-04-13 20:00:44 +07:00
svg Add sub issue list support (#32940) 2024-12-24 01:54:19 +07:00
sync
system Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
tailmsg Support performance trace (#32973) 2025-01-21 18:57:07 +07:00
tempdir Uniform all temporary directories and allow customizing temp path (#32352) 2025-04-08 16:15:28 +07:00
templates feat: Add sorting by exclusive labels (issue priority) (#33206) 2025-04-10 17:18:07 +07:00
test Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
testlogger Use test context in tests and new loop system in benchmarks (#33648) 2025-02-20 09:57:40 +07:00
timeutil
translation Enable testifylint rules (#34075) 2025-03-31 01:53:48 +07:00
turnstile
typesniffer Add avif image file support (#32508) 2024-11-15 00:55:50 +07:00
updatechecker Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
uri
user Refactor older tests to use testify (#33140) 2025-01-09 09:21:47 +07:00
util Uniform all temporary directories and allow customizing temp path (#32352) 2025-04-08 16:15:28 +07:00
validation Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
web Enable addtional linters (#34085) 2025-04-01 10:14:01 +07:00
webhook Add workflow_job webhook (#33694) 2025-03-11 10:40:38 +07:00
zstd