feat: implement T01-T04 — Go module, canonical model, LDAP validator, error taxonomy

- T01: Go module (keycape), full directory skeleton, Makefile, CI workflow
- T02: spec/canonical-model.yaml with 6 entities + Go domain types
- T03: spec/ldap-schema.yaml + validator binary with structural/semantic rules
- T04: Error taxonomy — 4 stable error types, JSON format, HTTP helpers

28 tests pass, go vet clean, go build clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-13 01:27:54 +01:00
parent f3b1cdcba4
commit 329e996619
21 changed files with 1992 additions and 0 deletions

43
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: CI
on:
push:
branches: ["**"]
pull_request:
branches: ["**"]
jobs:
build-and-test:
name: Build and Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Verify dependencies
working-directory: src
run: go mod verify
- name: Vet
working-directory: src
run: go vet ./...
- name: Test
working-directory: src
run: go test -v -race ./...
- name: Build all binaries
working-directory: src
run: |
mkdir -p ../bin
go build -o ../bin/keycape ./cmd/keycape/
go build -o ../bin/validator ./cmd/validator/
go build -o ../bin/lldap-export ./cmd/lldap-export/
go build -o ../bin/keycape-to-keycloak ./cmd/keycape-to-keycloak/
go build -o ../bin/lldap-to-ldap ./cmd/lldap-to-ldap/