
# Laboratório autorizado de pesquisa em segurança: reprodução de CVE-2024-42370 / GHSA-4hq2-rpgc-r8r7 (injeção de env em docs-preview.yml) — snapshot de litestar-org/litestar@18d84d84
Artefacto de investigação automatizada — não é o projeto original.
Este repositório é um laboratório descartável construído por um harness automatizado para uma dissertação de mestrado na Université Laval sobre a reprodução de vulnerabilidades publicadas em workflows do GitHub Actions. É um snapshot verbatim de
litestar-org/litestarno commit18d84d846b782ccaab06f550a4defce22b3082e8(2024-07-27), redistribuído sob a licença do próprio projeto, cujo ficheiro está incluído inalterado neste snapshot.O projeto original não está envolvido, nunca é alvo, e a vulnerabilidade aqui estudada já é pública. Todos os segredos e variáveis neste repositório são valores fictícios gerados aleatoriamente — nenhuma credencial real está presente. As referências de ações e imagens de runners estão fixadas ao que resolveram em 2024-07-27; consulte
pinning.mdna saída do harness para todas as alterações feitas ao snapshot.Perguntas ou objeções: [email protected]
| Project | Status |
|---|
| CI/CD | ||
| Quality | ||
| Package | ||
| Community | ||
| Meta |
O Litestar é um framework ASGI poderoso, flexível e opinativo, focado na construção de APIs, e oferece validação e parsing de dados de alto desempenho, injeção de dependências, integração ORM de primeira classe, primitivas de autorização e muito mais do que é necessário para colocar aplicações em funcionamento.
Consulte a documentação 📚 para uma visão geral detalhada das suas funcionalidades!
Além disso, o repositório fullstack do Litestar pode dar-lhe uma boa impressão de como uma aplicação Litestar completa pode parecer.
pip install litestar
## Início Rápido```python
from litestar import Litestar, get
@get("/")
def hello_world() -> dict[str, str]:
"""Keeping the tradition alive with hello world."""
return {"hello": "world"}
app = Litestar(route_handlers=[hello_world])
dataclasses, TypedDict, pydantic versão 1 e versão 2,
msgspec e attrsO Litestar é um projeto de código aberto, e contamos com o apoio dos nossos patrocinadores para ajudar a financiar o emocionante trabalho que realizamos.
Um enorme agradecimento aos nossos patrocinadores:
Se você gostaria de apoiar o trabalho que realizamos, considere tornar-se um patrocinador via Polar.sh (preferencial), GitHub ou Open Collective.
Além disso, exclusivamente com Polar, você pode participar de patrocínios baseados em promessas de contribuição.
Embora suporte handlers de rota baseados em funções, o Litestar também suporta e promove OOP em Python usando controllers baseados em classes:
from litestar import Controller, get, post, put, patch, delete from litestar.dto import DTOData from pydantic import UUID4
from my_app.models import User, PartialUserDTO
class UserController(Controller): path = "/users"
@post()
async def create_user(self, data: User) -> User: ...
@get()
async def list_users(self) -> List[User]: ...
@get(path="/{date:int}")
async def list_new_users(self, date: datetime) -> List[User]: ...
@patch(path="/{user_id:uuid}", dto=PartialUserDTO)
async def partial_update_user(
self, user_id: UUID4, data: DTOData[PartialUserDTO]
) -> User: ...
@put(path="/{user_id:uuid}")
async def update_user(self, user_id: UUID4, data: User) -> User: ...
@get(path="/{user_name:str}")
async def get_user_by_name(self, user_name: str) -> Optional[User]: ...
@get(path="/{user_id:uuid}")
async def get_user(self, user_id: UUID4) -> User: ...
@delete(path="/{user_id:uuid}")
async def delete_user(self, user_id: UUID4) -> None: ...
</details>
### Análise de Dados, Type Hints e Msgspec
O Litestar é rigorosamente tipado e impõe a tipagem. Por exemplo, se você esquecer de tipar um valor de retorno para um
handler de rota, uma exceção será levantada. A razão para isso é que o Litestar usa os dados de tipagem para gerar
especificações OpenAPI, bem como para validar e analisar dados. Assim, a tipagem é essencial para o framework.
Além disso, o Litestar permite estender seu suporte usando plugins.
### Sistema de Plugins, Suporte a ORM e DTOs
O Litestar possui um sistema de plugins que permite ao usuário estender a serialização/desserialização, a geração de
OpenAPI e outros recursos.
Ele vem com um plugin integrado para SQL Alchemy, que permite ao usuário usar classes declarativas do SQLAlchemy
"nativamente", ou seja, como parâmetros de tipo que serão serializados/desserializados e retorná-los como valores de
handlers de rota.
O Litestar também suporta a criação programática de DTOs com uma classe `DTOFactory`, que também suporta o uso de
plugins.
### OpenAPI
O Litestar possui lógica personalizada para gerar o esquema OpenAPI 3.1.0, incluindo a geração opcional de exemplos
usando a biblioteca [`polyfactory`](https://pypi.org/project/polyfactory/).
#### Documentação da API com ReDoc, Swagger-UI e Stoplight Elements
O Litestar serve a documentação a partir do esquema OpenAPI gerado com:
- [ReDoc](https://redoc.ly/)
- [Swagger-UI](https://swagger.io/tools/swagger-ui/)
- [Stoplight Elements](https://github.com/stoplightio/elements)
- [RapiDoc](https://rapidocweb.com/)
Todos esses estão disponíveis e habilitados por padrão.
### Injeção de Dependências
O Litestar possui um sistema de DI simples, mas poderoso, inspirado no pytest. Você pode definir dependências nomeadas —
síncronas ou assíncronas — em diferentes níveis da aplicação e, em seguida, usá-las seletivamente ou sobrescrevê-las.
<details>
<summary>Exemplo para DI</summary>```python
from litestar import Litestar, get
from litestar.di import Provide
async def my_dependency() -> str: ...
@get("/")
async def index(injected: str) -> str:
return injected
app = Litestar([index], dependencies={"injected": Provide(my_dependency)})
O Litestar suporta middleware ASGI típico e vem com middlewares para lidar com coisas como
O Litestar possui um mecanismo de autorização chamado guards, que permite ao usuário definir funções de guarda em diferentes
níveis da aplicação (app, router, controller etc.) e validar a requisição antes de atingir a função do manipulador de rota.
from litestar.connection import ASGIConnection from litestar.handlers.base import BaseRouteHandler from litestar.exceptions import NotAuthorizedException
async def is_authorized(connection: ASGIConnection, handler: BaseRouteHandler) -> None: # validate authorization # if not authorized, raise NotAuthorizedException raise NotAuthorizedException()
@get("/", guards=[is_authorized]) async def index() -> None: ...
app = Litestar([index])
</details>
### Ganchos do Ciclo de Vida de Requisições
O Litestar suporta ganchos de ciclo de vida de requisições, de forma semelhante ao Flask — ou seja, `before_request` e `after_request`
## Desempenho
O Litestar é rápido. Ele está no mesmo nível, ou é significativamente mais rápido do que frameworks ASGI comparáveis.
Você pode ver e executar os benchmarks [aqui](https://github.com/litestar-org/api-performance-tests),
ou ler mais sobre isso [aqui](https://docs.litestar.dev/latest/benchmarks) na nossa documentação.
## Contribuindo
O Litestar está aberto a contribuições grandes e pequenas. Você pode sempre [entrar no nosso servidor do discord](https://discord.gg/X3FJqy8d2j)
ou [entrar no nosso espaço do Matrix](https://matrix.to/#/#litestar:matrix.org)
para discutir contribuições e manutenção do projeto. Para diretrizes sobre como contribuir, por favor
consulte [o guia de contribuição](https://github.com/pvharmo2/gha-lab-ba8e0c4217/blob/main/CONTRIBUTING.rst).
<!-- contributors-start -->
## Contribuidores ✨
<details>
<summary>Agradecimentos a estas pessoas maravilhosas:</summary>
<a href="https://allcontributors.org/docs/en/emoji-key">Chave de Emojis </a><!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tbody>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/nhirschfeld/"><img src="https://assets.kitploit.com/production/public/readmes/54125/f4402f9bd55d0c38153c6130da7580c4e2691fd34453865a204f75b6a444edb1/86c6c5b903d105fc174017914eb2a96c53cf9082818df2e263dc47eb339960ce-display-v1.webp" width="100px;" alt="Na'aman Hirschfeld"/><br /><sub><b>Na'aman Hirschfeld</b></sub></a><br /><a href="#maintenance-Goldziher" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=Goldziher" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=Goldziher" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=Goldziher" title="Tests">⚠️</a> <a href="#ideas-Goldziher" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-Goldziher" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3AGoldziher" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/peterschutt"><img src="https://assets.kitploit.com/production/public/readmes/54125/a56e82cb821c908545d0067dc50df5817eca319879f78f8779aca13ebefa362b/a65c715a3e245969f1105298df74193398638e471b4ce9a2768dfb0c0b4cb548-display-v1.webp" width="100px;" alt="Peter Schutt"/><br /><sub><b>Peter Schutt</b></sub></a><br /><a href="#maintenance-peterschutt" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=peterschutt" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=peterschutt" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=peterschutt" title="Tests">⚠️</a> <a href="#ideas-peterschutt" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-peterschutt" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Apeterschutt" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://ashwinvin.github.io"><img src="https://assets.kitploit.com/production/public/readmes/54125/23adb745982227a24fff8903555abc8f53dfd3d63ff2eff1767b9df30462013e/e0bdeef951eeaf745ca738e8bf159cbd312f30e5433da5caee6fc3629216f698-display-v1.webp" width="100px;" alt="Ashwin Vinod"/><br /><sub><b>Ashwin Vinod</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ashwinvin" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=ashwinvin" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://www.damiankress.de"><img src="https://assets.kitploit.com/production/public/readmes/54125/56aabd4ee6987dcba68c0c2e3e822e22caec36a9e25e32686201548596933f2b/85cf56592dc0e33a04cec96dd36a158919d7f325d6a919a3341f501c84dc6a91-display-v1.webp" width="100px;" alt="Damian"/><br /><sub><b>Damian</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=dkress59" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://remotepixel.ca"><img src="https://assets.kitploit.com/production/public/readmes/54125/512f419b221227c898b114dc66d89bf66b406460bd38838863884133ff9b6dee/14af457a3d67003240a217a6ebb8b493e24e997fae3b0cc3bc73b67ecbd72577-display-v1.webp" width="100px;" alt="Vincent Sarago"/><br /><sub><b>Vincent Sarago</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=vincentsarago" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://hotfix.guru"><img src="https://assets.kitploit.com/production/public/readmes/54125/5e658468df586304500ab4fb705fad107f912833cd1da627d6af7019454b4928/945a0bdf0061a1504bc8cab05fd83d1fb25dda7a176c645e8867ba2b5a1c54dc-display-v1.webp" width="100px;" alt="Jonas Krüger Svensson"/><br /><sub><b>Jonas Krüger Svensson</b></sub></a><br /><a href="#platform-JonasKs" title="Packaging/porting to new platform">📦</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sondrelg"><img src="https://assets.kitploit.com/production/public/readmes/54125/59c8e74211247a6ac94f9a475b94b43d6657f744326449f6dc1d7ea4d2526930/801354eece401f0ed46bf97f5397fd8895b3146a7432bff450081f80ece257de-display-v1.webp" width="100px;" alt="Sondre Lillebø Gundersen"/><br /><sub><b>Sondre Lillebø Gundersen</b></sub></a><br /><a href="#platform-sondrelg" title="Packaging/porting to new platform">📦</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vrslev"><img src="https://assets.kitploit.com/production/public/readmes/54125/cc22f022ad70cbda21c9eab68c9a4103f3045af11c021a23a827d8977414cc08/fe418f8315719b14d304c49b420541b623a53e4749b442069b27b6532991f1c6-display-v1.webp" width="100px;" alt="Lev"/><br /><sub><b>Lev</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=vrslev" title="Code">💻</a> <a href="#ideas-vrslev" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/timwedde"><img src="https://assets.kitploit.com/production/public/readmes/54125/61a82f76e834ab13c2532e4d16e19ab0c5ff3f23ce25dc53f280545a384a2edc/6ab0765190429abfab3c086110c7391f72dd9df06236fa542cc9627027c34758-display-v1.webp" width="100px;" alt="Tim Wedde"/><br /><sub><b>Tim Wedde</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=timwedde" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tclasen"><img src="https://assets.kitploit.com/production/public/readmes/54125/d177e4e767a2a010e9e20c7e2ccd9049e674e8304cf0c6cf4ff9c8271a0e4055/c738cd1040be71e3b8aaa4b00cdf90fc617008242df406112bef8aaddf8388af-display-v1.webp" width="100px;" alt="Tory Clasen"/><br /><sub><b>Tory Clasen</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=tclasen" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://t.me/Bobronium"><img src="https://assets.kitploit.com/production/public/readmes/54125/e243fe927ef2701ff5f5b3a1e1c256a60f9605efd2aa13546ee6159892dab0bd/ea0b5418d9bf6dd1d6b1649fb0d9665770ccf8f4957c9906739464a9559c4595-display-v1.webp" width="100px;" alt="Arseny Boykov"/><br /><sub><b>Arseny Boykov</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Bobronium" title="Code">💻</a> <a href="#ideas-Bobronium" title="Ideas, Planning, & Feedback">🤔</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/yudjinn"><img src="https://assets.kitploit.com/production/public/readmes/54125/f9881b5fd8f0203bd0fd4f0e638fc94553549aa2cbe7d3c7ef611764f2536be6/eade801852501b32e36fefa04ba3b0281a5c21383fc2c719481abf1229dee817-display-v1.webp" width="100px;" alt="Jacob Rodgers"/><br /><sub><b>Jacob Rodgers</b></sub></a><br /><a href="#example-yudjinn" title="Examples">💡</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/danesolberg"><img src="https://assets.kitploit.com/production/public/readmes/54125/ff569c2184bc300aa94a1011d161546e5b16720fa68d9120f2e00e1803b6f2bd/930e1b583d50cb8bfaa20c91fd96f5c90465332bc5fa84d1c0bd5b788fa4260a-display-v1.webp" width="100px;" alt="Dane Solberg"/><br /><sub><b>Dane Solberg</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=danesolberg" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/madlad33"><img src="https://assets.kitploit.com/production/public/readmes/54125/e792b8e7ecbe26c41feca6d0aa7466b8187207db435f352fef7fff88681dcfba/29407ae8b4fe1fd1bb27f485fbe1c8799a10e73253e8d5d29ac52d85492f378b-display-v1.webp" width="100px;" alt="madlad33"/><br /><sub><b>madlad33</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=madlad33" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="http://matthewtyleraylward.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/3bffac7af746f12af08fd46f1106a575d8adf376f30d788685a54c11d07e17a8/5f5eaa03eeba82c8408eefed01ea3068228dc7751e0cd34a05e256cfc33c7359-display-v1.webp" width="100px;" alt="Matthew Aylward "/><br /><sub><b>Matthew Aylward </b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Butch78" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Joko013"><img src="https://assets.kitploit.com/production/public/readmes/54125/3f089fbc0ddb0b31316b21ebde7275cc1308b63f0cfed4a81b2b651bf938c71b/90efaf18ab51b61dba8bc7aed12dfda70d209b44731271d50b7202c5d3ab6e59-display-v1.webp" width="100px;" alt="Jan Klima"/><br /><sub><b>Jan Klima</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Joko013" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/i404788"><img src="https://assets.kitploit.com/production/public/readmes/54125/e1aba1dd1fe0bc19a9a8c6d657afa3359ebf0a1f8720ff2cc370e4ca83c37012/0a7cfa4b1466d8e4805dd58e799d61375a4784bbeb2b1bda749bce8468fd9bad-display-v1.webp" width="100px;" alt="C2D"/><br /><sub><b>C2D</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=i404788" title="Tests">⚠️</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/to-ph"><img src="https://assets.kitploit.com/production/public/readmes/54125/3d184bed6a07b3d5d2b9274629ad8bf36b96bd63d8c66e54cd55cb5820e8524f/b8a2533dfe6785389a3bffc1173283b8edc5c81d3b80d6ecfcc2f1f28d0d1d93-display-v1.webp" width="100px;" alt="to-ph"/><br /><sub><b>to-ph</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=to-ph" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://imbev.gitlab.io/site"><img src="https://assets.kitploit.com/production/public/readmes/54125/6146ea265b16d445dfc88dbe6f970a0d5dcfff350224ff0fea8e36f7662679c1/48cb0289d06635fccc0c1c805b9361dc0ab2f8eabb53cace7dc3726274ec6e67-display-v1.webp" width="100px;" alt="imbev"/><br /><sub><b>imbev</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=imbev" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://git.roboces.dev/catalin"><img src="https://assets.kitploit.com/production/public/readmes/54125/913f9392ff871b91d59b6bcca91528fabab38d7992889d22edb37e8659e3df3c/fda62032d3387fe68c6c8c282aedcaaf42b451b86f3b4f30af2fa36a26dbdf16-display-v1.webp" width="100px;" alt="cătălin"/><br /><sub><b>cătălin</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=185504a9" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Seon82"><img src="https://assets.kitploit.com/production/public/readmes/54125/cfa9e4a9e6bb3ab325a5ae7d344abc2acc8c52eee43dda34ee11d2907c07809d/b3235aba38c43779fe974eff543ef063002cd441f30d5ab2c448fd0e662be725-display-v1.webp" width="100px;" alt="Seon82"/><br /><sub><b>Seon82</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Seon82" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/slavugan"><img src="https://assets.kitploit.com/production/public/readmes/54125/4d61d40991d73b242c8678bab66e6809eb86780eeae8f9d8dc098f607d1d8397/28635b7caf2c773ff6320ba21445d4f8e2adf32546028c2a3a754d928e335c2c-display-v1.webp" width="100px;" alt="Slava"/><br /><sub><b>Slava</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=slavugan" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Harry-Lees"><img src="https://assets.kitploit.com/production/public/readmes/54125/33499f12e7d47b28a493d52a6a4ac736f500018e266e53b571f6ff23610daa8e/31f7396f695381480e26ac0bfc7667371fc6e418a77c3e3e7f83bb7c0cb2312c-display-v1.webp" width="100px;" alt="Harry"/><br /><sub><b>Harry</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Harry-Lees" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=Harry-Lees" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/cofin"><img src="https://assets.kitploit.com/production/public/readmes/54125/6ef102acb41490655c7c9587ad7f36b6562f966dd89fc4982fb22486c1684d20/f97d2595c751f55d34a5fb0250ab84caf8f7393056949f58b28c4e753fc5ef97-display-v1.webp" width="100px;" alt="Cody Fincher"/><br /><sub><b>Cody Fincher</b></sub></a><br /><a href="#maintenance-cofin" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=cofin" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=cofin" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=cofin" title="Tests">⚠️</a> <a href="#ideas-cofin" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-cofin" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Acofin" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.patreon.com/cclauss"><img src="https://assets.kitploit.com/production/public/readmes/54125/8d82b5728fc94ab53f624e2c8030ee4a2036c94f98c6da7b1d9c496eb187b102/774b146cc9cc159b7fd2300276cfb853b8413fbaeaa363d138f23c7e697d6327-display-v1.webp" width="100px;" alt="Christian Clauss"/><br /><sub><b>Christian Clauss</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=cclauss" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/josepdaniel"><img src="https://assets.kitploit.com/production/public/readmes/54125/f8d1f00190ffed5913cb3aabbb7f08dbe8f9375cdc3c701318931da057103417/f9be2313751956bef69d44e36ed66bf1564ca3ee0b6563507a60c6daead8f2af-display-v1.webp" width="100px;" alt="josepdaniel"/><br /><sub><b>josepdaniel</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=josepdaniel" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/devtud"><img src="https://assets.kitploit.com/production/public/readmes/54125/c0135f136b1a1f1c1a0640f6953a16aff2785c5effb38313b920a916742266ed/570a2960b77e4f7edef89356434ba90d6c6c722dcf14456695875273a452e0ed-display-v1.webp" width="100px;" alt="devtud"/><br /><sub><b>devtud</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/issues?q=author%3Adevtud" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nramos0"><img src="https://assets.kitploit.com/production/public/readmes/54125/5b85e16e6bfee6b545b15a661b1d66aa9304116b8df66545514d624676a8d021/9e7beafe62f0b08dca4bf4c5279a04a4c307fa658e87dfc73ee1e33b82941f8d-display-v1.webp" width="100px;" alt="Nicholas Ramos"/><br /><sub><b>Nicholas Ramos</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=nramos0" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/seladb"><img src="https://assets.kitploit.com/production/public/readmes/54125/2af4fa910e71cfe05fcdac37928cf9f17ad7c3185c71d253b5cb7b06d27ed1a3/b6f3ba6d554e1dbfa9bb909343782a4a05039fbbe2b7bcb72dd2650ad4ab91d8-display-v1.webp" width="100px;" alt="seladb"/><br /><sub><b>seladb</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=seladb" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=seladb" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/aedify-swi"><img src="https://assets.kitploit.com/production/public/readmes/54125/8c0872af366dc5a9851a937ec499caf05db8b6ed4c2553a9fac3d070db82674d/f3a4b6abf7ea4ae7b8ca6661fec61f5e4a1013f4ee471f0b4f38b73114af1e8f-display-v1.webp" width="100px;" alt="Simon Wienhöfer"/><br /><sub><b>Simon Wienhöfer</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=aedify-swi" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mobiusxs"><img src="https://assets.kitploit.com/production/public/readmes/54125/9537c6790725f4c569ae38dea7722e2bc489dea3556c729cfd043bf82338564e/ef1fedf62de9f5ed4a5438aea376000a95c3e15b5edfc15d380ad4841a543993-display-v1.webp" width="100px;" alt="MobiusXS"/><br /><sub><b>MobiusXS</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mobiusxs" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://aidansimard.dev"><img src="https://assets.kitploit.com/production/public/readmes/54125/d14a554c0f827c023783d3cb807c914786e35d25f027c6270272b732a07d67f5/ef4f3e588785bc83696f79ab32a7a30c104cfe6b9a94ffc40da79ec0e9c35ce2-display-v1.webp" width="100px;" alt="Aidan Simard"/><br /><sub><b>Aidan Simard</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Aidan-Simard" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/waweber"><img src="https://assets.kitploit.com/production/public/readmes/54125/799eac68f18be48f8a3483e7653c701eba5c52c825c7062764c09c59f3ef081b/53a00939563838e56c04a538851f7d85ed576dd531760a08a39add8d450d4b9c-display-v1.webp" width="100px;" alt="wweber"/><br /><sub><b>wweber</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=waweber" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://scolvin.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/bc42fe32b39302fbcf13562b19638e7e59cff31974853c51ee5cc0bb8efa4ff5/04666b66ec55df891db00d981661d6ed77977de9cef79a2a97b9d817d19d3ca7-display-v1.webp" width="100px;" alt="Samuel Colvin"/><br /><sub><b>Samuel Colvin</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=samuelcolvin" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/toudi"><img src="https://assets.kitploit.com/production/public/readmes/54125/d055bffdb1356f03cf1c705520a66954685f3fe2c5aa56724dcef05fb3fc59da/01a7f723600e146eec6240d03a03d2ef87bf46ebe119b119a1e3df532ad0f581-display-v1.webp" width="100px;" alt="Mateusz Mikołajczyk"/><br /><sub><b>Mateusz Mikołajczyk</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=toudi" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Alex-CodeLab"><img src="https://assets.kitploit.com/production/public/readmes/54125/b0e7cfded6e188e909a9c8afd217149f6f0f59ac48135787f327a0e55a8b2ba1/7878d36b0ecd8b27b7d11008af0f52b8ebce6d513faaf4294a5ba9ca9f567c81-display-v1.webp" width="100px;" alt="Alex "/><br /><sub><b>Alex </b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Alex-CodeLab" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/odiseo0"><img src="https://assets.kitploit.com/production/public/readmes/54125/407f9f7cc9b26e885eff5ddcbea4fdc5fa038d45356c05e74683a6cd97e0f46e/17bfa919793f0eb02c325f728c34b5a954947dc9f4c21585354ac05a1697525c-display-v1.webp" width="100px;" alt="Odiseo"/><br /><sub><b>Odiseo</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=odiseo0" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ingjavierpinilla"><img src="https://assets.kitploit.com/production/public/readmes/54125/b9ce53fa990a97d55ce9bee6f169f0d5f0bbe81e2fe5205e90a133032cd88e31/2eb978885808a2b1564aa994135aec297138a705dc824b18388283a1f65e6add-display-v1.webp" width="100px;" alt="Javier Pinilla"/><br /><sub><b>Javier Pinilla</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ingjavierpinilla" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Chaoyingz"><img src="https://assets.kitploit.com/production/public/readmes/54125/3654b2d0e656d882bb46c857babf531c145da4ec1773a9c772b8a5ea341966ec/ccd0a26030990b44d19086aba69842cd082ac751a950fa7c93f04a522a611e1b-display-v1.webp" width="100px;" alt="Chaoying"/><br /><sub><b>Chaoying</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Chaoyingz" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/infohash"><img src="https://assets.kitploit.com/production/public/readmes/54125/f6b5e7f95d76b915f13f8609b584af60c01a5b2ad69e0031f6e944a5271db313/6e1d199b58013fc6a70cad8436ebaadf8b29b1b6ca70037ff990e064aaf18d12-display-v1.webp" width="100px;" alt="infohash"/><br /><sub><b>infohash</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=infohash" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/john-ingles/"><img src="https://assets.kitploit.com/production/public/readmes/54125/9e80945cab5f42788d689f76c32879ede4d1483752105b04ec9d3401f04731b1/2fc96eb80e409fb0f5def65cff12dbc8cf75c9eb6ad8525ce9c8ffaf5516e719-display-v1.webp" width="100px;" alt="John Ingles"/><br /><sub><b>John Ingles</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=john-ingles" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/h0rn3t"><img src="https://assets.kitploit.com/production/public/readmes/54125/071053a9f88579959c8e3116947dbdbf2c591e6623843e6001d315e70121fd76/a382054902c78cb33066e03dc2f923c520e40424deabba72332e9f3dc16feba2-display-v1.webp" width="100px;" alt="Eugene"/><br /><sub><b>Eugene</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=h0rn3t" title="Tests">⚠️</a> <a href="https://github.com/litestar-org/litestar/commits?author=h0rn3t" title="Code">💻</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jonadaly"><img src="https://assets.kitploit.com/production/public/readmes/54125/2b3aca23fca599c12469ea5857b1692da95409f1d13e1036b092cc3627210e42/7a5ae2f5445c667223debb63d552c71eb6d497f065b32a25c94bf019b4056372-display-v1.webp" width="100px;" alt="Jon Daly"/><br /><sub><b>Jon Daly</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=jonadaly" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=jonadaly" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://harshallaheri.me/"><img src="https://assets.kitploit.com/production/public/readmes/54125/3c7bd08c351c87f04f7f1e96b7c502d03eb4bbabd3711a8fbe0e1c3fb9c269c3/089e52b164250e79eaefdc33a26054611be3faf706fff7f203b3164c81389a35-display-v1.webp" width="100px;" alt="Harshal Laheri"/><br /><sub><b>Harshal Laheri</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=Harshal6927" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=Harshal6927" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/sorasful"><img src="https://assets.kitploit.com/production/public/readmes/54125/e157f46d2bf0ffeddd420f76470d9c368d449b2a9a4365b1efc9e654ca2321ea/270e16f701964a41c7b3571c2168dadeba26b414e91c62915e74a8539113cf5d-display-v1.webp" width="100px;" alt="Téva KRIEF"/><br /><sub><b>Téva KRIEF</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=sorasful" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jtraub"><img src="https://assets.kitploit.com/production/public/readmes/54125/26d68d19df7c59d1f6b34127f9ae6b117ebeb20b0efec63bd2f025db7c08298e/491e76647af1f081ede8f3e4573b8b59854d63623e171c55586c97a687feeeef-display-v1.webp" width="100px;" alt="Konstantin Mikhailov"/><br /><sub><b>Konstantin Mikhailov</b></sub></a><br /><a href="#maintenance-jtraub" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=jtraub" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=jtraub" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=jtraub" title="Tests">⚠️</a> <a href="#ideas-jtraub" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-jtraub" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Ajtraub" title="Bug reports">🐛</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://linkedin.com/in/mitchell-henry334/"><img src="https://assets.kitploit.com/production/public/readmes/54125/3eace07ea9f88dcb5bb568453b1b53c8d79f55957196187b37e5097888f9e7d8/4b9bf9bfd301ee4e1dac9cb1905f67f99d516db19f464033b7689df0249af4af-display-v1.webp" width="100px;" alt="Mitchell Henry"/><br /><sub><b>Mitchell Henry</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=devmitch" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/chbndrhnns"><img src="https://assets.kitploit.com/production/public/readmes/54125/1a8ff0e0a6293fdb3ec02d6c890abd2764dc9e205eb52ac7e22e1c844b570ee7/4f303c19deed9a40b78b42615560ec615d655a21866d72cf953a6fbf3f1b4254-display-v1.webp" width="100px;" alt="chbndrhnns"/><br /><sub><b>chbndrhnns</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=chbndrhnns" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nielsvanhooy"><img src="https://assets.kitploit.com/production/public/readmes/54125/6f57ae6137cf78f77351821487e56fd3853e8d853a5f40cb5fd7979f8b0b7a5e/b1e40b10f75cb577e769e8a6cb11796cd6729e84fdd44c401a87d9622d71254c-display-v1.webp" width="100px;" alt="nielsvanhooy"/><br /><sub><b>nielsvanhooy</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=nielsvanhooy" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Anielsvanhooy" title="Bug reports">🐛</a> <a href="https://github.com/litestar-org/litestar/commits?author=nielsvanhooy" title="Tests">⚠️</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/provinzkraut"><img src="https://assets.kitploit.com/production/public/readmes/54125/30f9f97c03cbdc20acc50e66245044ba71e960aac3ebe32e8a9df9e147e144f6/8a04ea0f923c34bce2790c40700b048bd6bb92a0b9efe7fbb65f138813c7b68f-display-v1.webp" width="100px;" alt="provinzkraut"/><br /><sub><b>provinzkraut</b></sub></a><br /><a href="#maintenance-provinzkraut" title="Maintenance">🚧</a> <a href="https://github.com/litestar-org/litestar/commits?author=provinzkraut" title="Code">💻</a> <a href="https://github.com/litestar-org/litestar/commits?author=provinzkraut" title="Documentation">📖</a> <a href="https://github.com/litestar-org/litestar/commits?author=provinzkraut" title="Tests">⚠️</a> <a href="#ideas-provinzkraut" title="Ideas, Planning, & Feedback">🤔</a> <a href="#example-provinzkraut" title="Examples">💡</a> <a href="https://github.com/litestar-org/litestar/issues?q=author%3Aprovinzkraut" title="Bug reports">🐛</a> <a href="#design-provinzkraut" title="Design">🎨</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jab"><img src="https://assets.kitploit.com/production/public/readmes/54125/b3f23149939f25bbbd8ff5eae26ca95b2e1c7b85d8a4bde050caa9627143eb78/73ebb63ac1c5820dd44c5a5c688e137c0bdeedc9290c5a1a8b6350099a6e80c9-display-v1.webp" width="100px;" alt="Joshua Bronson"/><br /><sub><b>Joshua Bronson</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=jab" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://linkedin.com/in/roman-reznikov"><img src="https://assets.kitploit.com/production/public/readmes/54125/fc987fa88c9684526eba83cd638453d9a16f095c2148074a0d1c07b791db2403/583b811c83fd8eb8daf43251c1b60a797f0d8aa96b5e780afe5c9f91abd68492-display-v1.webp" width="100px;" alt="Roman Reznikov"/><br /><sub><b>Roman Reznikov</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ReznikovRoman" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://mookrs.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/6a812dd51ac82f47c37bf9fe17c34f52b2e6caac09acbf126cf7438ca1cf6df2/7f8a81180b7ab8669e065528f6e7d5b5e989614f2705173795d8475d305fbbc1-display-v1.webp" width="100px;" alt="mookrs"/><br /><sub><b>mookrs</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mookrs" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="http://mike.depalatis.net"><img src="https://assets.kitploit.com/production/public/readmes/54125/8aeffd009d5d563daf68d4fc3f33a06e836d7326b179d52093f6f1d7f0e419a4/55397ec632090452a1ea25ee6d353e39468dba64147db00abf9c96d71054347e-display-v1.webp" width="100px;" alt="Mike DePalatis"/><br /><sub><b>Mike DePalatis</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=mivade" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/pemocarlo"><img src="https://assets.kitploit.com/production/public/readmes/54125/48a9ecccf55b3fa7657f2912f928c9356b3a96a9bac1aa1d016a945496fc6a17/fef75afa6c573bd6200c6480acf50fd5f02116d996f035fd603334c3d11decf0-display-v1.webp" width="100px;" alt="Carlos Alberto Pérez-Molano"/><br /><sub><b>Carlos Alberto Pérez-Molano</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=pemocarlo" title="Documentation">📖</a></td>
<td align="center" valign="top" width="14.28%"><a href="https://www.bestcryptocodes.com"><img src="https://assets.kitploit.com/production/public/readmes/54125/e5f1a415e4d776bc0cc867d3555f77eee48bb688c386cf1bd8e69f423c5e0c4c/6aa060a7d18e76f5e676da579e8ba6d814900836933c7f12722c78d5f452e938-display-v1.webp" width="100px;" alt="ThinksFast"/><br /><sub><b>ThinksFast</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ThinksFast" title="Tests">⚠️</a> <a href="https://github.com/litestar-org/litestar/commits?author=ThinksFast" title="Documentation">📖</a></td>
</tr>
<tr>
<td align="center" valign="top" width="14.28%"><a href="https://github.com/ottermata"><img src="https://assets.kitploit.com/production/public/readmes/54125/46c30ce09312a87901d38ee4bf9d43aa2c00d91ce7051d325ffef44db3b9053c/6ff18845272a7069b7bebe9a3b282b6ac5638ca67f2e2d48f86d04488e2ea580-display-v1.webp" width="100px;" alt="Christopher Krause"/><br /><sub><b>Christopher Krause</b></sub></a><br /><a href="https://github.com/litestar-org/litestar/commits?author=ottermata" title="Code">💻</a></td>
<td align="center" valign="top" width="14.28%"><a href="http<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
Este projeto segue a especificação [all-contributors](https://github.com/all-contributors/all-contributors).
Contribuições de qualquer tipo são bem-vindas!
</details>
<!-- contributors-end -->