diff --git a/.archive-w1d1 b/.archive-w1d1 deleted file mode 160000 index 39b203b..0000000 --- a/.archive-w1d1 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 39b203bf347c1de425a2d629da3abb4982497dd1 diff --git a/.ciw b/.ciw deleted file mode 160000 index ff2a87d..0000000 --- a/.ciw +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ff2a87d1266b9ddbdc7b1a6a80ceadc4464216ae diff --git a/.gitignore b/.gitignore index c1a5619..f4f100e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ # Python 编译产物(构建缓存不入库——.#230/#336/#338 曾误提交) __pycache__/ *.pyc + +# 工作区内的独立克隆仓(以 gitlink 形式误提交会弄坏 CI checkout—— +# 2026-08-29 9d1f180 实例:fatal: No url found for submodule path) +.archive-w1d1/ +.ciw/ +env-defs/ diff --git a/env-defs b/env-defs deleted file mode 160000 index b6fa34c..0000000 --- a/env-defs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b6fa34c496a4c601512f27796426a71a05c18da4 diff --git a/governance/evidence-query.sh b/governance/evidence-query.sh index 54ce103..d8e4d54 100644 --- a/governance/evidence-query.sh +++ b/governance/evidence-query.sh @@ -60,7 +60,8 @@ for ent in json.load(open(sys.argv[1], encoding="utf-8")): base64.b64decode(ent["content"]).decode("utf-8")) PYEOF else - if ! grep -qiE 'not found|no ref found' "$TMP/api.err" 2>/dev/null; then + # 同 fetch_file:按 "HTTP 404" 状态码判源缺席(报文变体猜谜必漏——见上方注释) + if ! grep -q 'HTTP 404' "$TMP/api.err" 2>/dev/null; then echo "FATAL: metering-ledger 目录拉取失败:" >&2; cat "$TMP/api.err" >&2; exit 2 fi fi diff --git a/governance/tests/test-evidence-shadow.sh b/governance/tests/test-evidence-shadow.sh index 1312fc1..7dc1f63 100644 --- a/governance/tests/test-evidence-shadow.sh +++ b/governance/tests/test-evidence-shadow.sh @@ -152,6 +152,9 @@ case "$url" in if [[ "${GH_STUB_BUTLER_MISSING:-}" == "2" ]]; then echo 'gh: No ref found for "butler-ledger" in repo Cloudbird-Software/.github (HTTP 404)' >&2; exit 1 fi + if [[ "${GH_STUB_BUTLER_MISSING:-}" == "3" ]]; then + echo 'gh: No commit found for the ref butler-ledger (HTTP 404)' >&2; exit 1 + fi cat "$F/butler.json" ;; *) echo "gh-stub: 意外 URL $url" >&2; exit 1 ;; esac @@ -182,6 +185,12 @@ ROUT=$(GH="$GHSTUB" GH_STUB_FIXTURES="$TMP/fixtures" GH_TOKEN=stub GH_STUB_BUTLE bash "$DIR/governance/evidence-query.sh" 2>"$TMP/r.err"); RRC=$? RN=$(nlines "$ROUT") [[ $RRC -eq 0 && "$RN" -eq 4 ]] && pass "源缺席(No ref found 分支未建)→ 跳过非红(4 条)" || fail "分支未建误红(rc=$RRC 行=$RN)" +# 源缺席(404 第三报文形态——分支缺失 "No commit found for the ref",本地实测 +# 真实报文):按 HTTP 404 状态码判定后同跳过非红 +COUT2=$(GH="$GHSTUB" GH_STUB_FIXTURES="$TMP/fixtures" GH_TOKEN=stub GH_STUB_BUTLER_MISSING=3 \ + bash "$DIR/governance/evidence-query.sh" 2>"$TMP/c2.err"); C2RC=$? +C2N=$(nlines "$COUT2") +[[ $C2RC -eq 0 && "$C2N" -eq 4 ]] && pass "源缺席(No commit found for the ref)→ 跳过非红(4 条)" || fail "分支缺失误红(rc=$C2RC 行=$C2N)" # 负向:任一源链断 → exit 3 且 stdout 零输出(不可信数据不出结果) python3 - "$TMP/fixtures" <<'PYEOF' import base64, json, sys