v0: stdlib-only Discourse client — categories/topics/posts + raw passthrough

Covers the MOPAC briefing/report surface (Redmine 495 Part A): category
list/create (create needs the admin-scoped key; current key 403s, typed
as ErrForbidden), topic create/list/latest/get, post create/update/get,
current-user identity probe, and a Do() JSON passthrough so unmodeled
endpoints need no client release. Key is env/constructor-only, never a
flag, never logged; errors classify via errors.Is. Fake-server unit
tests + containerized end-to-end smoke (redaction sweep included); live
reads verified against community.turnsys.com.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
2026-08-29 06:12:22 -05:00
commit f9cf30bc72
16 changed files with 2559 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# Makefile: thin front door over dev.sh so `make build/vet/test/check/smoke`
# route through the digest-pinned Docker builder (ALL dev work in Docker —
# the host never runs a Go toolchain).
.PHONY: build vet test check smoke
build:
@./dev.sh build
vet:
@./dev.sh vet
test:
@./dev.sh test
check:
@./dev.sh check
smoke:
@./dev.sh smoke