Releases: Pinak-Datta/envgap
Release list
envgap v0.3.0
envgap v0.3.0 adds Docker Compose environment drift detection.
What's new
- Detect common Docker Compose
environmentvariables. - Detect safe project-local Docker Compose
env_filevariables. - Report Compose variables that are missing from
.env.example. - Add a Docker Compose drift example project.
Why this matters
This helps catch cases where a project works locally, but behaves differently in Docker because container environment variables are missing from .env.example or documented under different names.
Try it
pip install -U envgap
envgap checkTry the new example:
envgap check examples/docker-composeenvgap v0.2.2
Small docs/tooling release focused on making envgap easier to install and adopt.
What's new
- Added
uv toolandpipxinstall instructions. - Added a minimal GitHub Actions example for strict envgap checks.
- Added pre-commit hook metadata and README setup instructions.
Install
pip install -U envgapOr:
uv tool install envgap
pipx install envgapenvgap v0.2.1
What's new
envgap v0.2.1 improves Pydantic Settings support and includes the first community-contributed improvements.
Pydantic Settings aliases
envgap now understands common Pydantic Settings aliases:
from pydantic import Field
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
openai_api_key: str = Field(alias="OPENAI_KEY")envgap will now treat OPENAI_KEY as the expected environment variable.
Pydantic env_prefix
envgap now supports common env_prefix declarations:
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_prefix="APP_")
database_url: strenvgap will now treat APP_DATABASE_URL as the expected environment variable.
Also included
- Support for
Field(validation_alias=...) - Support for
AliasChoices(...) - Better handling of unknown Pydantic settings config overrides
- More typo-detection test coverage for common abbreviations
- README comparison with related configuration tools
Contributors
Thanks to @JhansiOruganti-43 and @xuu33030 who contributed for this release.
envgap v0.2.0
What's new
envgap now detects Pydantic BaseSettings fields, which makes it more useful for FastAPI-style projects.
It can now detect settings like:
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
database_url: str
openai_api_key: str
debug: bool = Falseand classify:
DATABASE_URL as required
OPENAI_API_KEY as required
DEBUG as optional
Also included
- Required vs optional detection for Pydantic settings fields
Field(...)andField(default=...)handlingdefault_factorysupport as optional- FastAPI/Pydantic example update
- README and changelog updates
envgap v0.1.1
envgap v0.1.1
First public release of envgap: a Python CLI that finds gaps between your app's expected environment variables, .env, .env.example, shell environment, and Python code.
Highlights
- Parse
.envand.env.example - Detect missing, empty, duplicate, placeholder, and undocumented keys
- Detect likely typo pairs like
DB_URLvsDATABASE_URL - Scan Python code for
os.environ[...],os.getenv(...), andos.environ.get(...) - Classify required vs optional env vars
- Show file and line number for code usage
- Explain when a missing
.envkey exists in the shell, which can hide CI/Docker failures - Provide terminal and JSON output
- Support CI-friendly exits with
--strict/--ci - Support deterministic checks with
--no-shell
Install
pip install envgapTry It
envgap check
envgap check examples/basic
envgap check --json
envgap check --ci