feat: v0 — glpi-go client, mglpi CLI, mglpi-mcp, fake-GLPI test suite [#767]

https://projects.knownelement.com/issues/767#note-4191
This commit is contained in:
2026-09-04 08:41:25 -05:00
commit 5da1eee08f
26 changed files with 4956 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
# mglpi — the GLPI/CMDB CLI as a container (MOPAC fleet pattern).
#
# Built via `docker compose build mglpi` (glpi-go/docker-compose.yml),
# which tags mopac-mglpi:<ver>. Invocation is the TSYSGroupAIOS
# container-CLI pattern (no host binaries, no bin/ shortcuts):
#
# docker run --rm --env-file ~/.creds/mglpi.env mopac-mglpi:1 \
# change list --status new
# docker run --rm -i --env-file ~/.creds/mglpi.env mopac-mglpi:1 \
# mglpi-mcp # the stdio MCP surface (mglpi-mcp is argv[0])
#
# Both stages digest-pinned; the builder matches dev.sh (root AGENTS.md:
# ALL Go work through the golang:1.26-bookworm builder). The binaries are
# static (CGO off), so the runtime is bare alpine.
FROM golang@sha256:e8c859f5632dcfde7b32d2012b4351728f6437930887c2f6a91ea242459e5514 AS build
# = golang:1.26-bookworm
WORKDIR /src
COPY go.mod ./
COPY cmd ./cmd
COPY internal ./internal
COPY glpi ./glpi
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/mglpi ./cmd/mglpi \
&& CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/mglpi-mcp ./cmd/mglpi-mcp
FROM alpine@sha256:14358309a308569c32bdc37e2e0e9694be33a9d99e68afb0f5ff33cc1f695dce
# = alpine:3.22
COPY --from=build /out/mglpi /usr/local/bin/mglpi
COPY --from=build /out/mglpi-mcp /usr/local/bin/mglpi-mcp
ENTRYPOINT ["/usr/local/bin/mglpi"]