Skip to content
This repository was archived by the owner on Sep 11, 2026. It is now read-only.

feat(ga): перевірка outputs-мапінгу plan-джоби в service_deploy_workflow - #170

Merged
vitaliytv merged 1 commit into
mainfrom
claude/ga-plan-outputs-check
Jul 20, 2026
Merged

vitaliytv merged 1 commit into
mainfrom
claude/ga-plan-outputs-check

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Закриває головну «сліпу зону» сервіс-канону GA: досі rego вимагав гейт if: needs.plan.outputs.<key> == 'true' на lint-джобах, але не перевіряв, що plan-джоба взагалі ДЕКЛАРУЄ ці outputs. Забутий блок outputs: (типова помилка рукописного workflow) означає, що всі гейти тихо порожні й lint-джоби скіпаються завжди — деплой проходить без жодної перевірки.

Нові deny-правила (ga/service_deploy_workflow)

  1. Ключ, на який посилається будь-який гейт needs.plan.outputs.<key>, відсутній у jobs.plan.outputs → deny.
  2. Значення outputs.<key> не посилається на steps.<id>.outputs.<key> кроку з реальним id (неіснуючий step-id чи copy-paste чужого ключа) → deny.

Ключі збираються з гейтів УСІХ джоб (не лише lint) — покриває й test із гейтом по any. Обидва правила гейтяться дискримінатором is_service_workflow, тож publish-workflow без lint-джоб (npm-publish.yml) як і раніше валідні as-is.

Тести

  • канонічна фікстура розширена outputs-мапінгом (js, any) і гейтом any на test-джобі — відповідає сніпету й виводу мігратора;
  • 3 нові негативні кейси: відсутній ключ, посилання на неіснуючий step-id, посилання на чужий ключ кроку;
  • conftest verify: 21/21; bun-тести мігратора (golden через rego): 4/4 — мігратор уже писав мапінг правильно, змін не потребує.

Change-файл: minor bump @7n/rules-ci-github.

🤖 Generated with Claude Code

Гейт needs.plan.outputs.<key> тихо порожній, якщо jobs.plan.outputs не
декларує <key> або мапить його не на steps.<id>.outputs.<key> реального
кроку — джоба скіпається завжди. Мігратор пише мапінг правильно, але
рукописний workflow rego досі не ловив. Нові deny: відсутній ключ у
outputs; посилання на неіснуючий step-id або чужий ключ кроку.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vitaliytv
vitaliytv merged commit 4da338f into main Jul 20, 2026
4 of 7 checks passed
@vitaliytv
vitaliytv deleted the claude/ga-plan-outputs-check branch July 25, 2026 05:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant