From 77612ea6388290fec390a7abac6c9c17a2a7a336 Mon Sep 17 00:00:00 2001 From: Anthony Burdi Date: Wed, 19 Jul 2023 17:21:13 -0400 Subject: [PATCH] Check for untracked files before any command --- ge_releaser/cmd/prep.py | 2 -- ge_releaser/constants.py | 9 +++++++++ ge_releaser/git.py | 18 +++++++----------- ge_releaser/utils.py | 1 + 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ge_releaser/cmd/prep.py b/ge_releaser/cmd/prep.py index 7dbe62e..112b796 100644 --- a/ge_releaser/cmd/prep.py +++ b/ge_releaser/cmd/prep.py @@ -14,8 +14,6 @@ def prep(git: GitService) -> None: click.secho("[prep]", bold=True, fg="blue") - git.verify_no_untracked_files() - last_version, release_version = _parse_versions(git) git.checkout_and_pull_trunk() diff --git a/ge_releaser/constants.py b/ge_releaser/constants.py index 3c0258a..92c8234 100644 --- a/ge_releaser/constants.py +++ b/ge_releaser/constants.py @@ -27,3 +27,12 @@ class GxFile(str, enum.Enum): TEAMS = ".github/teams.yml" DOCS_DATA_COMPONENT = "docs/docusaurus/docs/components/_data.jsx" DOCS_CONFIG = "docs/docusaurus/docusaurus.config.js" + + +FILES_TO_COMMIT = ( + GxFile.CHANGELOG_MD, + GxFile.DOCS_DATA_COMPONENT, + GxFile.DOCS_CONFIG, + GxFile.CHANGELOG_RST, + GxFile.DEPLOYMENT_VERSION, +) diff --git a/ge_releaser/git.py b/ge_releaser/git.py index 3849c19..3337aaa 100644 --- a/ge_releaser/git.py +++ b/ge_releaser/git.py @@ -5,6 +5,9 @@ import github from github.PullRequest import PullRequest +from ge_releaser.constants import GxFile, FILES_TO_COMMIT + + class GitService: def __init__( self, @@ -35,22 +38,15 @@ def checkout_and_pull_trunk(self) -> None: self._git.git.checkout(self._trunk) self._git.git.pull(self._remote, self._trunk) - def check_for_untracked_files(self) -> bool: - return bool(self._git.git.untracked_files) + def _check_for_untracked_files(self) -> bool: + return bool(self._git.untracked_files or self._git.unstaged_files) def verify_no_untracked_files(self) -> None: - if self.check_for_untracked_files(): + if self._check_for_untracked_files(): raise ValueError("There are untracked files. Please make sure to run this step with a clean repo.") def stage_all_and_commit(self, message: str) -> None: - files_to_add = ( - "docs/docusaurus/docs/changelog.md", - "docs/docusaurus/docs/components/_data.jsx", - "docs/docusaurus/docusaurus.config.js", - "docs_rtd/changelog.rst", - "great_expectations/deployment_version", - ) - self._git.git.add(files_to_add) + self._git.git.add(FILES_TO_COMMIT) self._git.git.commit("-m", message, "--no-verify") def get_release_timestamp(self, version: str) -> dt.datetime: diff --git a/ge_releaser/utils.py b/ge_releaser/utils.py index b129296..ba910b1 100644 --- a/ge_releaser/utils.py +++ b/ge_releaser/utils.py @@ -57,4 +57,5 @@ def setup(ctx: click.Context) -> None: git = GitService( github_token=token, repo_name=GITHUB_REPO, trunk=TRUNK, remote=REMOTE ) + git.verify_no_untracked_files() ctx.obj = git