Files
computer-playbook/scripts/github/resolve
kevinveenbirkenbachandClaude Opus 5 ebd7d2e72b refactor(meta): centralize category/distro SPOTs
categories.yml moves from roles/ to the repository-root meta/, joining packages.yml. utils/roles/categories.py owns its location plus the tree-walking helpers that were stranded in entity/name.py, so no caller spells the path or duplicates the lookup.

meta/distros.yml becomes the SPOT for every distribution: os_family, Galaxy platform name, dev-environment base image, and the pkgmgr/pkgmgr-virgin/environment reference templates. It replaces seven scattered copies (DISTRO_FAMILY, VALID_DISTROS, _DISTROS, _CANONICAL_PLATFORMS, two shell arrays, a Makefile literal). INFINITO_DISTROS is no longer a static default but generated by utils/env/handlers/infinito/distros.py; the shell consumers read it through the env layer.

Drops dead CLI surface found along the way: --categories-file and --roles-dir on the provision CLI plus three unused parameters of generate_dynamic_inventory, and the positional roles_file of the invokable categories command.

tests/lint/repository/test_distros_spot.py pins the copies that cannot call the SPOT (workflow literals, docs table) and forbids composing a pkgmgr reference outside it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-28 16:15:56 +02:00
..

Workflow Input Resolution 🔎

Shell helpers that derive structured inputs and outputs for GitHub Actions jobs from repository state.

Scope 📋

This directory contains pure resolvers that read repository state (git history, role metadata, version tags, input environment variables) and emit resolved values either via $GITHUB_OUTPUT or stdout. Resolvers MUST be idempotent and MUST NOT mutate repository or registry state beyond writing to $GITHUB_OUTPUT. The covered concerns are distro selection for push CI, diff-driven app whitelist resolution, the 🧩 Subset label dispatch (pr_affected_roles.sh, which picks between the PR-body subset and the diff resolver), release-tag parsing, app discovery for the deploy matrix, and change detection that gates the update pipeline.

For the workflow catalog that consumes these outputs see workflows.md. For the diff-driven whitelist contract see the "Diff-driven app selection" section in pipeline.md.