0232343126
PR Ready Gate / clear-labels (pull_request) Successful in 1s
CI / test (pull_request) Successful in 13s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (pull_request) Successful in 38s
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (pull_request) Successful in 1m45s
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (pull_request) Successful in 2m9s
Three-layer defense for the AllowInsecureHTTP client option: 1. Environment gate: AllowInsecureHTTP() requires REVIEW_BOT_ALLOW_INSECURE=1 env var. Without it, the option is silently ignored with a slog.Warn. 2. Warning log on activation: When the env gate IS satisfied, a slog.Warn fires at client construction time so operators notice in production logs. 3. Test bypass: AllowInsecureHTTPForTest() skips the env gate entirely, keeping test code clean (no t.Setenv needed in every test). Additionally, doRequest now rejects HTTP URLs unless allowInsecureHTTP is set on the client, providing defense-in-depth against credential leakage. Closes #96