Install
openclaw skills install check-deployment-statusCheck deployment status of PRs and commits using continuous-deployment MCP and UCS deployer MCP. Use when user asks "is this deployed", "check deployment", "deployment status", "is PR merged and deployed", "check UP status", "introduced to production", or provides a GitHub PR URL and wants deployment info.
openclaw skills install check-deployment-statusCheck whether a PR/commit is deployed to staging and production using the continuous-deployment MCP tools.
/check-deployment-status <PR-URL> # Check deployment of a GitHub PR
/check-deployment-status <commit-hash> # Check deployment of a specific commit
/check-deployment-status <service-name> # List recent commits and their deployment status
When a PR is merged via SubmitQueue, the merge commit on main is DIFFERENT from the PR's head commit. The continuous-deployment system tracks the merge commit, not the PR head.
Workflow:
findServiceCommits with search text to find the actual merge commit on maingetCommitDeploymentStatus with the merge commit hash| Stage | Meaning |
|---|---|
| Build created | Binary built from commit |
| Deployed to staging | Running on staging instances |
| Soaked | Staging soak period passed |
| Waited for deployment window | Outside deploy freeze windows |
| Introduced to production | Fully deployed to production — code is live |
"Introduced to production" = fully deployed. Not partial, not in-progress. The commit is running on all production instances.
| Status | Meaning |
|---|---|
DEPLOYMENT_STATUS_DEPLOYED | Commit is running in this environment |
DEPLOYMENT_STATUS_DEPLOYING | Deployment in progress |
| (empty) | Not deployed to this environment |
Use mcp__code-mcp__get_github_pull_request_metadata:
org: uber-code
repo: go-code
number: <PR number>
Extract: title, head SHA, merged status, base branch.
The PR head SHA won't be found in deployment system. Search for the merge commit:
Use mcp__continuous-deployment__continuousdeployment_findservicecommits:
service_name: <service-name>
filter: { search_text: "<keyword from PR title>", commited_after: "2026-02-25T00:00:00Z" }
offset: 0
limit: 5
The result includes the merge commit hash, serial number, and code review metadata linking back to the PR.
Use mcp__continuous-deployment__continuousdeployment_getcommitdeploymentstatus:
hash: <merge-commit-hash>
repository: gitolite@code.uber.internal:go-code
options: { scope: "SCOPE_ALL_SERVICES" }
Returns deployment status per service per environment (staging, production, bits-test-sandbox).
| Tool | Purpose |
|---|---|
findServiceCommits | Search commits by service name, author, text, date range |
getCommitDeploymentStatus | Get deployment status of a commit across all environments |
listServiceCommits | List recent commits for a service (with serial-based pagination) |
getCommitsInDeployment | List commits in a specific deployment task |
listCommitSegments | Get deployment segments for a service |
getConfigForService | Get continuous deployment config for a service |
| Tool | Purpose |
|---|---|
get_github_pull_request_metadata | PR status, author, labels, SubmitQueue status |
get_github_pull_request_diff | PR diff content |
get_github_pull_request_comments | PR comments |
| Tool | Purpose |
|---|---|
ucsdeployer_status | Rollout status for a specific deployment object |
deploystatemanager_read | Read deploy state |
If only a service name is provided (no PR/commit):
Use mcp__continuous-deployment__continuousdeployment_listservicecommits:
service_name: <service-name>
offset: 0
limit: 5
Then check deployment status for each returned commit using Step 3.
For stacked PRs, each PR may affect different services. Check deployment per-service:
marketing-recommendations/ → check marketing-recommendations serviceads-insights/ → check ads-insights serviceFor go-code monorepo, always use: gitolite@code.uber.internal:go-code