fix: dispatcher should verify admin approver, not merger #186
Labels
No labels
action
backlog
blocked
bug-report
in-progress
prediction/actioned
prediction/dismissed
prediction/unreviewed
priority
tech-debt
underspecified
vision
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: disinto-admin/disinto#186
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Problem
The dispatcher (docker/edge/dispatcher.sh) verifies vault actions by checking whether the merger of the PR is an admin (verify_admin_merged -> get_pr_merger). With the auto-merge workflow (#170), the merger is always the bot that requested auto-merge (e.g. dev-bot), not the human who approved the PR.
This causes all auto-merged vault PRs to be rejected:
Meanwhile the Forgejo reviews API shows the actual approval:
Root cause
The vault security model is "an admin approved this action", not "an admin clicked merge". With auto-merge, these are different identities:
Proposed solution
Change verify_admin_merged() in docker/edge/dispatcher.sh to check PR reviews instead of (or in addition to) the merger:
Affected files
Acceptance criteria
Dependencies
Depends on #170