Files
docker-docs/.github/workflows/agent.yml
David Karlsson e628c62978 ci: improve agent/fix workflow
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
2026-01-05 16:49:24 +01:00

122 lines
4.0 KiB
YAML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Agent
on:
issues:
types: [labeled]
permissions:
contents: write
pull-requests: write
issues: write
jobs:
run-agent:
# Only run when the "agent/fix" label is added
if: github.event.label.name == 'agent/fix'
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install dependencies
run: npm ci
- name: Run agent
uses: docker/cagent-action@v1.0.3
timeout-minutes: 15
with:
cagent-version: v1.15.5
agent: ./agent.yml
yolo: true
prompt: |
Work on GitHub issue: ${{ github.event.issue.html_url }}
Fetch the issue, analyze what documentation changes are needed, and
implement them.
When complete, write .pr-body.md following this structure:
## Summary
One sentence describing what was fixed/added/changed.
## Changes
Bulleted list of specific changes (be concise, focus on what matters).
## Upstream coordination needed
Only include this section if there are issues requiring fixes in upstream
repos (docker/cli, moby/moby, etc.). Otherwise omit it entirely.
Fixes #${{ github.event.issue.number }}
---
🤖 Generated with [cagent](https://github.com/docker/cagent)
Keep the PR body brief and practical. Don't over-explain or add sections
that aren't needed.
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Check for changes
id: changes
run: |
if git diff --quiet; then
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
- name: Commit and push
if: steps.changes.outputs.has_changes == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
BRANCH="agent/issue-${{ github.event.issue.number }}"
git checkout -b "$BRANCH"
git add .
git commit -m "docs: address issue #${{ github.event.issue.number }}
This change was automatically generated by the documentation agent team
in response to issue #${{ github.event.issue.number }}.
🤖 Generated with cagent"
git push origin "$BRANCH"
- name: Create pull request
if: steps.changes.outputs.has_changes == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr create \
--title "docs: address issue #${{ github.event.issue.number }}" \
--body-file .pr-body.md \
--label agent/generated
- name: Comment on issue (success)
if: steps.changes.outputs.has_changes == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh issue comment ${{ github.event.issue.number }} --body "✅ The agent team has created a PR to address this issue. Please review when ready."
- name: Comment on issue (no changes)
if: steps.changes.outputs.has_changes == 'false'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh issue comment ${{ github.event.issue.number }} --body " The agent team ran but didn't make any changes. This might indicate the issue needs clarification or is already resolved."
- name: Comment on issue (failure)
if: failure()
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh issue comment ${{ github.event.issue.number }} --body "❌ The agent team encountered an error. Please check the [workflow logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details."