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