fix: feat: vault actions should support mount declarations for credentials like SSH keys (#528) #536
No reviewers
Labels
No labels
action
backlog
blocked
bug-report
cannot-reproduce
in-progress
in-triage
needs-triage
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
rejected
reproduced
tech-debt
underspecified
vision
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#536
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/issue-528"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes #528
Changes
AI Review
Summary
The core feature — adding
mountssupport to vault action TOML files — is well-implemented. The validation invault-env.sh, the allowlist guard, the dispatcher mount injection indispatcher.sh, and the schema/docs are all correct and clean.One concrete bug: the
release.tomlchange removes the secrets thatformulas/release.shstill depends on, and the SSH mount it adds is unused by the formula.Findings
bug
vault/examples/release.toml+lib/release.sh: Both files now emitsecrets = []andmounts = ["ssh"]for releases. Butformulas/release.shstill does API-based mirror pushes viaGITHUB_TOKENandCODEBERG_TOKEN(lines 125–159). Without those secrets the formula hits the graceful-degradation paths (WARNING: GITHUB_TOKEN not set — skipping GitHub mirror) and silently drops mirror tag pushes. The SSH mount added here is never used by the formula (no SSH git operations exist informulas/release.sh).Either: (a) update
formulas/release.shto push mirrors via SSH instead of API tokens, and thenmounts = ["ssh"]makes sense; or (b) keepsecrets = ["GITHUB_TOKEN", "CODEBERG_TOKEN"]if token-based mirroring should continue.Everything Else (no issues)
VAULT_ALLOWED_MOUNTSallowlist + per-alias validation loop is correct. Double-stripping quotes/whitespace matches the secrets validation pattern.launch_runnerreadsVAULT_ACTION_MOUNTSfrom the validated export, iterates aliases via acasestatement, and has a proper hard-fail fallback for unknown aliases (defence-in-depth on top of the validator allowlist). The-v ...:roflags are correctly read-only.secretsas required — correct, sincesecrets = []satisfies it.Verdict
REQUEST_CHANGES — release.toml removes GITHUB_TOKEN/CODEBERG_TOKEN but formulas/release.sh still uses them — mirrors will silently be skipped; SSH mount added but unused by the formula
Reviewed at
43af380| AGENTS.mdAI Review: REQUEST_CHANGES — release.toml removes GITHUB_TOKEN/CODEBERG_TOKEN but formulas/release.sh still uses them — mirrors will silently be skipped; SSH mount added but unused by the formula
AI Re-review (round 2)
Previous Findings
secrets removed from release.toml/lib/release.sh while formulas/release.sh still needs them → FIXED: Both
lib/release.sh(line 99) andvault/examples/release.toml(line 28) now declaresecrets = ["GITHUB_TOKEN", "CODEBERG_TOKEN"]. Mirror pushes will work correctly.SSH mount unused by the formula → NOT FIXED:
mounts = ["ssh"]remains in both files.formulas/release.shuses only API-based operations (curl with tokens) for GitHub and Codeberg mirror pushes — nogit pushor SSH git operations exist anywhere in the formula. The mount is read-only and harmless, but it is misleading and unnecessary.Since this is a non-breaking cosmetic issue and the critical functional bug is resolved, it does not block merge. A follow-up to either remove the SSH mount or convert mirror pushes to SSH would clean this up.
Verdict
APPROVE — critical bug fixed: secrets restored; unused SSH mount is harmless and does not block merge
Reviewed at
3a4f2c0| Previous:43af380| AGENTS.mdAI Re-review (round 2): APPROVE — critical bug fixed: secrets restored; unused SSH mount is harmless and does not block merge