superset-showtime 0.5.9__tar.gz → 0.5.10__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of superset-showtime might be problematic. Click here for more details.
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/.claude/settings.local.json +4 -2
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/PKG-INFO +1 -1
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/__init__.py +1 -1
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/git_validation.py +50 -11
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/.gitignore +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/.pre-commit-config.yaml +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/CLAUDE.md +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/Makefile +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/README.md +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/dev-setup.sh +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/pypi-push.sh +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/pyproject.toml +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/requirements-dev.txt +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/requirements.txt +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/__main__.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/cli.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/__init__.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/aws.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/emojis.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/github.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/github_messages.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/label_colors.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/pull_request.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/core/show.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/showtime/data/ecs-task-definition.json +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/__init__.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/__init__.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_label_transitions.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_pull_request.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_sha_specific_logic.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/tests/unit/test_show.py +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/uv.lock +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/workflows-reference/showtime-cleanup.yml +0 -0
- {superset_showtime-0.5.9 → superset_showtime-0.5.10}/workflows-reference/showtime-trigger.yml +0 -0
|
@@ -43,12 +43,14 @@
|
|
|
43
43
|
"Bash(showtime sync:*)",
|
|
44
44
|
"Bash(AWS_PROFILE=\"\" showtime sync 34831 --dry-run-aws --dry-run-github)",
|
|
45
45
|
"Bash(git stash:*)",
|
|
46
|
-
"Bash(showtime list:*)"
|
|
46
|
+
"Bash(showtime list:*)",
|
|
47
|
+
"Bash(showtime git-check)"
|
|
47
48
|
],
|
|
48
49
|
"deny": [],
|
|
49
50
|
"ask": [],
|
|
50
51
|
"additionalDirectories": [
|
|
51
|
-
"/private/tmp"
|
|
52
|
+
"/private/tmp",
|
|
53
|
+
"/Users/max/code/superset"
|
|
52
54
|
]
|
|
53
55
|
}
|
|
54
56
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: superset-showtime
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.10
|
|
4
4
|
Summary: 🎪 Apache Superset ephemeral environment management with circus tent emoji state tracking
|
|
5
5
|
Project-URL: Homepage, https://github.com/apache/superset-showtime
|
|
6
6
|
Project-URL: Documentation, https://superset-showtime.readthedocs.io/
|
|
@@ -16,7 +16,8 @@ except ImportError:
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# Hard-coded required SHA - update this when needed
|
|
19
|
-
|
|
19
|
+
# https://github.com/apache/superset/commit/47414e18d4c2980d0cc4718b3e704845f7dfd356
|
|
20
|
+
REQUIRED_SHA = "47414e18d4c2980d0cc4718b3e704845f7dfd356"
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class GitValidationError(Exception):
|
|
@@ -49,6 +50,7 @@ def is_git_repository(path: str = ".") -> bool:
|
|
|
49
50
|
def validate_required_sha(required_sha: Optional[str] = None) -> Tuple[bool, Optional[str]]:
|
|
50
51
|
"""
|
|
51
52
|
Validate that the required SHA exists in the current Git repository.
|
|
53
|
+
Tries to fetch the SHA from origin if validation fails in a shallow clone.
|
|
52
54
|
|
|
53
55
|
Args:
|
|
54
56
|
required_sha: SHA to validate (default: REQUIRED_SHA constant)
|
|
@@ -68,18 +70,40 @@ def validate_required_sha(required_sha: Optional[str] = None) -> Tuple[bool, Opt
|
|
|
68
70
|
try:
|
|
69
71
|
repo = Repo(".")
|
|
70
72
|
|
|
71
|
-
# Search for SHA in git log (has to work in shallow clones where merge_base fails)
|
|
73
|
+
# First attempt: Search for SHA in git log (has to work in shallow clones where merge_base fails)
|
|
74
|
+
is_valid, error = _validate_sha_in_log(repo, sha_to_check)
|
|
75
|
+
if is_valid:
|
|
76
|
+
return True, None
|
|
77
|
+
|
|
78
|
+
# If validation failed, check if we're in a shallow clone and try fetching
|
|
72
79
|
try:
|
|
73
|
-
|
|
74
|
-
if
|
|
75
|
-
|
|
80
|
+
is_shallow = repo.git.rev_parse("--is-shallow-repository") == "true"
|
|
81
|
+
if is_shallow:
|
|
82
|
+
try:
|
|
83
|
+
print(f"🌊 Shallow clone detected, attempting to fetch {sha_to_check[:7]}...")
|
|
84
|
+
repo.git.fetch("origin", sha_to_check)
|
|
85
|
+
|
|
86
|
+
# Retry validation after fetch
|
|
87
|
+
is_valid_after_fetch, error_after_fetch = _validate_sha_in_log(
|
|
88
|
+
repo, sha_to_check
|
|
89
|
+
)
|
|
90
|
+
if is_valid_after_fetch:
|
|
91
|
+
print(f"✅ Successfully fetched and validated {sha_to_check[:7]}")
|
|
92
|
+
return True, None
|
|
93
|
+
else:
|
|
94
|
+
return False, error_after_fetch
|
|
95
|
+
|
|
96
|
+
except Exception as fetch_error:
|
|
97
|
+
return False, (
|
|
98
|
+
f"Required commit {sha_to_check} not found in shallow clone. "
|
|
99
|
+
f"Failed to fetch from origin: {fetch_error}"
|
|
100
|
+
)
|
|
76
101
|
else:
|
|
77
|
-
return False,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return False, f"Git log search failed: {e}"
|
|
102
|
+
return False, error
|
|
103
|
+
|
|
104
|
+
except Exception:
|
|
105
|
+
# If shallow check fails, return original error
|
|
106
|
+
return False, error
|
|
83
107
|
|
|
84
108
|
except InvalidGitRepositoryError:
|
|
85
109
|
return False, "Current directory is not a Git repository"
|
|
@@ -87,6 +111,21 @@ def validate_required_sha(required_sha: Optional[str] = None) -> Tuple[bool, Opt
|
|
|
87
111
|
return False, f"Git validation error: {e}"
|
|
88
112
|
|
|
89
113
|
|
|
114
|
+
def _validate_sha_in_log(repo: "Repo", sha_to_check: str) -> Tuple[bool, Optional[str]]:
|
|
115
|
+
"""Helper function to validate SHA exists in git log output."""
|
|
116
|
+
try:
|
|
117
|
+
log_output = repo.git.log("--oneline", "--all")
|
|
118
|
+
if sha_to_check in log_output or sha_to_check[:7] in log_output:
|
|
119
|
+
return True, None
|
|
120
|
+
else:
|
|
121
|
+
return False, (
|
|
122
|
+
f"Required commit {sha_to_check} not found in Git history. "
|
|
123
|
+
f"Please update to a branch that includes this commit."
|
|
124
|
+
)
|
|
125
|
+
except Exception as e:
|
|
126
|
+
return False, f"Git log search failed: {e}"
|
|
127
|
+
|
|
128
|
+
|
|
90
129
|
def get_validation_error_message(required_sha: Optional[str] = None) -> str:
|
|
91
130
|
"""
|
|
92
131
|
Get a user-friendly error message for SHA validation failure.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{superset_showtime-0.5.9 → superset_showtime-0.5.10}/workflows-reference/showtime-cleanup.yml
RENAMED
|
File without changes
|
{superset_showtime-0.5.9 → superset_showtime-0.5.10}/workflows-reference/showtime-trigger.yml
RENAMED
|
File without changes
|