[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "pygithub-mcp-server"
# IMPORTANT: Keep version in sync with src/pygithub_mcp_server/version.py
# TODO: Once project stabilizes, we'll use importlib.metadata to read version from here
version = "0.5.22"
description = "GitHub MCP Server using PyGithub"
requires-python = ">=3.10"
dependencies = [
"PyGithub>=2.1.1",
"mcp>=1.1.3",
"pydantic>=2.9.2",
]
[project.optional-dependencies]
test = [
"pytest>=7.0.0",
"pytest-cov>=4.1.0",
"pytest-mock>=3.12.0",
"pytest-json-report>=1.5.0",
]
[tool.pytest.ini_options]
minversion = "7.0"
addopts = """
--cov=src/pygithub_mcp_server
--cov-report=term-missing
--cov-branch
--tb=short
"""
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
markers = [
"integration: marks tests that use real GitHub API"
]
# Log settings
log_cli = true
log_cli_level = "INFO"
log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)"
log_cli_date_format = "%Y-%m-%d %H:%M:%S"
[tool.coverage.run]
branch = true
source = ["src/pygithub_mcp_server"]
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"def __repr__",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
]
show_missing = true
[project.scripts]
pygithub-mcp-server = "pygithub_mcp_server.__main__:main"