
# Laboratorio autorizado de investigación en seguridad: reproducción de CVE-2024-42370 / GHSA-4hq2-rpgc-r8r7 (inyección de variables de entorno en docs-preview.yml) — instantánea de litestar-org/litestar@18d84d84
Artefacto de investigación automatizado — no es el proyecto original.
Este repositorio es un laboratorio desechable construido por un sistema automatizado para una tesis de maestría en Université Laval sobre la reproducción de vulnerabilidades publicadas en flujos de trabajo de GitHub Actions. Es una instantánea verbatim de
litestar-org/litestaren el commit18d84d846b782ccaab06f550a4defce22b3082e8(2024-07-27), redistribuida bajo la licencia de ese proyecto, cuyo archivo se incluye sin cambios en esta instantánea.El proyecto original no está involucrado, nunca es el objetivo, y la vulnerabilidad estudiada aquí ya es pública. Cada secreto y variable en este repositorio es un valor ficticio generado aleatoriamente — no hay ninguna credencial real presente. Las referencias de acciones y las imágenes de ejecutores están fijadas a lo que resolvieron el 2024-07-27; consulta
pinning.mden la salida del sistema para cada cambio realizado en la instantánea.Preguntas u objeciones: [email protected]
| Project | Status |
|---|
| CI/CD | ||
| Quality | ||
| Package | ||
| Community | ||
| Meta |
Litestar es un framework ASGI potente, flexible aunque opinado, centrado en la creación de APIs, y ofrece validación y análisis de datos de alto rendimiento, inyección de dependencias, integración de primera clase con ORM, primitivas de autorización y mucho más de lo necesario para poner aplicaciones en funcionamiento.
Consulta la documentación 📚 para obtener una visión detallada de sus características.
Además, el repositorio fullstack de Litestar puede darte una buena impresión de cómo podría verse una aplicación Litestar completamente desarrollada.
pip install litestar
## Inicio 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 versión 1 y versión 2,
msgspec y attrsLitestar es un proyecto de código abierto y contamos con el apoyo de nuestros patrocinadores para financiar el emocionante trabajo que realizamos.
Un enorme agradecimiento a nuestros patrocinadores:
Si deseas apoyar el trabajo que realizamos, considera convertirte en patrocinador vía Polar.sh (preferido), GitHub u Open Collective.
Además, exclusivamente con Polar, puedes participar en patrocinios basados en compromisos de aporte.
Si bien admite manejadores de rutas basados en funciones, Litestar también admite y promueve la POO de Python mediante controladores basados en clases:
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álisis de Datos, Type Hints y Msgspec
Litestar está rigurosamente tipado y hace cumplir el tipado. Por ejemplo, si olvidas tipar un valor de retorno para un
manejador de ruta, se lanzará una excepción. La razón de esto es que Litestar utiliza los datos de tipado para generar
especificaciones OpenAPI, así como para validar y analizar datos. Por lo tanto, el tipado es esencial para el framework.
Además, Litestar permite ampliar su soporte mediante plugins.
### Sistema de Plugins, Soporte ORM y DTOs
Litestar tiene un sistema de plugins que permite al usuario ampliar la serialización/deserialización, la generación de
OpenAPI y otras características.
Incluye un plugin integrado para SQL Alchemy, que permite al usuario usar clases declarativas de SQLAlchemy "de forma
nativa", es decir, como parámetros de tipo que serán serializados/deserializados y devolverlos como valores desde los
manejadores de ruta.
Litestar también admite la creación programática de DTOs con una clase `DTOFactory`, que también admite el uso de
plugins.
### OpenAPI
Litestar tiene lógica personalizada para generar el esquema OpenAPI 3.1.0, incluida la generación opcional de ejemplos
mediante la librería [`polyfactory`](https://pypi.org/project/polyfactory/).
#### Documentación de API con ReDoc, Swagger-UI y Stoplight Elements
Litestar sirve la documentación a partir del esquema OpenAPI generado con:
- [ReDoc](https://redoc.ly/)
- [Swagger-UI](https://swagger.io/tools/swagger-ui/)
- [Stoplight Elements](https://github.com/stoplightio/elements)
- [RapiDoc](https://rapidocweb.com/)
Todos estos están disponibles y habilitados por defecto.
### Inyección de Dependencias
Litestar tiene un sistema de DI simple pero potente inspirado en pytest. Puedes definir dependencias con nombre — síncronas
o asíncronas — en diferentes niveles de la aplicación, y luego usarlas o sobrescribirlas de forma selectiva.
<details>
<summary>Ejemplo 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)})
Litestar es compatible con middleware ASGI típico e incluye middlewares para manejar aspectos como
Litestar tiene un mecanismo de autorización llamado guards, que permite al usuario definir funciones de guardia en diferentes
niveles de la aplicación (app, router, controller, etc.) y validar la solicitud antes de llegar a la función del manejador de rutas.
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>
### Hooks del ciclo de vida de las solicitudes
Litestar admite hooks del ciclo de vida de las solicitudes, de forma similar a Flask, es decir, `before_request` y `after_request`.
## Rendimiento
Litestar es rápido. Está a la par, o es significativamente más rápido, que los frameworks ASGI comparables.
Puedes ver y ejecutar los benchmarks [aquí](https://github.com/litestar-org/api-performance-tests),
o leer más al respecto [aquí](https://docs.litestar.dev/latest/benchmarks) en nuestra documentación.
## Contribuciones
Litestar está abierto a contribuciones, tanto grandes como pequeñas. Siempre puedes [unirte a nuestro servidor de Discord](https://discord.gg/X3FJqy8d2j)
o [unirte a nuestro espacio de Matrix](https://matrix.to/#/#litestar:matrix.org)
para discutir contribuciones y el mantenimiento del proyecto. Para conocer las pautas sobre cómo contribuir, consulta
[la guía de contribuciones](https://github.com/pvharmo2/gha-lab-ba8e0c4217/blob/main/CONTRIBUTING.rst).
<!-- contributors-start -->
## Colaboradores ✨
<details>
<summary>Gracias a estas maravillosas personas:</summary>
<a href="https://allcontributors.org/docs/en/emoji-key">Clave 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 proyecto sigue la especificación [all-contributors](https://github.com/all-contributors/all-contributors).
¡Las contribuciones de cualquier tipo son bienvenidas!
</details>
<!-- contributors-end -->