Skip to content

Functional tests gate offers no reviewer signal that ok-to-test is still needed after workflow approval (PR #617) #626

Description

@ralphbean

Problem

PR #617 (eval(code): add 002-dead-config-field functional test case) never got a functional-tests run, even though it's exactly the kind of change (a new eval fixture) where we'd most want the harness to exercise the new case.

Functional Tests ran twice on pull_request_target, and both times gate resolved authorized=false, reason=unauthorized, so detect and functional-tests were skipped:

REASON: unauthorized

Root cause: the PR author (guyoron1) is a first-time external contributor —
author_association: FIRST_TIME_CONTRIBUTOR, collaborator permission read.
check-e2e-authorization.sh correctly requires a maintainer-applied
ok-to-test label for this case, per the existing design. The bot posted the
expected gate comment:

Functional tests run automatically for org/repo members and
collaborators
on pull requests. For other contributors, a maintainer must
add the ok-to-test label after the latest push.

No one ever applied ok-to-test.

Separately, GitHub's own "first-time contributor" workflow-approval gate
was satisfied later the same day (a maintainer approved the CI /
Script tests pull_request runs at 14:49, ~9 hours after the PR opened).
That approval only unblocks pull_request-triggered workflows — it has no
effect on the pull_request_target gate in functional-tests.yml, which
needs the separate ok-to-test label. A reviewer who clicks "Approve and
run workflows" can reasonably believe they've unblocked all CI, including
functional tests, when they haven't.

Neither CONTRIBUTING.md nor any doc under docs/ mentions ok-to-test, so
there's no reviewer-facing guidance pointing at the second, separate gate.

Why this matters here specifically

This PR adds an eval case — the harness itself is the thing under test.
The PR body even lists "End-to-end fullsend eval code run (requires CI)"
as an unchecked test-plan item. This is close to a best-case scenario for
wanting functional tests to run (once approved), not skip silently.

Expected behavior

Some combination of:

  1. Reviewer-facing documentation (CONTRIBUTING.md or a PR template note)
    that explains the two independent approval gates and when ok-to-test
    is required.
  2. A more visible nudge at review time — e.g. the gate comment could be
    surfaced as a check-run annotation, not just a PR comment that's easy to
    miss among bot review comments (Qodo etc. also comment on this PR).
  3. Consider whether the roll-up job silently reporting SUCCESS on
    skipped (tracked in ci(functional-tests): complete job reports SUCCESS when all tests are skipped #388) makes this easier to miss, since there's no
    red X prompting a reviewer to investigate why tests didn't run.

This is not a request to bypass the authorization gate — external
contributor PRs should still require ok-to-test. The gap is that nothing
in the reviewer workflow makes it obvious that the label is still needed
after the standard GitHub Actions approval.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingdocumentationImprovements or additions to documentationneeds-humanAgent loop needs human interventiontriaged

    Type

    No type

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions