Ensure the release starts from a clean worktree. Raises: ReleaseError: The repository contains tracked or untracked changes.
()
| 77 | |
| 78 | |
| 79 | def ensure_clean_worktree() -> None: |
| 80 | """Ensure the release starts from a clean worktree. |
| 81 | |
| 82 | Raises: |
| 83 | ReleaseError: The repository contains tracked or untracked changes. |
| 84 | """ |
| 85 | status = git(["status", "--porcelain"], capture_output=True) |
| 86 | if status: |
| 87 | raise ReleaseError( |
| 88 | "Working tree must be clean before preparing a release.\n" |
| 89 | "Commit, stash, or remove these changes first:\n" |
| 90 | f"{status}" |
| 91 | ) |
| 92 | |
| 93 | |
| 94 | def validate_version(version: str) -> str: |
no test coverage detected