All checks were successful
check / gate (push) Successful in 23s
b7a7e94 made the bridge read workflow files, which the strict fake Gitea
refused (7 red). The fake now serves contents (404 when absent), and new
tests cover: error posted with no runs, valid files add nothing, no repost,
.gitea/workflows wins over .github/workflows, and each workflow_problem
shape. pyyaml declared in dev extras (the bridge imports it).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
51 lines
1.4 KiB
TOML
51 lines
1.4 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["api*"]
|
|
|
|
[project]
|
|
name = "windy-git"
|
|
version = "0.1.0"
|
|
description = "Windy Git — the version, permission and provenance plane over Windy Cloud."
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"fastapi>=0.115",
|
|
"uvicorn[standard]>=0.32",
|
|
"pydantic>=2.9",
|
|
"pydantic-settings>=2.6",
|
|
"sqlalchemy[asyncio]>=2.0",
|
|
"asyncpg>=0.30",
|
|
# Alembic runs synchronously (env.py strips +asyncpg), so the image needs a
|
|
# sync driver too. Without it migrations fail INSIDE the container while
|
|
# passing on a developer machine that happens to have it — the kind of gap
|
|
# that only shows up on a fresh deploy.
|
|
"psycopg2-binary>=2.9",
|
|
"alembic>=1.14",
|
|
"httpx>=0.27",
|
|
"boto3>=1.35",
|
|
# ES256 verification of Eternitas EPTs (G3.2/G9.1). Without crypto extras
|
|
# PyJWT cannot verify EC signatures and silently offers no protection.
|
|
"pyjwt[crypto]>=2.9",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = ["pytest>=8.3", "pyyaml>=6.0", "pytest-asyncio>=0.24", "ruff>=0.7", "mypy>=1.13"]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py312"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B", "SIM"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
ignore_missing_imports = true
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["api/tests"]
|
|
asyncio_mode = "auto"
|