Skip to content

[Fleet Monitor] petry-projects/markets β€” pr-review.ymlΒ #252

Closed

Description

@don-petry

🟠 DEGRADED: petry-projects/markets / pr-review.yml

Metric Value
Failure Rate 29.5% (31 / 105 runs)
Status DEGRADED
p50 Duration 1s
p95 Duration 60s
Successful Runs 3
Cancelled Runs 6

Workflow: pr-review.yml

Last updated by Fleet Monitor run on 2026-06-10.
Threshold: failure rate > 10% over the monitored window.

Activity

  1. added
    dev-leadFor dev-lead agent pickup
    fleet-trackerTracked by the Actions Fleet Monitor
    health-checkAutomated health check result
    and removed
    dev-leadFor dev-lead agent pickup
    on Jun 4, 2026
  2. don-petry commented on Jun 9, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead Implementation Plan

    Issue: #252 β€” [Fleet Monitor] petry-projects/markets β€” pr-review.yml

    Root Cause

    markets/.github/workflows/pr-review.yml has permissions: {} at the workflow level with no job-level permissions override. It calls pr-review-reusable.yml@commit, which in turn calls pr-review.yml@main. GitHub Actions validates at startup that the calling job's permissions are a superset of what the reusable workflow declares (contents: read, pull-requests: write, checks: read). Since the caller grants no permissions, GitHub raises a startup_failure before any job runs β€” explaining the 0s p50/p95 duration and 100% failure rate.

    Additionally, pr-review.yml@main in .github-private was recently refactored to be reusable-only (#497/#506), and a new pr-review-trigger.yml template was introduced as the canonical thin-caller pattern. The markets workflow needs to be updated to follow this pattern.

    Scope

    Update .github/workflows/pr-review.yml to follow the new pr-review-trigger.yml pattern: call pr-review.yml@pr-review/stable directly (bypassing the pr-review-reusable.yml indirection), add proper permissions, update triggers, and forward inputs including agent_ref.

    Implementation Checklist

    • .github/workflows/pr-review.yml: Update to follow pr-review-trigger.yml pattern β€” call pr-review.yml directly at pr-review/stable SHA, add permissions, update triggers, forward inputs

    Tests to Write

    TDD Exception: This is a CI configuration fix with no application code to unit-test. GitHub Actions workflows cannot be unit-tested locally. The observable behavior being fixed is the startup_failure conclusion β€” the "test" is the workflow's next run completing without startup_failure. Pre-flight validation: YAML lint via python3 -c "import yaml; yaml.safe_load(open('.github/workflows/pr-review.yml'))".

    • YAML syntax validation of updated pr-review.yml
    • Verify the referenced reusable workflow exists at the pinned SHA

    Test Command

    python3 -c "import yaml; yaml.safe_load(open('.github/workflows/pr-review.yml'))" && echo OK

  3. don-petry commented on Jun 9, 2026

    @don-petry
    ContributorAuthor

    Dev-Lead: Implementation Complete

    Plan Execution

    • Identified root cause: permissions: {} at workflow level with no job-level override caused GitHub to fail startup_failure at parse time β€” the calling job had no permissions but the reusable pr-review.yml declares contents: read, pull-requests: write, checks: read
    • Updated .github/workflows/pr-review.yml to follow the new pr-review-trigger.yml pattern from .github-private
    • Removed pr-review-reusable.yml indirection β€” now calls pr-review.yml directly
    • Pinned to pr-review/stable SHA (1bd8975a9c83bca376082f0b507c89b3743d5e3f)
    • Added proper permissions block mirroring the reusable's own declaration
    • Updated triggers and forwarded inputs including agent_ref
    • YAML syntax validation passed
    • Dev-lead lint passed

    Test Results (TDD Exception noted in plan)

    YAML syntax OK
    [lint] shellcheck: no .sh files found β€” skipping
    [lint] all checks passed
    

    Verified the pinned SHA exists and accepts agent_ref, pr_url, dry_run, force_review inputs.

    Files Changed

    • .github/workflows/pr-review.yml: Fixed startup_failure by adding permissions, removing pr-review-reusable.yml indirection, calling pr-review.yml@pr-review/stable directly, updating triggers to match new pr-review-trigger.yml pattern, forwarding inputs

    Notes

    • issue_comment and pull_request_review_comment triggers were intentionally removed β€” those are already handled by the separate pr-review-mention.yml workflow, which dispatches repository_dispatch: pr-review-mention events that this workflow now handles
    • The old workflow_dispatch: pr_numbers input was replaced with pr_url, dry_run, force_review to match the new reusable's interface
    • Concurrency group updated to be PR-URL-based (matching the reusable) rather than PR-number-based
  4. added a commit that references this issue on Jun 10, 2026
  5. don-petry commented on Jul 15, 2026

    @don-petry
    ContributorAuthor

    βœ… Auto-resolved by Fleet Monitor. This workflow's failure rate has been below the 10% threshold (or the workflow was removed) since 2026-06-10 (35 days) β€” the monitor stopped flagging it. Closing. It will reopen automatically if the workflow crosses the threshold again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    dev-leadFor dev-lead agent pickupfleet-trackerTracked by the Actions Fleet Monitorhealth-checkAutomated health check result

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions