Skip to content

Add author nudges and clean Copilot review routing#129

Merged
trask merged 45 commits into
open-telemetry:mainfrom
trask:combine-dashboard-delivery
Jul 22, 2026
Merged

Add author nudges and clean Copilot review routing#129
trask merged 45 commits into
open-telemetry:mainfrom
trask:combine-dashboard-delivery

Conversation

@trask

@trask trask commented Jul 21, 2026

Copy link
Copy Markdown
Member

Add author reminders for pull requests that remain in Waiting on authors for a week, and optionally require a clean Copilot review on the current head before routing a pull request back to reviewers or maintainers. Each continuous stay in Waiting on authors receives at most one reminder; leaving resets the clock, so a pull request that later returns can receive another reminder after a new week-long wait. The dashboard also requests follow-up Copilot reviews when needed and avoids duplicating pending requests.

These changes combine #125 and #126 because both need the same durable delivery boundary: update-dashboard calculates routing with read-only target-repository access and records pending work on the state branch, while one serialized, repository-wide publish-dashboard job delivers status comments, author reminders, Copilot re-review requests, Slack notifications, and the dashboard issue. Consolidating them avoids adding more competing state-branch writers, lets surviving publishers drain work left by superseded pending jobs, and leaves the reusable repository workflow with only the update and publish jobs.

It also addresses #112, by letting the pull request author or a member of the repository's approver_teams comment /dashboard route:reviewers to move a pull request from Waiting on authors to Waiting on reviewers, applying the dashboard:route-overridden label to mark the override. The label is released automatically once routing reaches reviewers, and both the reminder and the live status comment advertise the command.

Author-facing comment examples

The author handle is shown in backticks below so this description does not send a real mention notification; the live comments mention the author normally.

Live PR status comment (author-routed, with feedback)

Pull request dashboard status

Status last refreshed: 2026-07-21 14:32:05 UTC.

  • Waiting on: Author
  • Next step: Address or respond to 2 review feedback items:
    • Inline threads: 1
    • Top-level feedback: 2
    • For each item, reply to move the discussion forward, e.g. link to the commit that addresses it, explain why no change is needed, or ask a follow-up question.

This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. If you believe this pull request is incorrectly routed as waiting on the author, comment /dashboard route:reviewers to route it from waiting on the author to waiting on reviewers. If the last refreshed time above predates your latest reply or push, the dashboard hasn't processed it yet.

Author reminder (nudge)

Hi @alice — just a friendly reminder that this pull request has been waiting on you for a week.

There are still items that need your attention. See the dashboard status comment for the full list. You don't need to push a code change to hand it back — replying to move each discussion forward is enough, whether that's answering a question, explaining why no change is needed, or asking a follow-up. The dashboard then automatically routes it back to reviewers.

If you believe this pull request is incorrectly routed as waiting on the author, comment /dashboard route:reviewers to route it from waiting on the author to waiting on reviewers.

Closes #26
Closes #110

Supersedes #125 and #126.

@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Jul 21, 2026

Copy link
Copy Markdown

Pull request dashboard status

Status last refreshed: 2026-07-22 14:37:42 UTC.

  • Status: Merged.

This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds durable author reminders and optional clean Copilot review gating while consolidating dashboard side effects into one serialized publisher.

Changes:

  • Adds one-time author nudges after one week.
  • Adds clean Copilot review routing and re-review requests.
  • Consolidates comments, Slack, nudges, and reviews into durable delivery.

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
pull-request-dashboard/README.md Documents new behavior and configuration.
.github/workflows/pull-request-dashboard.yml Passes Copilot configuration.
.github/workflows/pull-request-dashboard-repo.yml Consolidates publishing workflow.
.github/scripts/pull-request-dashboard/author_nudge.py Implements author nudges.
.github/scripts/pull-request-dashboard/copilot_review.py Tracks Copilot re-review requests.
.github/scripts/pull-request-dashboard/dashboard.py Adds routing gates and delivery state.
.github/scripts/pull-request-dashboard/delivery.py Serializes dashboard side effects.
.github/scripts/pull-request-dashboard/github_cli.py Adds Copilot review API support.
.github/scripts/pull-request-dashboard/notify_slack.py Supports shared delivery timestamps.
.github/scripts/pull-request-dashboard/route_presentation.py Adds Copilot route presentation.
.github/scripts/pull-request-dashboard/state.py Adds nudge and review ledgers.
.github/scripts/pull-request-dashboard/test_author_nudge.py Tests nudge behavior.
.github/scripts/pull-request-dashboard/test_copilot_review.py Tests review delivery.
.github/scripts/pull-request-dashboard/test_dashboard.py Tests routing and refresh behavior.
.github/scripts/pull-request-dashboard/test_delivery.py Tests consolidated delivery.
.github/scripts/pull-request-dashboard/test_github_cli.py Tests Copilot API integration.
.github/scripts/pull-request-dashboard/test_notify_slack.py Tests Copilot Slack suppression.
.github/scripts/pull-request-dashboard/test_pr_status_comment.py Tests Copilot status rendering.
.github/scripts/pull-request-dashboard/test_route_presentation.py Tests Copilot route labels.
.github/scripts/pull-request-dashboard/test_state.py Tests new state ledgers.
.github/scripts/pull-request-dashboard/test_top_level_actions.py Tests configuration propagation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/pull-request-dashboard-repo.yml Outdated
Comment thread .github/scripts/pull-request-dashboard/copilot_review.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.

Comment thread .github/scripts/pull-request-dashboard/dashboard.py Outdated
Comment thread .github/scripts/pull-request-dashboard/author_nudge.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.

Comment thread .github/workflows/pull-request-dashboard-repo.yml Outdated
Comment thread .github/workflows/pull-request-dashboard.yml Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 22 out of 22 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/scripts/pull-request-dashboard/author_nudge.py:100

  • If the reminder POST fails after this status update succeeds, the pending nudge keeps its pre-update source_fingerprint. Because that fingerprint includes issue comments and the rendered status always gets a fresh timestamp, the next publisher treats its own status write as a routing-input change and clears the pending nudge instead of retrying it. Exclude dashboard-managed status comments from the fingerprint, or persist a refreshed fingerprint after this write so transient reminder failures remain durable.
    publish_pr_status(repo, pr_number, dashboard_state)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 2 comments.

Comment thread .github/scripts/pull-request-dashboard/author_nudge.py
Comment thread .github/scripts/pull-request-dashboard/dashboard_override.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 2 comments.

Comment thread .github/scripts/pull-request-dashboard/state.py
Comment thread .github/scripts/pull-request-dashboard/author_nudge.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 3 comments.

Comment thread .github/scripts/pull-request-dashboard/pr_status_comment.py
Comment thread .github/scripts/pull-request-dashboard/author_nudge.py
Comment thread .github/scripts/pull-request-dashboard/pr_status_comment.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 1 comment.

Comment thread .github/scripts/pull-request-dashboard/author_nudge.py

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated 2 comments.

Comment thread .github/scripts/pull-request-dashboard/copilot_review.py Outdated
Comment thread .github/scripts/pull-request-dashboard/dashboard_override.py

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 28 out of 28 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

.github/scripts/pull-request-dashboard/dashboard_override.py:131

  • If the label write succeeds but ensure_command_reply fails, the label webhook refreshes this same unacknowledged command with label_applied == True. This then clears dashboard_override_requested, and apply_dashboard_override turns the command into an already_routed no-op; the retry tells the author their command had no effect even though it applied the label. Preserve the command's pending routed acknowledgement until an authenticated ack marker is observed, while still distinguishing a genuinely pre-existing label.
        "dashboard_override_requested": command_pending and not label_applied,

@trask
trask merged commit 2bcd706 into open-telemetry:main Jul 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PR Dashboard: Option to re-request Copilot review before moving to waiting for reviewers PR Dashboard: Nudge authors when PRs are waiting on them

3 participants