See every CircleCI deploy waiting on your approval

By General Input

One screen showing every CircleCI workflow held for manual approval across all your projects, longest waits first, with approve and cancel built in.

Integrations

  • CircleCI
  • GitHub
  • Slack

Type

App

Categories

  • Engineering
  • Operations

I want an app my release manager opens every afternoon that shows every CircleCI workflow currently waiting on a manual approval across all of our projects in one list, instead of clicking into each project's workflow page one at a time. The whole point is to replace the per-project hunting the native CircleCI UI forces, where you have to open each project's Workflows page and select the hold job inside it.

The main screen is a single list of held workflows. Build it in three steps: call CircleCI "Get a list of pipelines" for the organization to get recently built pipelines, then "Get a pipeline's workflows" for each pipeline, then "Get a workflow's jobs" for the workflows that are on hold. A workflow belongs in the list when one of its jobs is an approval job sitting in an on-hold state. Keep the held job's id from that jobs response on the row, because the approval action needs it later.

Each row shows the project, the branch, the commit message, who triggered the run, which job is holding, and how long it has been waiting expressed in plain language like "waiting 3 days" or "waiting 6 hours". Sort the longest waits to the top, since those are the ones at risk of being forgotten. Flag anything that has been waiting longer than a week with a clear visual warning, because CircleCI stops accepting approvals on a held job after 90 days and the run can no longer be resumed after that. Give the page a refresh control so the manager can re-pull the list without reloading.

When a row is opened, show the matching GitHub pull request alongside the build details so the manager can judge whether the change was actually reviewed before approving. Find it with GitHub "List Pull Requests" filtered to the build's branch as the head branch, then "Get a Pull Request" for the full record, and "List Pull Request Reviews" to show whether anyone approved it and who. Display the pull request title, its author, and a clear reviewed or not reviewed indicator. If no matching pull request exists for that branch, say so plainly on the row rather than showing an empty panel.

From a row I want three actions, each behind a confirmation dialog that names the project and branch so nobody approves the wrong thing. Approve the held job with CircleCI "Approve a job", passing that held job's own id as the approval request id, which means the handler must read the workflow's jobs before it can approve. Cancel a workflow that should not ship with "Cancel a workflow". Rerun a failed one from its failed job with "Rerun a workflow". After each action, refresh the affected row so its new state is visible immediately.

Whenever someone approves or cancels, post a short note to our release channel with Slack "Send a Message", naming who did it along with the project, branch, and what happened, for example "Priya approved the production deploy on acme/api, branch release-2.4". Capture the name of the person acting in the app so the channel has a real record of who released what. Do not post anything for reruns, only approvals and cancellations.

Two details to get right. CircleCI project slugs are formed as vcs/org/repo with gh or bb as the prefix, and the slashes in them are not URL-encoded. The pipelines list covers the most recently built projects you follow, up to 250, so treat that as the scope of the app rather than promising literally every project ever created. Do not offer build artifact viewing anywhere in the app, since that is not available to us.

Keep the design dense but legible: this is a working surface someone scans quickly once a day, so favor a compact table with clear status and age indicators over large cards. If nothing is currently held, show a calm empty state confirming there is nothing waiting rather than an error.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredChat quality review board for LiveChat support leadsWin back no-show and cancelled appointments every morningLive Loop returns analytics with product-level drill-downNewsletter pre-flight and approval board for Mailjet sendsTurn a prospect spreadsheet into personalized sequence enrollmentsMailjet email delivery lookup console for support teamsCatch feature flags that never got switched on in productionKajabi customer support console for member access fixes