Run the issue-labeler over pull requests using polling#12294
Open
Run the issue-labeler over pull requests using polling#12294
Conversation
Co-authored-by: jeffhandley <1031940+jeffhandley@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Refresh pull request labeling workflow
Run the issue-labeler over pull requests using polling
Feb 7, 2026
jeffhandley
approved these changes
Feb 7, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the PR label prediction workflow to support scheduled polling so open PRs that missed automatic labeling (including Copilot-authored PRs with restricted workflow permissions) can still get area labels applied.
Changes:
- Adds a 5-minute cron schedule trigger for polling.
- Introduces a
poll-pull-requestsjob to query open PRs lackingarea-*labels and pass them to prediction. - Updates
workflow_dispatchand the prediction job to support either explicit PR numbers or polling-derived PR numbers.
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.
Copilot-authored pull requests run workflows with permissions lower than other PRs (including those submitted by external contributors). This blocks the issue-labeler workflow from being able to run on those PRs, leaving a prompt for the workflow to be approved.
To run issue-labeler over these PRs as well as other PRs that have missed labeling (such as GitHub service interruptions when the events don't trigger), the PR label prediction workflow adds a cron schedule for as frequently as GitHub will run it (by using every 5 minutes). When triggered from the polling event, we collect the list of open and unlabeled PRs that have been updated since the last polling run (plus 5 extra minutes), and we run the issue-labeler prediction against those.
This also updates the workflow_dispatch event to allow an empty list of PR numbers to force a polling event run.
Changes
poll-pull-requestsjob: Queries for open PRs without area labels, tracks last run timestamp to avoid redundant processingpredict-pull-labeljob: Processes PRs from polling, workflow_dispatch, or pull_request_target eventsLABEL_PREFIX: "area-",DEFAULT_LABEL: "needs-area-label"unchangedAddresses (dotnet/issue-labeler#105) Pull Request Labeling does not run automatically for Copilot PRs for this repository.
Replicates dotnet/.github#20 and dotnet/runtime#124023.
Original prompt
Created from Copilot CLI via the copilot delegate command.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.