[CI/Build] Add optional maintainer board apply mode#2461
Conversation
Add a gated workflow_dispatch apply job that reuses maintainer_board.py apply for label actions from proposed-actions.json while keeping the daily cron path read-only. Fixes vllm-project#2448 Signed-off-by: Haritha T H <hth@redhat.com>
✅ Deploy Preview for vllm-semantic-router ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
👥 vLLM Semantic Team NotificationThe following members have been identified for the changed files in this PR and have been automatically assigned when their GitHub accounts are assignable in this repository: 📁
|
✅ Supply Chain Security Report — All Clear
Scanned at |
FAUST-BENCHOU
left a comment
There was a problem hiding this comment.
Acceptable for me
|
@AayushSaini101 can you please review |
Xunzhuo
left a comment
There was a problem hiding this comment.
The scheduled path remains read-only, but the new manual apply path does not yet preserve the repository's explicit reviewed-payload boundary or its documented label-only contract. I reproduced both key failures with a fake gh: a create_issue payload reaches gh issue create, and a two-action partial failure mutates the first action then exits with no job summary. Please add behavior tests for the allowlist, malformed/empty payloads, review boundary, and partial failure. make agent-validate, bash -n, the schedule guard, and git diff --check passed.
|
|
||
| apply-actions: | ||
| needs: maintainer-board | ||
| if: github.event_name == 'workflow_dispatch' && inputs.apply_actions == true |
There was a problem hiding this comment.
[P1] Add a real review boundary before granting write permissions. apply_actions is selected before sync, and this same run immediately downloads and applies the newly generated payload, so nobody can inspect the exact proposed-actions.json before mutation. This contradicts the documented apply policy. Please consume a previously reviewed artifact identified by run ID/digest, or place the apply job behind a protected-environment approval after the artifact is uploaded.
| fi | ||
|
|
||
| echo "Applying ${action_count} proposed maintainer board action(s) from ${ACTIONS_FILE}" | ||
| python3 maintainer_board.py apply --actions "${ACTIONS_FILE}" --confirm |
There was a problem hiding this comment.
[P1] Enforce the advertised label-only allowlist before invoking the generic apply command. This wrapper only counts arbitrary JSON, while maintainer_board.py apply also accepts create_issue; a synthetic create_issue payload reaches gh issue create through this CI wrapper. Validate the root/list schema, allow only label_issue/label_pr, require repo-local numeric targets, and restrict labels to maintainer policy, with negative tests.
| echo "Applying ${action_count} proposed maintainer board action(s) from ${ACTIONS_FILE}" | ||
| python3 maintainer_board.py apply --actions "${ACTIONS_FILE}" --confirm | ||
|
|
||
| if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then |
There was a problem hiding this comment.
[P1] Always report partial application before failing the job. Actions mutate sequentially and set -e exits on the first failed gh command before this summary block, so earlier successful mutations become invisible. A two-action reproduction applied the first, failed the second, returned non-zero, and produced no summary. Track attempted/succeeded/failed actions through a trap/finally path, write the summary, then preserve the failing status.
Separate sync and apply into two workflow_dispatch runs via source_run_id, validate CI apply payloads against maintainer policy, and report partial gh failures in the job summary with behavior tests. Signed-off-by: Haritha T H <hth@redhat.com>
…ainer-board-apply-mode
Use cd ... || exit so Pre-commit shellcheck passes on the CI apply wrapper. Signed-off-by: Haritha T H <hth@redhat.com>
|
@Xunzhuo Thanks for the review — I've addressed all three P1 items in the latest commits:
Also added behavior tests in Could you please take another look when you have a moment? |

Fixes #2448
Purpose
apply_actionsinput to the maintainer board workflow.proposed-actions.jsonvia manualworkflow_dispatch.CI/BuildTest Plan
apply_actions=trueif needed.Test Result
today.md,current.json, andproposed-actions.jsonunder/tmp/mb-safe-test.workflow_dispatch(expected).Semantic Router PR Checklist
[Router],[CLI],[Dashboard],[Operator],[Fleet-Sim],[Bindings],[Training],[E2E],[Docs], or[CI/Build]git commit -s