feat(cli): add open-reuse validate and register portfolio integrations
Some checks failed
ci / validate-registry (push) Has been cancelled

Implement Integration Definition validator CLI with schema and index checks,
pytest suite, and CI workflow. Register open-cmis-tck and issue-core-gitea in
the integration index.

Closes OPEN-WP-0003 and OPEN-WP-0004.
This commit is contained in:
2026-06-24 18:25:13 +02:00
parent ff2843ec5a
commit 12b5d83091
15 changed files with 714 additions and 55 deletions

View File

@@ -4,7 +4,7 @@ type: workplan
title: "Integration CLI validator"
domain: infotech
repo: open-reuse
status: ready
status: finished
owner: codex
topic_slug: infotech
created: "2026-06-24"
@@ -32,56 +32,47 @@ patterns from reuse-surface `reuse-surface validate`.
```task
id: OPEN-WP-0003-T01
status: todo
status: done
priority: high
state_hub_task_id: "70b8cead-3c16-4e48-ab8f-ee6f7cedf25e"
```
Add `pyproject.toml`, `open_reuse/` package skeleton, and entry point
`open-reuse` with a `validate` subcommand stub. Include `jsonschema` and `pyyaml`
as dependencies. Document install and run commands in `AGENTS.md` and
Result 2026-06-24: Added `pyproject.toml`, `open_reuse/` package, and CLI entry
point. Documented install commands in `AGENTS.md` and
`.claude/rules/stack-and-commands.md`.
## Implement validate command
```task
id: OPEN-WP-0003-T02
status: todo
status: done
priority: high
state_hub_task_id: "0f8c8e25-1c1f-4f94-8771-71bcc3402db2"
```
Implement `open-reuse validate` with:
- Schema validation of one or more `*.integration.yaml` files (default: scan
`registry/integrations/` if present).
- Index checks: every `indexes/integrations.yaml` row has required fields; `id`
and `reuse_mode` are consistent when the definition file is reachable.
- `--fail-on-warnings` for promotion-gate checks (missing maintainers on
`active` status, missing index row for local definitions).
- Exit code 0 on success, non-zero on errors.
Result 2026-06-24: Implemented schema validation, index consistency checks,
`--repos-base` external definition resolution, and `--fail-on-warnings`.
## Add tests and CI
```task
id: OPEN-WP-0003-T03
status: todo
status: done
priority: medium
state_hub_task_id: "e84e7b00-43ec-429e-afa0-42cb8eaa0074"
```
Add `tests/test_validate.py` covering schema pass/fail, index consistency, and
the markitect-quarkdown reference fixture. Add `.gitea/workflows/ci.yml` running
pytest on push/PR to `main`.
Result 2026-06-24: Added `tests/test_validate.py` (8 tests) and
`.gitea/workflows/ci.yml`.
## Update registry documentation
```task
id: OPEN-WP-0003-T04
status: todo
status: done
priority: medium
state_hub_task_id: "cfd38f45-0c0a-4790-b666-c211983b3ee9"
```
Update `registry/README.md` to reference `open-reuse validate` as the primary
validation path. Mark manual checklist as fallback until CI is green.
Result 2026-06-24: Updated `registry/README.md` with CLI as primary validation
path; manual checklist retained as fallback.