87 lines
2.1 KiB
TOML
87 lines
2.1 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=61.0", "wheel"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "gitea-runner-manager"
|
|
dynamic = ["version"]
|
|
description = "Lean CLI to manage Gitea Actions runners"
|
|
readme = "README.md"
|
|
license = {text = "GPL-3.0"}
|
|
requires-python = ">=3.12"
|
|
classifiers = [
|
|
"Programming Language :: Python :: 3",
|
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
]
|
|
dependencies = [
|
|
"requests>=2.34.2",
|
|
"python-dotenv>=1.2.2",
|
|
"click>=8.4.1",
|
|
"ansible>=14.0.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
grm = "gitea_runner_manager.cli:cli"
|
|
|
|
[tool.setuptools.dynamic]
|
|
version = {attr = "gitea_runner_manager.__version__"}
|
|
|
|
[project.optional-dependencies]
|
|
# Minimal deps for CI scripts that only need click/dotenv/requests
|
|
# (detect-changes, discover-runners, pr-review, sync-wiki, badges, etc.)
|
|
ci = [
|
|
"pytest>=9.1.0",
|
|
"pytest-cov>=7.1.0",
|
|
]
|
|
# Lint and type-checking tools (quality job)
|
|
lint = [
|
|
"ruff>=0.15.17",
|
|
"pyright>=1.1.410",
|
|
"bandit>=1.8.2",
|
|
"pip-audit>=2.10",
|
|
"pre-commit>=4.6.0",
|
|
"ansible-lint>=26.4.0",
|
|
]
|
|
# Molecule testing (molecule-tests job)
|
|
molecule = [
|
|
"molecule>=26.4.0",
|
|
"molecule-docker>=2.1.0",
|
|
]
|
|
# Full dev environment (local development, includes everything)
|
|
dev = [
|
|
"gitea-runner-manager[ci,lint,molecule]",
|
|
# Non-Python dev dependency: checkmake (Makefile linter)
|
|
# Install via: go install github.com/checkmake/checkmake/cmd/checkmake@latest
|
|
]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.setuptools.package-data]
|
|
gitea_runner_manager = ["translations.json"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
pythonpath = ["src", "."]
|
|
addopts = "--cov=src/gitea_runner_manager --cov=scripts --cov-report=term-missing --cov-fail-under=100"
|
|
markers = [
|
|
"integration: marks tests as integration tests (not counted in coverage)",
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py312"
|
|
line-length = 120
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "W", "UP", "B", "C4", "SIM"]
|
|
ignore = ["SIM117"]
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
indent-style = "space"
|
|
|
|
[tool.pyright]
|
|
include = ["src", "scripts"]
|
|
pythonVersion = "3.12"
|
|
strict = ["src/gitea_runner_manager"]
|