#!/usr/bin/env bash

# Verify the github backend can install from real mise-versions release and
# attestation metadata without contacting api.github.com.

HEADERS_LOG_DIR="$TMPDIR/github_api_blocker_logs"
mkdir -p "$HEADERS_LOG_DIR"
start_http_server --headers-log "$HEADERS_LOG_DIR"

rm -rf "$MISE_CACHE_DIR/github"
mise uninstall communique 2>/dev/null || true

cat <<EOF >mise.toml
[settings]
url_replacements = { "https://api.github.com" = "http://127.0.0.1:$HTTP_PORT" }

[tools]
communique = "1.1.3"
EOF

assert_succeed "mise install"
assert_contains "mise x -- communique --version" "communique 1.1.3"

if compgen -G "$HEADERS_LOG_DIR/request_*.json" >/dev/null; then
  cat "$HEADERS_LOG_DIR"/request_*.json
  fail "api.github.com was contacted; install should use mise-versions metadata"
fi
