本卡屬 FR-077(母卡 CM-1591),R1(CM-1592)的 F7——越界發現(檔案屬
jedi-common/,不在 R1 scope),比照 FR-076 L1 的 PAT 外洩處理方式獨立開卡。LOW。
jedi-common/.env 這個檔在 git 版控裡,但 .gitignore 第 123 行寫著要忽略 .env——ignore 對已追蹤的檔無效。現在裡面的值是 localhost 預設值(首腦核對過,本卡不記任何值),直接外洩價值極低;風險是結構性的:任何開發者把它改成真實連線資訊(那正是這個檔的用途),就會靜默推進所有 clone 與套件歷史。
首腦核對:git ls-files jedi-common/.env 有回;.gitignore:123 是 .env;git log --follow -- jedi-common/.env 只有 1 個 commit(b740989 add jedi-common and jedi-issue package)——歷史上從未被改過,故不需重寫歷史。鍵:DB_HOST/DB_PORT/DB_NAME/DB_SCHEMA/DB_USERNAME/DB_PASSWORD。
~/Projects/Jedicogy/module/jedi-python-package/jedi-common/.env 受版控的 .env
~/Projects/Jedicogy/module/jedi-python-package/.gitignore:123 .env(對已追蹤檔無效)
cd ~/Projects/Jedicogy/module/jedi-python-package && git rm --cached jedi-common/.env(工作區檔案保留,只從 index 移除)。jedi-common/.env.sample,所有值清空(只留鍵名+一行註解說明用途),git add jedi-common/.env.sample。git ls-files | grep -E '(^|/)\.env$'——若還有別的套件同樣狀況,一併處理並回寫列出。jedi-common 有沒有程式碼在 import 時讀這個 .env(grep -rn 'load_dotenv\|\.env' jedi-common/jedi_common/)——有的話確認移除後測試仍過。不寫(純版控處置)。驗證=git ls-files jedi-common/.env 回空、jedi-common 既有 pytest 跑一次沒壞。
git status 看到 deleted: jedi-common/.env+new file: jedi-common/.env.sample;工作區 .env 檔仍在磁碟上。.env.sample 值一律留空(CLAUDE.md 憑證禁入版控)。git add jedi-common/.env.sample(git rm --cached 已 stage 刪除);append 白話補充(含 commit hash、③的盤點結果)到本卡;狀態改「修正待驗證」。push 等令。feature/FR-075,不要切。