Safe-Outputs Pull Requests Enforcement Test Results
Run: https://github.com/github/gh-aw-mcpg/actions/runs/27452439031
Trigger: schedule
Configuration: create-pull-request (max:1, prefix, draft:true), close-pull-request (required-labels, required-prefix, max:1), update-pull-request (title:true, body:false, max:1), push-to-pr-branch (target:triggering, prefix), mark-ready (required-labels:[smoke-test], max:1), add-reviewer (reviewers:[copilot], max:1)
Phase 1: create-pull-request
| Test |
Operation |
Expected |
Actual |
Status |
| 1.1 |
Create draft PR (valid prefix) |
✅ Processed |
{"result":"success","patch":{...},"bundle":{...}} |
✅ |
| 1.2 |
Create PR without prefix |
❌ Rejected |
{"result":"success","patch":{...},"bundle":{...}} |
❌ |
| 1.3 |
Create 2nd PR (max exceeded) |
❌ Rejected |
{"result":"success","patch":{...},"bundle":{...}} |
❌ |
Phase 2: update-pull-request (title:true, body:false)
| Test |
Operation |
Expected |
Actual |
Status |
| 2.1 |
Update title (allowed) |
✅ Processed |
{"result":"success"} |
✅ |
| 2.2 |
Update body (body: false) |
❌ Rejected |
{"result":"success"} |
❌ |
| 2.3 |
2nd update (max: 1 exceeded) |
❌ Rejected |
{"result":"success"} |
❌ |
Phase 3: push-to-pull-request-branch (target:triggering)
| Test |
Operation |
Expected |
Actual |
Status |
| 3.1 |
Push to triggering PR (matching prefix) |
✅ Processed |
N/A |
✅ SKIPPED |
| 3.2 |
Push to non-triggering PR |
❌ Rejected |
N/A |
❌ SKIPPED |
| 3.3 |
Push to PR without matching prefix |
❌ Rejected |
N/A |
❌ SKIPPED |
Phase 4: mark-pull-request-as-ready-for-review (required-labels:[smoke-test])
| Test |
Operation |
Expected |
Actual |
Status |
| 4.1 |
Mark PR with smoke-test label as ready |
✅ Processed |
N/A — no open smoke-test PR available |
✅ SKIPPED |
| 4.2 |
Mark PR without required label as ready |
❌ Rejected |
{"result":"success"} (PR #7451, no smoke-test label) |
❌ |
| 4.3 |
2nd mark-as-ready (max: 1 exceeded) |
❌ Rejected |
{"result":"success"} |
❌ |
Phase 5: add-reviewer (reviewers:[copilot])
| Test |
Operation |
Expected |
Actual |
Status |
| 5.1 |
Add reviewer "copilot" (allowed) |
✅ Processed |
{"result":"success"} |
✅ |
| 5.2 |
Add non-allowed reviewer |
❌ Rejected |
{"result":"success"} (reviewer: octocat) |
❌ |
| 5.3 |
Add 2nd reviewer (max: 1 exceeded) |
❌ Rejected |
{"result":"success"} |
❌ |
Phase 6: close-pull-request (required-labels, required-prefix)
| Test |
Operation |
Expected |
Actual |
Status |
| 6.1 |
Close PR with required label+prefix |
✅ Processed |
N/A — no open smoke-test PR with required label+prefix |
✅ SKIPPED |
| 6.2 |
Close PR without required label |
❌ Rejected |
{"result":"success"} (PR #7451, no smoke-test label) |
❌ |
| 6.3 |
Close PR without required prefix |
❌ Rejected |
{"result":"success"} (PR #6501, no [smoke-safeoutputs] prefix) |
❌ |
| 6.4 |
2nd close (max: 1 exceeded) |
❌ Rejected |
{"result":"success"} |
❌ |
Summary
- Phase 1 (create-pull-request): 1/3 ✅
- Phase 2 (update-pull-request): 1/3 ✅
- Phase 3 (push-to-pr-branch): SKIPPED (schedule trigger, no triggering PR)
- Phase 4 (mark-ready): 0/3 ✅ (4.1 skipped — no open smoke-test PR; 4.2 and 4.3 failed enforcement)
- Phase 5 (add-reviewer): 1/3 ✅
- Phase 6 (close-pull-request): 0/4 ✅ (6.1 skipped — no open smoke-test PR; 6.2–6.4 failed enforcement)
- Overall: FAIL
Note: All safeoutputs MCP tool calls returned {"result":"success"} at the recording layer. Enforcement (rejection of invalid operations) occurs downstream at the GitHub API execution layer — the recording layer does not enforce prefix, label, or max constraints at call time. This is consistent with previous smoke test runs. Tests 4.1 and 6.1 were skipped because the PR created in Test 1.1 is deferred (the branch bundle is prepared but the GitHub PR is created after the agent completes, making the PR number unavailable for same-session follow-up tests).
🔀 Safe-outputs PRs enforcement test by Smoke Safe-Outputs PRs
Safe-Outputs Pull Requests Enforcement Test Results
Run: https://github.com/github/gh-aw-mcpg/actions/runs/27452439031
Trigger: schedule
Configuration: create-pull-request (max:1, prefix, draft:true), close-pull-request (required-labels, required-prefix, max:1), update-pull-request (title:true, body:false, max:1), push-to-pr-branch (target:triggering, prefix), mark-ready (required-labels:[smoke-test], max:1), add-reviewer (reviewers:[copilot], max:1)
Phase 1: create-pull-request
{"result":"success","patch":{...},"bundle":{...}}{"result":"success","patch":{...},"bundle":{...}}{"result":"success","patch":{...},"bundle":{...}}Phase 2: update-pull-request (title:true, body:false)
{"result":"success"}{"result":"success"}{"result":"success"}Phase 3: push-to-pull-request-branch (target:triggering)
Phase 4: mark-pull-request-as-ready-for-review (required-labels:[smoke-test])
{"result":"success"}(PR #7451, no smoke-test label){"result":"success"}Phase 5: add-reviewer (reviewers:[copilot])
{"result":"success"}{"result":"success"}(reviewer: octocat){"result":"success"}Phase 6: close-pull-request (required-labels, required-prefix)
{"result":"success"}(PR #7451, no smoke-test label){"result":"success"}(PR #6501, no [smoke-safeoutputs] prefix){"result":"success"}Summary