GRM-58: Require tea CLI everywhere, fail on missing Vikunja task #84

Merged
emil merged 0 commits from GRM-58-require-tea into master 2026-06-22 11:04:52 +00:00
Owner

Summary

Eliminates fallback logic for the tea CLI — it must always be installed and available. Also makes missing Vikunja tasks a fatal error in post-merge and auto-merge, enforcing the workflow invariant that every PR has a corresponding Vikunja task.

Changes

tea CLI is now required (no fallbacks)

  • notify_failure.py: Removed GiteaClient fallback. Uses tea exclusively — if tea fails, the workflow fails.
  • setup.py: _configure_tea_login() now raises ClickException if tea is not installed (was: skip silently). Run make install-tools first.

Missing Vikunja task is now fatal

  • post_merge.py: resolve_task_id() raises ClickException when task not found (was: warn and return None). Every merged PR must have a Vikunja task.
  • auto_merge.py: get_vikunja_task_title() raises ClickException when VIKUNJA_TOKEN is set but task is not found (was: return empty string and skip validation). Local dev without token still skips.

CI workflow updates

  • post-merge.yml: All Notify-on-failure steps now ensure ~/.local/bin is on PATH. The vikunja and configure-repo jobs (which don't run make setup) now install tea and configure login before calling notify_failure.py.

Test Coverage

All 797 tests pass with 100% coverage.

## Summary Eliminates fallback logic for the tea CLI — it must always be installed and available. Also makes missing Vikunja tasks a fatal error in post-merge and auto-merge, enforcing the workflow invariant that every PR has a corresponding Vikunja task. ## Changes ### tea CLI is now required (no fallbacks) - **`notify_failure.py`**: Removed `GiteaClient` fallback. Uses `tea` exclusively — if tea fails, the workflow fails. - **`setup.py`**: `_configure_tea_login()` now raises `ClickException` if tea is not installed (was: skip silently). Run `make install-tools` first. ### Missing Vikunja task is now fatal - **`post_merge.py`**: `resolve_task_id()` raises `ClickException` when task not found (was: warn and return `None`). Every merged PR must have a Vikunja task. - **`auto_merge.py`**: `get_vikunja_task_title()` raises `ClickException` when `VIKUNJA_TOKEN` is set but task is not found (was: return empty string and skip validation). Local dev without token still skips. ### CI workflow updates - **`post-merge.yml`**: All Notify-on-failure steps now ensure `~/.local/bin` is on PATH. The `vikunja` and `configure-repo` jobs (which don't run `make setup`) now install tea and configure login before calling `notify_failure.py`. ## Test Coverage All 797 tests pass with 100% coverage.
emil reviewed 2026-06-22 11:04:24 +00:00
emil left a comment
Author
Owner

Automated PR Review

  • Architecture compliance: OK
  • Best practices: OK
  • Security: OK
  • i18n: OK
  • Resource management: OK
  • Documentation: OK
  • Tests: OK
  • Commit conventions: OK

No issues found by automated checks.


Auto-merge: If all CI checks pass, this PR will be merged automatically.

## Automated PR Review - Architecture compliance: OK - Best practices: OK - Security: OK - i18n: OK - Resource management: OK - Documentation: OK - Tests: OK - Commit conventions: OK No issues found by automated checks. --- **Auto-merge:** If all CI checks pass, this PR will be merged automatically.
emil merged commit 18f1f67354 into master 2026-06-22 11:04:52 +00:00
emil deleted branch GRM-58-require-tea 2026-06-22 11:04:52 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: oblachno-oss/grm#84