Add centralized /dependabot-burner grouping and retry-aware single-workflow remediation#40396
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot merge dependabot worker into the dependabot burner as a sub agent. Single AW. |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
|
@copilot remove the old agentic-workflows that handled dependent-bot tasks and keep only the new dependent-bot burner. |
There was a problem hiding this comment.
Pull request overview
This PR evolves the Dependabot automation workflows to support a centralized /dependabot-burner slash-command entrypoint and to run a single grouped remediation wave within the burner workflow, incorporating retry history and maintainer-only feedback into subsequent attempts.
Changes:
- Adds a
/dependabot-burnercentralized slash-command trigger and prefetches PR context to build a related-PR batch. - Introduces retry-aware inputs (retry context + maintainer feedback) and threads them through the existing worker/campaign dispatch plumbing.
- Updates the burner workflow’s compiled lock manifest to support comment/PR safe-outputs, CLI proxy usage, and the new orchestration flow.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/dependabot-worker.md | Adds retry/maintainer-feedback inputs and updates worker instructions/output fields for retry-aware execution. |
| .github/workflows/dependabot-worker.lock.yml | Regenerates the compiled workflow to include new inputs and updated safe-outputs title prefix. |
| .github/workflows/dependabot-campaign.lock.yml | Threads new retry/feedback inputs through the campaign → worker invocation payload in the compiled workflow. |
| .github/workflows/dependabot-burner.md | Replaces the burner definition with a centralized slash-command + grouped remediation orchestrator and subagents. |
| .github/workflows/dependabot-burner.lock.yml | Regenerates the compiled burner workflow with pre-activation role checks, safe-outputs, CLI proxy, and updated permissions. |
| .github/workflows/agentic_commands.yml | Registers /dependabot-burner routing to the new workflow. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 6/6 changed files
- Comments generated: 2
| async function listRecentClosedBurnerPRs() { | ||
| const pulls = await github.paginate(github.rest.pulls.list, { | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| state: 'closed', | ||
| per_page: 100, | ||
| }); | ||
|
|
||
| return pulls | ||
| .filter((pull) => pull.title?.startsWith('[dependabot-burner] ') && !pull.merged_at) | ||
| .slice(0, 20) | ||
| .map((pull) => ({ | ||
| number: pull.number, | ||
| title: pull.title, | ||
| body: pull.body || '', | ||
| url: pull.html_url, | ||
| closed_at: pull.closed_at, | ||
| created_at: pull.created_at, | ||
| })) | ||
| .sort((a, b) => new Date(b.closed_at || b.created_at).getTime() - new Date(a.closed_at || a.created_at).getTime()); | ||
| } |
| async function loadPullFiles(pullNumber) { | ||
| const files = await github.paginate(github.rest.pulls.listFiles, { | ||
| owner: context.repo.owner, | ||
| repo: context.repo.repo, | ||
| pull_number: pullNumber, | ||
| per_page: 100, | ||
| }); | ||
| return files.map((file) => file.filename).filter((filename) => manifestTargets.has(filename)); | ||
| } |
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done in the latest commit. Removed |
|
@copilot merge main |
…abot-burner-support # Conflicts: # .github/workflows/agentic_commands.yml # .github/workflows/dependabot-burner.lock.yml # .github/workflows/dependabot-campaign.lock.yml # .github/workflows/dependabot-campaign.md # .github/workflows/dependabot-worker.lock.yml # .github/workflows/dependabot-worker.md Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Done — merged |
This updates
dependabot-burnerto support direct PR invocation via a centralized/dependabot-burnercommand and to drive a single grouped remediation attempt inside the burner workflow itself. It also teaches the burner to reuse signal from prior failed burner PRs and maintainer-only feedback when deciding the next retry shape. The olddependabot-campaignanddependabot-workerworkflows have been removed —dependabot-burneris now the single workflow handling all Dependabot remediation.Centralized PR entrypoint
slash_commandtrigger for/dependabot-burneron PR comments and review comments.Filtered related-PR grouping
Retry-aware burner orchestration
[dependabot-burner]PRs and passes that history into the next attempt.Maintainer-only feedback loop
Single-workflow remediation strategy
dependabot-burnerso the burner owns source edits, validation, and replacement-PR creation in one workflow.dependabot-campaignanddependabot-worker; their responsibilities are fully absorbed bydependabot-burnervia inline subagents.Subagent-based PR analysis and execution