Repository navigation
Show why external contributors' workflow runs wait for approval - #75832
Merged
Merged
Conversation
potiuk
requested review from
amoghrajesh,
bugraoz93,
choo121600,
ephraimbuddy,
gopidesupavan,
jason810496,
jedcunningham,
jscheffl and
vatsrahul1001
as code owners
October 28, 2026 01:00
Contributor
|
The re-run of the jobs stopped by EC2 Spot interruptions finished: attempt 2 failed. |
Contributors whose runs the auto-approve workflow leaves for a maintainer only saw a label, with no reason, and a comment for each would notify every subscriber. A pending "Workflow approval" commit status shows the reason in the PR's checks without notifying anyone. GitHub has no event for approving runs, but a waiting run never starts, so a run that starts is the signal to clear the status and the label, also for runs a maintainer approves by hand, without listing every waiting run. Generated-by: Claude Opus 5
Generated-by: Claude Opus 5
Generated-by: Claude Opus 5
potiuk
force-pushed
the
auto-approve-status
branch
from
October 28, 2026 03:14
ebc7036 to
99f21ce
Compare
potiuk
enabled auto-merge (squash)
October 28, 2026 03:15
shahar1
approved these changes
Oct 28, 2026
Contributor
Backport successfully created: v3-4-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
github-actions Bot
pushed a commit
to aws-mwaa/upstream-to-airflow
that referenced
this pull request
Oct 28, 2026
…proval (apache#75832) * Show why external contributors' workflow runs wait for approval Contributors whose runs the auto-approve workflow leaves for a maintainer only saw a label, with no reason, and a comment for each would notify every subscriber. A pending "Workflow approval" commit status shows the reason in the PR's checks without notifying anyone. GitHub has no event for approving runs, but a waiting run never starts, so a run that starts is the signal to clear the status and the label, also for runs a maintainer approves by hand, without listing every waiting run. Generated-by: Claude Opus 5 * Keep the approval status in sync with runs approved during a tick Generated-by: Claude Opus 5 * Re-check approved runs after the failure path writes the approval state (cherry picked from commit ee62251) Co-authored-by: Jarek Potiuk <jarek@potiuk.com> Generated-by: Claude Opus 5
aws-airflow-bot
pushed a commit
to aws-mwaa/upstream-to-airflow
that referenced
this pull request
Oct 28, 2026
…proval (apache#75832) * Show why external contributors' workflow runs wait for approval Contributors whose runs the auto-approve workflow leaves for a maintainer only saw a label, with no reason, and a comment for each would notify every subscriber. A pending "Workflow approval" commit status shows the reason in the PR's checks without notifying anyone. GitHub has no event for approving runs, but a waiting run never starts, so a run that starts is the signal to clear the status and the label, also for runs a maintainer approves by hand, without listing every waiting run. Generated-by: Claude Opus 5 * Keep the approval status in sync with runs approved during a tick Generated-by: Claude Opus 5 * Re-check approved runs after the failure path writes the approval state (cherry picked from commit ee62251) Co-authored-by: Jarek Potiuk <jarek@potiuk.com> Generated-by: Claude Opus 5
vatsrahul1001
pushed a commit
that referenced
this pull request
Oct 28, 2026
…proval (#75832) * Show why external contributors' workflow runs wait for approval Contributors whose runs the auto-approve workflow leaves for a maintainer only saw a label, with no reason, and a comment for each would notify every subscriber. A pending "Workflow approval" commit status shows the reason in the PR's checks without notifying anyone. GitHub has no event for approving runs, but a waiting run never starts, so a run that starts is the signal to clear the status and the label, also for runs a maintainer approves by hand, without listing every waiting run. Generated-by: Claude Opus 5 * Keep the approval status in sync with runs approved during a tick Generated-by: Claude Opus 5 * Re-check approved runs after the failure path writes the approval state (cherry picked from commit ee62251) Co-authored-by: Jarek Potiuk <jarek@potiuk.com> Generated-by: Claude Opus 5
vatsrahul1001
pushed a commit
that referenced
this pull request
Oct 28, 2026
…proval (#75832) (#75840) * Show why external contributors' workflow runs wait for approval Contributors whose runs the auto-approve workflow leaves for a maintainer only saw a label, with no reason, and a comment for each would notify every subscriber. A pending "Workflow approval" commit status shows the reason in the PR's checks without notifying anyone. GitHub has no event for approving runs, but a waiting run never starts, so a run that starts is the signal to clear the status and the label, also for runs a maintainer approves by hand, without listing every waiting run. Generated-by: Claude Opus 5 * Keep the approval status in sync with runs approved during a tick Generated-by: Claude Opus 5 * Re-check approved runs after the failure path writes the approval state (cherry picked from commit ee62251) Generated-by: Claude Opus 5 Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When the
Auto approve workflow runsworkflow leaves an external contributor's runs for a maintainer, the contributor only sees theneed workflow approvallabel, with no reason. A comment per PR would notify every subscriber, so this shows the reason as a commit status instead.Workflow approvalstatus, for exampleWaits for a maintainer: it changes CI definition files: .github/…(cut to GitHub's 140 characters). It links to the "CI workflow runs of external contributors" section of the contributing docs. It is not a required check and does not block merging. The same status is not written twice, because every tick decides again on the runs of the last 24 hours.mark-workflow-runs-approved.ymlfollowsTests (AMD)runs of fork PRs reachingin_progress. It turns the status green and removes the label, whether a maintainer or the workflow approved the runs. It doesn't need to list the ~1.8k waiting runs. It is a singleubuntu-slimstep of plaingh apicalls: no checkout, no Breeze, and the contributor-chosen head branch reaches the script only throughenv:.Workflow approvalcan be past the first page.Known limitation (documented): only a started
Tests (AMD)run clears the status, so a PR that removes or renames that workflow keeps its label and pending status. Such a PR changes CI definition files and gets a maintainer's review anyway.Docs updated:
contributing-docs/05_pull_requests.rst,contributing-docs/25_maintainer_pr_triage.md,dev/breeze/doc/08_ci_tasks.rst,dev/breeze/doc/ci/05_workflows.mdanddev/breeze/doc/ci/08_fork_ci_for_external_contributors.md.Testing:
uv run --project dev/breeze pytest dev/breeze/tests/test_workflow_run_approval.py(145 passed). Static checks pass, including zizmor and yamllint on the new workflow; the Markdown link check was skipped locally because it needs Docker. I ran the new workflow's read calls (PR lookup by head, paginated status lookup) read-only against a labelled PR onapache/airflow.workflow_runonly triggers from the default branch, so thein_progresstrigger and the two write calls can only be seen after merge; areport-onlydispatch ofAuto approve workflow runsshows the pending-status decisions.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Opus 5 following the guidelines
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.🤖 Generated with Claude Code