بنقرة واحدة
scan-bot-prs
// Scan Ansible devtools repos for open PRs from renovate and dependabot, check their CI status, and produce a prioritized list of failing PRs. Use to get a quick overview of which bot PRs need attention.
// Scan Ansible devtools repos for open PRs from renovate and dependabot, check their CI status, and produce a prioritized list of failing PRs. Use to get a quick overview of which bot PRs need attention.
Reference for ansible-dev-environment (ade), a pip-like installer for Ansible collections with isolated virtual environments. Use ade to set up development environments that install both Python and collection dependencies, with proper symlinks for editable collection development.
Reference for scaffolding Ansible content with ansible-creator. Use ansible-creator to initialize new collections, playbook projects, and execution environments, or to add plugins and resources to existing projects. This skill is the canonical lookup table for which subcommand and flags to use.
Reference for linting Ansible playbooks, roles, and collections with ansible-lint. Agents should prefer tox -e lint when available, but this skill provides the canonical reference for ansible-lint options, profiles, rule suppression, and configuration when direct invocation is needed or when understanding lint output.
Check out a PR branch, rebase it onto the base branch, push, and wait for CI to complete. Reports whether the rebase alone fixed CI or if further action is needed. Use when a PR is stale and may just need a rebase to pass CI.
Prepare and submit a pull request. Syncs with upstream, creates a feature branch, runs quality gates (tox -e lint, tox -e py), updates documentation as needed, commits with conventional commits, then creates the PR via gh. Use when the user asks to submit, create, or open a pull request, or says "submit PR", "open PR", "create PR", "new PR".
Use when handling pull request reviews, including automated (Copilot) and human reviewer feedback. Use when responding to PR comments, resolving review threads, or updating PRs after review.
| name | scan-bot-prs |
| description | Scan Ansible devtools repos for open PRs from renovate and dependabot, check their CI status, and produce a prioritized list of failing PRs. Use to get a quick overview of which bot PRs need attention. |
| argument-hint | [repo] |
| user-invocable | true |
| type | skill |
| mandatory | false |
| triggers | ["scan bot PRs","list failing bot PRs","check renovate PRs","check dependabot PRs","show broken dependency PRs"] |
| metadata | {"author":"Ansible DevTools Team","version":"1.1.0"} |
Scan Ansible devtools repositories for open dependency update PRs from renovate and dependabot. Check CI status for each. Output a prioritized table of failing PRs that need fixing.
This skill is read-only — it does not modify any repository or PR.
ansible/vscode-ansible): scan only that repo.gh auth status
If not authenticated, stop.
Fetch the canonical repo list from ansible/team-devtools:
gh api repos/ansible/team-devtools/contents/config/repos.lst \
--jq '.content' | base64 -d
If unavailable or if a specific repo was passed as argument, use the argument or fall back to:
ansible/vscode-ansible
ansible/ansible-dev-tools
ansible/ansible-navigator
ansible/ansible-lint
ansible/ansible-compat
ansible/ansible-creator
ansible/ansible-dev-environment
ansible/ansible-sign
ansible/molecule
ansible/tox-ansible
ansible/pytest-ansible
ansible/mkdocs-ansible
ansible/team-devtools
ansible/actions
ansible/ansible-content-actions
ansible-automation-platform/ansible-devtools-container
ansible-automation-platform/ansible-devspaces-container
For each repo, run two separate queries (gh does not support multiple
--author in one call):
gh pr list --repo OWNER/REPO --author "app/renovate" --state open \
--json number,title,headRefName,url,labels,createdAt
gh pr list --repo OWNER/REPO --author "app/dependabot" --state open \
--json number,title,headRefName,url,labels,createdAt
Merge both result sets per repo.
For each discovered PR, check CI status:
gh pr checks PR_NUMBER --repo OWNER/REPO \
--json name,state --jq '[.[] | select(.state == "FAILURE" or .state == "ERROR")]'
Skip list — these checks do not count as code failures:
codecov/project, codecov/patchdocs/readthedocs.org:*ack / ackrenovate/stability-daysrenovate/artifactsSonarCloud Code AnalysisA PR is failing if it has at least one FAILURE or ERROR that is
NOT in the skip list. Drop everything else — this skill only outputs
failing PRs.
Rank failing PRs in this order:
[SECURITY], [security], or
vulnerability, or labels include security.lock file maintenance.
Smallest blast radius, highest fix success rate.update all dependencies.
Largest blast radius, hardest to fix.Within each priority tier, sort by oldest first (earliest createdAt).
Found N failing bot PRs across M repos.
| Priority | Repo | PR# | Branch | Title | Failing Checks | Age |
|----------|------------------------|------|-----------------------------|--------------------------------|--------------------------|-------|
| SECURITY | ansible/ansible-lint | 5014 | renovate/security | fix(security): update deps | tox/check, tox/lint | 34d |
| LOCKFILE | ansible/vscode-ansible | 2716 | renovate/lock-file-maint... | chore(deps): lock file maint. | preflight, test (linux) | 30d |
| SINGLE | ansible/vscode-ansible | 2756 | renovate/node-24.x | chore(deps): update node.js | test (linux), test (wsl) | 18d |
| ALL | ansible/molecule | 4621 | renovate/all | chore(deps): update all deps | tox/check, tox/lint | 45d |
If no failing bot PRs are found, report that and stop.