configure-plugin/skills/configure-argocd-automerge/SKILL.md
ArgoCD auto-merge: configure GitHub Actions for image-updater-** branches. Use when setting up argocd-automerge.yml or verifying PAT permissions.
npx skillsauth add laurigates/claude-plugins configure-argocd-automergeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Configure GitHub Actions workflow to automatically create and merge PRs from ArgoCD Image Updater branches.
| Use this skill when... | Use another approach when... |
|------------------------|------------------------------|
| Setting up auto-merge for ArgoCD Image Updater branches | Configuring ArgoCD application definitions |
| Checking if image-updater-** branches have auto-merge | Managing general GitHub Actions workflows (/configure:workflows) |
| Creating the argocd-automerge.yml workflow from scratch | Setting up container builds (/configure:container) |
| Verifying PAT and permissions for auto-merge workflows | Configuring branch protection rules manually |
| Updating an existing ArgoCD auto-merge workflow | Configuring Kubernetes deployments (/configure:skaffold) |
find . -maxdepth 1 -type d -name \'.github/workflows\'find .github/workflows -maxdepth 1 \( -name '*argocd*automerge*' -o -name '*automerge*argocd*' \)git branch -r --list 'origin/image-updater-*'find .github/workflows -maxdepth 1 -name 'argocd-automerge.yml'Parse from command arguments:
--check-only: Report status without offering fixes--fix: Create or update workflow automaticallyExecute this ArgoCD auto-merge workflow configuration:
.github/workflows/ directoryimage-updater-** branch pattern handling in any workflowValidate the workflow against these standards:
| Check | Standard | Severity |
|-------|----------|----------|
| Workflow exists | argocd-automerge.yml | FAIL if missing |
| checkout action | v6 | WARN if older |
| Permissions | contents: write, pull-requests: write | FAIL if missing |
| Branch pattern | image-updater-** | WARN if different |
| Auto-merge | squash merge | INFO |
Print a status report:
ArgoCD Auto-merge Workflow Status
======================================
Workflow: .github/workflows/argocd-automerge.yml
Status:
Workflow exists [PASS|FAIL]
checkout action [version] [PASS|WARN]
Permissions [explicit|missing] [PASS|FAIL]
Branch pattern [pattern] [PASS|WARN]
Auto-merge [strategy] [PASS|INFO]
Overall: [PASS|FAIL|WARN]
If --check-only, stop here.
If --fix flag is set or user confirms, create or update .github/workflows/argocd-automerge.yml with the standard template:
name: Auto-merge ArgoCD Image Updater branches
on:
push:
branches:
- 'image-updater-**'
permissions:
contents: write
pull-requests: write
jobs:
create-and-merge:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Create Pull Request
id: create-pr
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_URL=$(gh pr create \
--base main \
--head "${{ github.ref_name }}" \
--title "chore(deps): update container image" \
--body "Automated image update by argocd-image-updater.
Branch: \`${{ github.ref_name }}\`" \
2>&1) || true
# Check if PR already exists
if echo "$PR_URL" | grep -q "already exists"; then
PR_URL=$(gh pr view "${{ github.ref_name }}" --json url -q .url)
fi
echo "pr_url=$PR_URL" >> "$GITHUB_OUTPUT"
echo "Created/found PR: $PR_URL"
- name: Approve PR
env:
GH_TOKEN: ${{ secrets.AUTO_MERGE_PAT || secrets.GITHUB_TOKEN }}
run: gh pr review --approve "${{ github.ref_name }}"
continue-on-error: true
- name: Enable auto-merge
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh pr merge --auto --squash "${{ github.ref_name }}"
GitHub prevents workflows from approving their own PRs with GITHUB_TOKEN. Options:
| Approach | Setup | Notes |
|----------|-------|-------|
| AUTO_MERGE_PAT | Create PAT with repo scope, add as secret | Recommended for full automation |
| Skip approval | Remove approve step | Requires manual approval or CODEOWNERS bypass |
| Bot account | Use separate bot user's PAT | Enterprise approach |
Ensure branch protection allows:
| Setting | Default | Alternatives |
|---------|---------|--------------|
| Base branch | main | master, develop |
| Merge strategy | --squash | --merge, --rebase |
| PR title | chore(deps): update container image | Custom format |
| Context | Command |
|---------|---------|
| Quick status check | /configure:argocd-automerge --check-only |
| Auto-create workflow | /configure:argocd-automerge --fix |
| List image-updater branches | git branch -r --list 'origin/image-updater-*' |
| Verify workflow exists | find .github/workflows -name '*argocd*automerge*' 2>/dev/null |
| Flag | Description |
|------|-------------|
| --check-only | Report status without offering fixes |
| --fix | Create/update workflow automatically |
/configure:workflows - GitHub Actions CI/CD workflows/configure:container - Container infrastructureci-workflows skill - Workflow patternstesting
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.