Fastapi

Latest version: v0.115.8

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 13 of 34

0.81.0

Not secure
Features

* ✨ Add ReDoc `<noscript>` warning when JS is disabled. PR [5074](https://github.com/tiangolo/fastapi/pull/5074) by [evroon](https://github.com/evroon).
* ✨ Add support for `FrozenSet` in parameters (e.g. query). PR [2938](https://github.com/tiangolo/fastapi/pull/2938) by [juntatalor](https://github.com/juntatalor).
* ✨ Allow custom middlewares to raise `HTTPException`s and propagate them. PR [2036](https://github.com/tiangolo/fastapi/pull/2036) by [ghandic](https://github.com/ghandic).
* ✨ Preserve `json.JSONDecodeError` information when handling invalid JSON in request body, to support custom exception handlers that use its information. PR [4057](https://github.com/tiangolo/fastapi/pull/4057) by [UKnowWhoIm](https://github.com/UKnowWhoIm).

Fixes

* 🐛 Fix `jsonable_encoder` for dataclasses with pydantic-compatible fields. PR [3607](https://github.com/tiangolo/fastapi/pull/3607) by [himbeles](https://github.com/himbeles).
* 🐛 Fix support for extending `openapi_extras` with parameter lists. PR [4267](https://github.com/tiangolo/fastapi/pull/4267) by [orilevari](https://github.com/orilevari).

Docs

* ✏ Fix a simple typo in `docs/en/docs/python-types.md`. PR [5193](https://github.com/tiangolo/fastapi/pull/5193) by [GlitchingCore](https://github.com/GlitchingCore).
* ✏ Fix typos in `tests/test_schema_extra_examples.py`. PR [5126](https://github.com/tiangolo/fastapi/pull/5126) by [supraaxdd](https://github.com/supraaxdd).
* ✏ Fix typos in `docs/en/docs/tutorial/path-params-numeric-validations.md`. PR [5142](https://github.com/tiangolo/fastapi/pull/5142) by [invisibleroads](https://github.com/invisibleroads).
* 📝 Add step about upgrading pip in the venv to avoid errors when installing dependencies `docs/en/docs/contributing.md`. PR [5181](https://github.com/tiangolo/fastapi/pull/5181) by [edisnake](https://github.com/edisnake).
* ✏ Reword and clarify text in tutorial `docs/en/docs/tutorial/body-nested-models.md`. PR [5169](https://github.com/tiangolo/fastapi/pull/5169) by [papb](https://github.com/papb).
* ✏ Fix minor typo in `docs/en/docs/features.md`. PR [5206](https://github.com/tiangolo/fastapi/pull/5206) by [OtherBarry](https://github.com/OtherBarry).
* ✏ Fix minor typos in `docs/en/docs/async.md`. PR [5125](https://github.com/tiangolo/fastapi/pull/5125) by [Ksenofanex](https://github.com/Ksenofanex).
* 📝 Add external link to docs: "Fastapi, Docker(Docker compose) and Postgres". PR [5033](https://github.com/tiangolo/fastapi/pull/5033) by [krishnardt](https://github.com/krishnardt).
* 📝 Simplify example for docs for Additional Responses, remove unnecessary `else`. PR [4693](https://github.com/tiangolo/fastapi/pull/4693) by [adriangb](https://github.com/adriangb).
* 📝 Update docs, compare enums with identity instead of equality. PR [4905](https://github.com/tiangolo/fastapi/pull/4905) by [MicaelJarniac](https://github.com/MicaelJarniac).
* ✏ Fix typo in `docs/en/docs/python-types.md`. PR [4886](https://github.com/tiangolo/fastapi/pull/4886) by [MicaelJarniac](https://github.com/MicaelJarniac).
* 🎨 Fix syntax highlighting in docs for OpenAPI Callbacks. PR [4368](https://github.com/tiangolo/fastapi/pull/4368) by [xncbf](https://github.com/xncbf).
* ✏ Reword confusing sentence in docs file `typo-fix-path-params-numeric-validations.md`. PR [3219](https://github.com/tiangolo/fastapi/pull/3219) by [ccrenfroe](https://github.com/ccrenfroe).
* 📝 Update docs for handling HTTP Basic Auth with `secrets.compare_digest()` to account for non-ASCII characters. PR [3536](https://github.com/tiangolo/fastapi/pull/3536) by [lewoudar](https://github.com/lewoudar).
* 📝 Update docs for testing, fix examples with relative imports. PR [5302](https://github.com/tiangolo/fastapi/pull/5302) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Add Russian translation for `docs/ru/docs/index.md`. PR [5289](https://github.com/tiangolo/fastapi/pull/5289) by [impocode](https://github.com/impocode).
* 🌐 Add Russian translation for `docs/ru/docs/deployment/versions.md`. PR [4985](https://github.com/tiangolo/fastapi/pull/4985) by [emp7yhead](https://github.com/emp7yhead).
* 🌐 Add Portuguese translation for `docs/pt/docs/tutorial/header-params.md`. PR [4921](https://github.com/tiangolo/fastapi/pull/4921) by [batlopes](https://github.com/batlopes).
* 🌐 Update `ko/mkdocs.yml` for a missing link. PR [5020](https://github.com/tiangolo/fastapi/pull/5020) by [dalinaum](https://github.com/dalinaum).

Internal

* ⬆ Bump dawidd6/action-download-artifact from 2.21.1 to 2.22.0. PR [5258](https://github.com/tiangolo/fastapi/pull/5258) by [dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ [pre-commit.ci] pre-commit autoupdate. PR [5196](https://github.com/tiangolo/fastapi/pull/5196) by [pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
* 🔥 Delete duplicated tests in `tests/test_tutorial/test_sql_databases/test_sql_databases.py`. PR [5040](https://github.com/tiangolo/fastapi/pull/5040) by [raccoonyy](https://github.com/raccoonyy).
* ♻ Simplify internal RegEx in `fastapi/utils.py`. PR [5057](https://github.com/tiangolo/fastapi/pull/5057) by [pylounge](https://github.com/pylounge).
* 🔧 Fix Type hint of `auto_error` which does not need to be `Optional[bool]`. PR [4933](https://github.com/tiangolo/fastapi/pull/4933) by [DavidKimDY](https://github.com/DavidKimDY).
* 🔧 Update mypy config, use `strict = true` instead of manual configs. PR [4605](https://github.com/tiangolo/fastapi/pull/4605) by [michaeloliverx](https://github.com/michaeloliverx).
* ♻ Change a `dict()` for `{}` in `fastapi/utils.py`. PR [3138](https://github.com/tiangolo/fastapi/pull/3138) by [ShahriyarR](https://github.com/ShahriyarR).
* ♻ Move internal variable for errors in `jsonable_encoder` to put related code closer. PR [4560](https://github.com/tiangolo/fastapi/pull/4560) by [GuilleQP](https://github.com/GuilleQP).
* ♻ Simplify conditional assignment in `fastapi/dependencies/utils.py`. PR [4597](https://github.com/tiangolo/fastapi/pull/4597) by [cikay](https://github.com/cikay).
* ⬆ Upgrade version pin accepted for Flake8, for internal code, to `flake8 >=3.8.3,<6.0.0`. PR [4097](https://github.com/tiangolo/fastapi/pull/4097) by [jamescurtin](https://github.com/jamescurtin).
* 🍱 Update Jina banner, fix typo. PR [5301](https://github.com/tiangolo/fastapi/pull/5301) by [tiangolo](https://github.com/tiangolo).

0.80.0

Not secure
Breaking Changes - Fixes

* 🐛 Fix `response_model` not invalidating `None`. PR [2725](https://github.com/tiangolo/fastapi/pull/2725) by [hukkin](https://github.com/hukkin).

If you are using `response_model` with some type that doesn't include `None` but the function is returning `None`, it will now raise an internal server error, because you are returning invalid data that violates the contract in `response_model`. Before this release it would allow breaking that contract returning `None`.

For example, if you have an app like this:

Python
from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
name: str
price: Optional[float] = None
owner_ids: Optional[List[int]] = None

app = FastAPI()

app.get("/items/invalidnone", response_model=Item)
def get_invalid_none():
return None


...calling the path `/items/invalidnone` will raise an error, because `None` is not a valid type for the `response_model` declared with `Item`.

You could also be implicitly returning `None` without realizing, for example:

Python
from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
name: str
price: Optional[float] = None
owner_ids: Optional[List[int]] = None

app = FastAPI()

app.get("/items/invalidnone", response_model=Item)
def get_invalid_none():
if flag:
return {"name": "foo"}
if flag is False, at this point the function will implicitly return None


If you have *path operations* using `response_model` that need to be allowed to return `None`, make it explicit in `response_model` using `Union[Something, None]`:

Python
from typing import Union

from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
name: str
price: Optional[float] = None
owner_ids: Optional[List[int]] = None

app = FastAPI()

app.get("/items/invalidnone", response_model=Union[Item, None])
def get_invalid_none():
return None


This way the data will be correctly validated, you won't have an internal server error, and the documentation will also reflect that this *path operation* could return `None` (or `null` in JSON).

Fixes

* ⬆ Upgrade Swagger UI copy of `oauth2-redirect.html` to include fixes for flavors of authorization code flows in Swagger UI. PR [3439](https://github.com/tiangolo/fastapi/pull/3439) initial PR by [koonpeng](https://github.com/koonpeng).
* ♻ Strip empty whitespace from description extracted from docstrings. PR [2821](https://github.com/tiangolo/fastapi/pull/2821) by [and-semakin](https://github.com/and-semakin).
* 🐛 Fix cached dependencies when using a dependency in `Security()` and other places (e.g. `Depends()`) with different OAuth2 scopes. PR [2945](https://github.com/tiangolo/fastapi/pull/2945) by [laggardkernel](https://github.com/laggardkernel).
* 🎨 Update type annotations for `response_model`, allow things like `Union[str, None]`. PR [5294](https://github.com/tiangolo/fastapi/pull/5294) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Fix typos in German translation for `docs/de/docs/features.md`. PR [4533](https://github.com/tiangolo/fastapi/pull/4533) by [0xflotus](https://github.com/0xflotus).
* 🌐 Add missing navigator for `encoder.md` in Korean translation. PR [5238](https://github.com/tiangolo/fastapi/pull/5238) by [joonas-yoon](https://github.com/joonas-yoon).
* (Empty PR merge by accident) [4913](https://github.com/tiangolo/fastapi/pull/4913).

0.79.1

Not secure
Fixes

* 🐛 Fix `jsonable_encoder` using `include` and `exclude` parameters for non-Pydantic objects. PR [2606](https://github.com/tiangolo/fastapi/pull/2606) by [xaviml](https://github.com/xaviml).
* 🐛 Fix edge case with repeated aliases names not shown in OpenAPI. PR [2351](https://github.com/tiangolo/fastapi/pull/2351) by [klaa97](https://github.com/klaa97).
* 📝 Add misc dependency installs to tutorial docs. PR [2126](https://github.com/tiangolo/fastapi/pull/2126) by [TeoZosa](https://github.com/TeoZosa).

Docs

* 📝 Add note giving credit for illustrations to [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot/). PR [#5284](https://github.com/tiangolo/fastapi/pull/5284) by [tiangolo](https://github.com/tiangolo).
* ✏ Fix typo in `python-types.md`. PR [5116](https://github.com/tiangolo/fastapi/pull/5116) by [Kludex](https://github.com/Kludex).
* ✏ Fix typo in `docs/en/docs/python-types.md`. PR [5007](https://github.com/tiangolo/fastapi/pull/5007) by [atiabbz](https://github.com/atiabbz).
* 📝 Remove unneeded Django/Flask references from async topic intro. PR [5280](https://github.com/tiangolo/fastapi/pull/5280) by [carltongibson](https://github.com/carltongibson).
* ✨ Add illustrations for Concurrent burgers and Parallel burgers. PR [5277](https://github.com/tiangolo/fastapi/pull/5277) by [tiangolo](https://github.com/tiangolo). Updated docs at: [Concurrency and Burgers](https://fastapi.tiangolo.com/async/#concurrency-and-burgers).

Translations

* 🌐 Add Portuguese translation for `docs/pt/docs/tutorial/query-params.md`. PR [4775](https://github.com/tiangolo/fastapi/pull/4775) by [batlopes](https://github.com/batlopes).
* 🌐 Add Portuguese translation for `docs/pt/docs/tutorial/security/first-steps.md`. PR [4954](https://github.com/tiangolo/fastapi/pull/4954) by [FLAIR7](https://github.com/FLAIR7).
* 🌐 Add translation for `docs/zh/docs/advanced/response-cookies.md`. PR [4638](https://github.com/tiangolo/fastapi/pull/4638) by [zhangbo2012](https://github.com/zhangbo2012).
* 🌐 Add French translation for `docs/fr/docs/deployment/index.md`. PR [3689](https://github.com/tiangolo/fastapi/pull/3689) by [rjNemo](https://github.com/rjNemo).
* 🌐 Add Portuguese translation for `tutorial/handling-errors.md`. PR [4769](https://github.com/tiangolo/fastapi/pull/4769) by [frnsimoes](https://github.com/frnsimoes).
* 🌐 Add French translation for `docs/fr/docs/history-design-future.md`. PR [3451](https://github.com/tiangolo/fastapi/pull/3451) by [rjNemo](https://github.com/rjNemo).
* 🌐 Add Russian translation for `docs/ru/docs/tutorial/background-tasks.md`. PR [4854](https://github.com/tiangolo/fastapi/pull/4854) by [AdmiralDesu](https://github.com/AdmiralDesu).
* 🌐 Add Chinese translation for `docs/tutorial/security/first-steps.md`. PR [3841](https://github.com/tiangolo/fastapi/pull/3841) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Japanese translation for `docs/ja/docs/advanced/nosql-databases.md`. PR [4205](https://github.com/tiangolo/fastapi/pull/4205) by [sUeharaE4](https://github.com/sUeharaE4).
* 🌐 Add Indonesian translation for `docs/id/docs/tutorial/index.md`. PR [4705](https://github.com/tiangolo/fastapi/pull/4705) by [bas-baskara](https://github.com/bas-baskara).
* 🌐 Add Persian translation for `docs/fa/docs/index.md` and tweak right-to-left CSS. PR [2395](https://github.com/tiangolo/fastapi/pull/2395) by [mohsen-mahmoodi](https://github.com/mohsen-mahmoodi).

Internal

* 🔧 Update Jina sponsorship. PR [5283](https://github.com/tiangolo/fastapi/pull/5283) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update Jina sponsorship. PR [5272](https://github.com/tiangolo/fastapi/pull/5272) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update sponsors, Striveworks badge. PR [5179](https://github.com/tiangolo/fastapi/pull/5179) by [tiangolo](https://github.com/tiangolo).

0.79.0

Not secure
Fixes - Breaking Changes

* 🐛 Fix removing body from status codes that do not support it. PR [5145](https://github.com/tiangolo/fastapi/pull/5145) by [tiangolo](https://github.com/tiangolo).
* Setting `status_code` to `204`, `304`, or any code below `200` (1xx) will remove the body from the response.
* This fixes an error in Uvicorn that otherwise would be thrown: `RuntimeError: Response content longer than Content-Length`.
* This removes `fastapi.openapi.constants.STATUS_CODES_WITH_NO_BODY`, it is replaced by a function in utils.

Translations

* 🌐 Start of Hebrew translation. PR [5050](https://github.com/tiangolo/fastapi/pull/5050) by [itay-raveh](https://github.com/itay-raveh).
* 🔧 Add config for Swedish translations notification. PR [5147](https://github.com/tiangolo/fastapi/pull/5147) by [tiangolo](https://github.com/tiangolo).
* 🌐 Start of Swedish translation. PR [5062](https://github.com/tiangolo/fastapi/pull/5062) by [MrRawbin](https://github.com/MrRawbin).
* 🌐 Add Japanese translation for `docs/ja/docs/advanced/index.md`. PR [5043](https://github.com/tiangolo/fastapi/pull/5043) by [wakabame](https://github.com/wakabame).
* 🌐🇵🇱 Add Polish translation for `docs/pl/docs/tutorial/first-steps.md`. PR [5024](https://github.com/tiangolo/fastapi/pull/5024) by [Valaraucoo](https://github.com/Valaraucoo).

Internal

* 🔧 Update translations notification for Hebrew. PR [5158](https://github.com/tiangolo/fastapi/pull/5158) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update Dependabot commit message. PR [5156](https://github.com/tiangolo/fastapi/pull/5156) by [tiangolo](https://github.com/tiangolo).
* ⬆ Bump actions/upload-artifact from 2 to 3. PR [5148](https://github.com/tiangolo/fastapi/pull/5148) by [dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ Bump actions/cache from 2 to 3. PR [5149](https://github.com/tiangolo/fastapi/pull/5149) by [dependabot[bot]](https://github.com/apps/dependabot).
* 🔧 Update sponsors badge configs. PR [5155](https://github.com/tiangolo/fastapi/pull/5155) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [5154](https://github.com/tiangolo/fastapi/pull/5154) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update Jina sponsor badges. PR [5151](https://github.com/tiangolo/fastapi/pull/5151) by [tiangolo](https://github.com/tiangolo).
* ⬆ Bump actions/checkout from 2 to 3. PR [5133](https://github.com/tiangolo/fastapi/pull/5133) by [dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ [pre-commit.ci] pre-commit autoupdate. PR [5030](https://github.com/tiangolo/fastapi/pull/5030) by [pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci).
* ⬆ Bump nwtgck/actions-netlify from 1.1.5 to 1.2.3. PR [5132](https://github.com/tiangolo/fastapi/pull/5132) by [dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ Bump codecov/codecov-action from 2 to 3. PR [5131](https://github.com/tiangolo/fastapi/pull/5131) by [dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ Bump dawidd6/action-download-artifact from 2.9.0 to 2.21.1. PR [5130](https://github.com/tiangolo/fastapi/pull/5130) by [dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ Bump actions/setup-python from 2 to 4. PR [5129](https://github.com/tiangolo/fastapi/pull/5129) by [dependabot[bot]](https://github.com/apps/dependabot).
* 👷 Add Dependabot. PR [5128](https://github.com/tiangolo/fastapi/pull/5128) by [tiangolo](https://github.com/tiangolo).
* ♻️ Move from `Optional[X]` to `Union[X, None]` for internal utils. PR [5124](https://github.com/tiangolo/fastapi/pull/5124) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update sponsors, remove Dropbase, add Doist. PR [5096](https://github.com/tiangolo/fastapi/pull/5096) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update sponsors, remove Classiq, add ImgWhale. PR [5079](https://github.com/tiangolo/fastapi/pull/5079) by [tiangolo](https://github.com/tiangolo).

0.78.0

Not secure
Features

* ✨ Add support for omitting `...` as default value when declaring required parameters with:

* `Path()`
* `Query()`
* `Header()`
* `Cookie()`
* `Body()`
* `Form()`
* `File()`

New docs at [Tutorial - Query Parameters and String Validations - Make it required](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#make-it-required). PR [4906](https://github.com/tiangolo/fastapi/pull/4906) by [tiangolo](https://github.com/tiangolo).

Up to now, declaring a required parameter while adding additional validation or metadata needed using `...` (Ellipsis).

For example:

Python
from fastapi import Cookie, FastAPI, Header, Path, Query

app = FastAPI()


app.get("/items/{item_id}")
def main(
item_id: int = Path(default=..., gt=0),
query: str = Query(default=..., max_length=10),
session: str = Cookie(default=..., min_length=3),
x_trace: str = Header(default=..., title="Tracing header"),
):
return {"message": "Hello World"}


...all these parameters are required because the default value is `...` (Ellipsis).

But now it's possible and supported to just omit the default value, as would be done with Pydantic fields, and the parameters would still be required.

✨ For example, this is now supported:

Python
from fastapi import Cookie, FastAPI, Header, Path, Query

app = FastAPI()


app.get("/items/{item_id}")
def main(
item_id: int = Path(gt=0),
query: str = Query(max_length=10),
session: str = Cookie(min_length=3),
x_trace: str = Header(title="Tracing header"),
):
return {"message": "Hello World"}


To declare parameters as optional (not required), you can set a default value as always, for example using `None`:

Python
from typing import Union
from fastapi import Cookie, FastAPI, Header, Path, Query

app = FastAPI()


app.get("/items/{item_id}")
def main(
item_id: int = Path(gt=0),
query: Union[str, None] = Query(default=None, max_length=10),
session: Union[str, None] = Cookie(default=None, min_length=3),
x_trace: Union[str, None] = Header(default=None, title="Tracing header"),
):
return {"message": "Hello World"}


Docs

* 📝 Add docs recommending `Union` over `Optional` and migrate source examples. New docs at [Python Types Intro - Using `Union` or `Optional`](https://fastapi.tiangolo.com/python-types/#using-union-or-optional). PR [4908](https://github.com/tiangolo/fastapi/pull/4908) by [tiangolo](https://github.com/tiangolo).
* 🎨 Fix default value as set in tutorial for Path Operations Advanced Configurations. PR [4899](https://github.com/tiangolo/fastapi/pull/4899) by [tiangolo](https://github.com/tiangolo).
* 📝 Add documentation for redefined path operations. PR [4864](https://github.com/tiangolo/fastapi/pull/4864) by [madkinsz](https://github.com/madkinsz).
* 📝 Updates links for Celery documentation. PR [4736](https://github.com/tiangolo/fastapi/pull/4736) by [sammyzord](https://github.com/sammyzord).
* ✏ Fix example code with sets in tutorial for body nested models. PR [3030](https://github.com/tiangolo/fastapi/pull/3030) by [hitrust](https://github.com/hitrust).
* ✏ Fix links to Pydantic docs. PR [4670](https://github.com/tiangolo/fastapi/pull/4670) by [kinuax](https://github.com/kinuax).
* 📝 Update docs about Swagger UI self-hosting with newer source links. PR [4813](https://github.com/tiangolo/fastapi/pull/4813) by [Kastakin](https://github.com/Kastakin).
* 📝 Add link to external article: Building the Poll App From Django Tutorial With FastAPI And React. PR [4778](https://github.com/tiangolo/fastapi/pull/4778) by [jbrocher](https://github.com/jbrocher).
* 📝 Add OpenAPI warning to "Body - Fields" docs with extra schema extensions. PR [4846](https://github.com/tiangolo/fastapi/pull/4846) by [ml-evs](https://github.com/ml-evs).

Translations

* 🌐 Fix code examples in Japanese translation for `docs/ja/docs/tutorial/testing.md`. PR [4623](https://github.com/tiangolo/fastapi/pull/4623) by [hirotoKirimaru](https://github.com/hirotoKirimaru).

Internal

* ♻ Refactor dict value extraction to minimize key lookups `fastapi/utils.py`. PR [3139](https://github.com/tiangolo/fastapi/pull/3139) by [ShahriyarR](https://github.com/ShahriyarR).
* ✅ Add tests for required nonable parameters and body fields. PR [4907](https://github.com/tiangolo/fastapi/pull/4907) by [tiangolo](https://github.com/tiangolo).
* 👷 Fix installing Material for MkDocs Insiders in CI. PR [4897](https://github.com/tiangolo/fastapi/pull/4897) by [tiangolo](https://github.com/tiangolo).
* 👷 Add pre-commit CI instead of custom GitHub Action. PR [4896](https://github.com/tiangolo/fastapi/pull/4896) by [tiangolo](https://github.com/tiangolo).
* 👷 Add pre-commit GitHub Action workflow. PR [4895](https://github.com/tiangolo/fastapi/pull/4895) by [tiangolo](https://github.com/tiangolo).
* 📝 Add dark mode auto switch to docs based on OS preference. PR [4869](https://github.com/tiangolo/fastapi/pull/4869) by [ComicShrimp](https://github.com/ComicShrimp).
* 🔥 Remove un-used old pending tests, already covered in other places. PR [4891](https://github.com/tiangolo/fastapi/pull/4891) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add Python formatting hooks to pre-commit. PR [4890](https://github.com/tiangolo/fastapi/pull/4890) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add pre-commit with first config and first formatting pass. PR [4888](https://github.com/tiangolo/fastapi/pull/4888) by [tiangolo](https://github.com/tiangolo).
* 👷 Disable CI installing Material for MkDocs in forks. PR [4410](https://github.com/tiangolo/fastapi/pull/4410) by [dolfinus](https://github.com/dolfinus).

0.77.1

Not secure
Upgrades

* ⬆ Upgrade Starlette from 0.19.0 to 0.19.1. PR [4819](https://github.com/tiangolo/fastapi/pull/4819) by [Kludex](https://github.com/Kludex).

Docs

* 📝 Add link to german article: REST-API Programmieren mittels Python und dem FastAPI Modul. PR [4624](https://github.com/tiangolo/fastapi/pull/4624) by [fschuermeyer](https://github.com/fschuermeyer).
* 📝 Add external link: PyCharm Guide to FastAPI. PR [4512](https://github.com/tiangolo/fastapi/pull/4512) by [mukulmantosh](https://github.com/mukulmantosh).
* 📝 Add external link to article: Building an API with FastAPI and Supabase and Deploying on Deta. PR [4440](https://github.com/tiangolo/fastapi/pull/4440) by [aUnicornDev](https://github.com/aUnicornDev).
* ✏ Fix small typo in `docs/en/docs/tutorial/security/first-steps.md`. PR [4515](https://github.com/tiangolo/fastapi/pull/4515) by [KikoIlievski](https://github.com/KikoIlievski).

Translations

* 🌐 Add Polish translation for `docs/pl/docs/tutorial/index.md`. PR [4516](https://github.com/tiangolo/fastapi/pull/4516) by [MKaczkow](https://github.com/MKaczkow).
* ✏ Fix typo in deployment. PR [4629](https://github.com/tiangolo/fastapi/pull/4629) by [raisulislam541](https://github.com/raisulislam541).
* 🌐 Add Portuguese translation for `docs/pt/docs/help-fastapi.md`. PR [4583](https://github.com/tiangolo/fastapi/pull/4583) by [mateusjs](https://github.com/mateusjs).

Internal

* 🔧 Add notifications in issue for Uzbek translations. PR [4884](https://github.com/tiangolo/fastapi/pull/4884) by [tiangolo](https://github.com/tiangolo).

Page 13 of 34

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.