configure-argocd-automerge

v2026.09.24

argocd-automerge.yml: auto-create and merge PRs from ArgoCD Image Updater's image-updater-** branches. Use when setting up that workflow or checking its PAT permissions.

GitHub
Install command
npx skhub add laurigates/configure-argocd-automerge
Markdown
SKILL.md

/configure:argocd-automerge

Configure GitHub Actions workflow to automatically create and merge PRs from ArgoCD Image Updater branches.

When to Use This Skill

Use this skill when...Use another approach when...
Setting up auto-merge for ArgoCD Image Updater branchesConfiguring ArgoCD application definitions
Checking if image-updater-** branches have auto-mergeManaging general GitHub Actions workflows (/configure:workflows)
Creating the argocd-automerge.yml workflow from scratchSetting up container builds (/configure:container)
Verifying PAT and permissions for auto-merge workflowsConfiguring branch protection rules manually
Updating an existing ArgoCD auto-merge workflowConfiguring Kubernetes deployments (/configure:skaffold)

Context

  • Workflows dir: !find . -maxdepth 1 -type d -name \'.github/workflows\'
  • Existing automerge workflow: !find . -path '*/.github/workflows/*' -maxdepth 3 \( -name '*argocd*automerge*' -o -name '*automerge*argocd*' \)
  • Image updater branches: !git branch -r --list 'origin/image-updater-*'
  • Auto-merge workflow: !find . -path '*/.github/workflows/*' -maxdepth 3 -name 'argocd-automerge.yml'

Parameters

Parse from command arguments:

  • --check-only: Report status without offering fixes
  • --fix: Create or update workflow automatically

Execution

Execute this ArgoCD auto-merge workflow configuration:

Step 1: Detect existing workflow

  1. Check for .github/workflows/ directory
  2. Search for existing ArgoCD auto-merge workflow files
  3. Check for image-updater-** branch pattern handling in any workflow

Step 2: Check compliance

Validate the workflow against these standards:

CheckStandardSeverity
Workflow existsargocd-automerge.ymlFAIL if missing
checkout actionv6WARN if older
Permissionscontents: write, pull-requests: writeFAIL if missing
Branch patternimage-updater-**WARN if different
Auto-mergesquash mergeINFO

Step 3: Report results

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.

Step 4: Configure workflow (if requested)

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 }}"

Configuration Notes

Self-Approval

GitHub prevents workflows from approving their own PRs with GITHUB_TOKEN. Options:

ApproachSetupNotes
AUTO_MERGE_PATCreate PAT with repo scope, add as secretRecommended for full automation
Skip approvalRemove approve stepRequires manual approval or CODEOWNERS bypass
Bot accountUse separate bot user's PATEnterprise approach

Branch Protection

Ensure branch protection allows:

  • Auto-merge when checks pass
  • Bypass for the workflow (if using CODEOWNERS)

Customization

SettingDefaultAlternatives
Base branchmainmaster, develop
Merge strategy--squash--merge, --rebase
PR titlechore(deps): update container imageCustom format

Agentic Optimizations

ContextCommand
Quick status check/configure:argocd-automerge --check-only
Auto-create workflow/configure:argocd-automerge --fix
List image-updater branchesgit branch -r --list 'origin/image-updater-*'
Verify workflow existsfind .github/workflows -name '*argocd*automerge*' 2>/dev/null

Flags

FlagDescription
--check-onlyReport status without offering fixes
--fixCreate/update workflow automatically

See Also

  • /configure:workflows - GitHub Actions CI/CD workflows
  • /configure:container - Container infrastructure
  • ci-workflows skill - Workflow patterns
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

configure-plugin/skills/configure-argocd-automerge

Default branch

main

Latest commit

1668324

Tree SHA

b2d4cc3