Skip to content

Commit 4c5d98b

Browse files
Pigbibicodex
andcommitted
chore: allow legacy dependency manifest removal
Co-Authored-By: Codex <noreply@openai.com>
1 parent c82e902 commit 4c5d98b

2 files changed

Lines changed: 19 additions & 2 deletions

File tree

scripts/gate_codex_app_review.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ def compile_patterns(policy: dict[str, Any]) -> list[re.Pattern[str]]:
103103

104104
# ─── static guard ────────────────────────────────────────────────────────────
105105

106+
ALLOWED_REMOVED_FILES = {"constraints.txt", "requirements.txt"}
107+
106108
_SENSITIVE = re.compile(
107109
r'(?P<field>api[_\s]?key|secret|password|token|credential|private[_\s]?key)\s*[:=]\s*["\']'
108110
r'(?!\$\{\{|{{|example|placeholder|test|your[-_\s]|xxx|TODO|CHANGEME)[^"\']{12,}["\']',
@@ -143,7 +145,7 @@ def check_metadata(files: list[dict[str, Any]], policy: dict[str, Any]) -> list[
143145
for f in files:
144146
fn = f.get("filename", "?")
145147
st = (f.get("status") or "").lower().strip()
146-
if st == "removed":
148+
if st == "removed" and fn not in ALLOWED_REMOVED_FILES:
147149
issues.append(f"**File deleted**: `{fn}` — verify intentional")
148150
elif st == "renamed":
149151
issues.append(f"**File renamed**: `{f.get('previous_filename', '?')}` → `{fn}`")

tests/test_gate_codex_app_review.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from scripts.gate_codex_app_review import scan_diff
3+
from scripts.gate_codex_app_review import check_metadata, scan_diff
44

55

66
def test_scan_diff_redacts_hardcoded_secret_values() -> None:
@@ -19,3 +19,18 @@ def test_scan_diff_redacts_hardcoded_secret_values() -> None:
1919
assert "<redacted>" in violations[0]
2020
assert "api_key" in violations[0]
2121
assert secret_value not in violations[0]
22+
23+
24+
def test_metadata_allows_removing_legacy_dependency_manifests() -> None:
25+
files = [
26+
{"filename": "requirements.txt", "status": "removed"},
27+
{"filename": "constraints.txt", "status": "removed"},
28+
]
29+
30+
assert check_metadata(files, {}) == []
31+
32+
33+
def test_metadata_still_blocks_other_deleted_files() -> None:
34+
files = [{"filename": "main.py", "status": "removed"}]
35+
36+
assert check_metadata(files, {}) == ["**File deleted**: `main.py` — verify intentional"]

0 commit comments

Comments
 (0)