Skip to content

✨ Add Deployment Approval Visibility #20

@homeles

Description

@homeles

Summary

Add a view or prominent UI element that highlights pending deployment approvals across monitored repositories. This gives teams instant visibility into workflows that are blocked waiting for human approval, reducing deployment delays.

Motivation

GitHub Actions supports environment protection rules that require manual approval before deploying. Currently, these pending approvals are buried in the GitHub UI — easy to miss, causing deployment bottlenecks.

RunWatch should surface these prominently so reviewers can take action quickly.

Acceptance Criteria

Core Requirements

  • Display pending deployment approvals in a dedicated section or view
  • Show for each pending approval:
    • Repository and workflow name
    • Environment being deployed to (e.g., production, staging)
    • Who triggered the deployment
    • How long it has been waiting
    • Direct link to approve/reject in GitHub
  • Visual indicator (badge/counter) in the main navigation showing number of pending approvals

Filtering & Sorting

  • Filter by repository, environment, requester
  • Sort by wait time (longest waiting first by default)

Notifications (stretch goal)

  • Optional WebSocket-based alert when a new approval is pending
  • Consider integration with external notification channels (Slack, etc.) in the future

UI/UX

  • Prominent placement — either a dedicated tab or a banner/widget on the main dashboard
  • Color-coded urgency based on wait time (e.g., yellow > 30min, red > 2h)
  • Consistent Material UI styling

Technical Notes

  • GitHub API: Use the Pending deployments API to check waiting status runs
  • Detection: Workflow runs with status: waiting indicate pending approval
  • Backend: New service to poll/detect waiting deployments, broadcast via Socket.IO
  • Frontend: New component in client/src/features/ or integrated into the dashboard

Open Questions

  • Should this be a standalone view or a widget on the existing dashboard?
  • What polling interval is appropriate for checking pending approvals?
  • Should RunWatch allow approving deployments directly (requires additional GitHub permissions)?

Size Estimate

🐕 M (4-8 hours)

Metadata

Metadata

Assignees

No one assigned

    Labels

    backendServer/API changesfeatureNew feature or enhancementfrontendUI/client changes

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions