mcpField
C
configure-argocd-automerge

configure-argocd-automerge

github.com/laurigatesクラウド・DevOps5953 回インストール1 日前に更新
リポジトリ

configure-argocd-automerge について

configure-argocd-automerge は、ArgoCD Image Updater のブランチから作成された PR の自動マージを設定するスキルです。GitHub Actions ワークフローを管理するチーム向けに、既存設定の確認や作成・更新を行います。

主な機能

  1. 01ArgoCD 自動マージワークフローの確認
  2. 02権限とブランチパターンの検証
  3. 03GitHub Actions ワークフローの作成・更新
  4. 04チェックのみのモード
  5. 05PAT とブランチ保護要件の説明

活用シーン

  1. 01Image Updater ブランチの自動マージ設定
  2. 02既存の自動マージワークフローの確認
  3. 03必要な権限を検証しながらワークフローを更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laurigates/claude-plugins --skill configure-argocd-automerge

インストール後、Claude Code で/configure-argocd-automergeを入力して読み込まれたか確認します。

詳細

/configure:argocd-automerge

ArgoCD Image Updater のブランチから PR を自動的に作成し、マージするよう GitHub Actions ワークフローを設定します。

このスキルを使用するタイミング

次の場合にこのスキルを使用します...次の場合は別の方法を使用します...
ArgoCD Image Updater のブランチで自動マージを設定するArgoCD アプリケーション定義を設定する
image-updater-** ブランチで自動マージが有効になっているか確認する一般的な GitHub Actions ワークフローを管理する(/configure:workflows)
argocd-automerge.yml ワークフローをゼロから作成するコンテナビルドを設定する(/configure:container)
自動マージワークフローの PAT と権限を確認するブランチ保護ルールを手動で設定する
既存の ArgoCD 自動マージワークフローを更新するKubernetes デプロイを設定する(/configure:skaffold)

コンテキスト

  • ワークフローディレクトリ: !find . -maxdepth 1 -type d -name \'.github/workflows\'
  • 既存の自動マージワークフロー: !find . -path '*/.github/workflows/*' -maxdepth 3 \( -name '*argocd*automerge*' -o -name '*automerge*argocd*' \)
  • Image Updater のブランチ: !git branch -r --list 'origin/image-updater-*'
  • 自動マージワークフロー: !find . -path '*/.github/workflows/*' -maxdepth 3 -name 'argocd-automerge.yml'

パラメーター

コマンド引数から解析します:

  • --check-only:修正を提案せずにステータスを報告します
  • --fix:ワークフローを自動的に作成または更新します

実行

この ArgoCD 自動マージワークフローの設定を実行します:

ステップ 1:既存のワークフローを検出する
  1. .github/workflows/ ディレクトリがあるか確認します
  2. 既存の ArgoCD 自動マージワークフローファイルを検索します
  3. いずれかのワークフローで image-updater-** ブランチパターンが処理されているか確認します
ステップ 2:準拠状況を確認する

以下の基準に照らしてワークフローを検証します:

確認項目基準重大度
ワークフローの存在argocd-automerge.yml欠落している場合は FAIL
checkout アクションv6古い場合は WARN
権限contents: write, pull-requests: write欠落している場合は FAIL
ブランチパターンimage-updater-**異なる場合は WARN
自動マージsquash マージINFO
ステップ 3:結果を報告する

ステータスレポートを出力します:

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]

--check-only が指定されている場合は、ここで停止します。

ステップ 4:ワークフローを設定する(要求された場合)

--fix フラグが設定されている場合、またはユーザーが確認した場合は、標準テンプレートを使用して .github/workflows/argocd-automerge.yml を作成または更新します:

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 は GITHUB_TOKEN を使ったワークフローによる自身の PR の承認を禁止しています。選択肢は次のとおりです:

方法設定備考
AUTO_MERGE_PATrepo スコープの PAT を作成し、シークレットとして追加します完全自動化におすすめ
承認を省略承認ステップを削除します手動承認または CODEOWNERS のバイパスが必要です
ボットアカウント別のボットユーザーの PAT を使用しますエンタープライズ向けの方法
ブランチ保護

ブランチ保護で次の項目が許可されていることを確認してください:

  • チェックが成功した場合の自動マージ
  • ワークフローによるバイパス(CODEOWNERS を使用する場合)
カスタマイズ
設定デフォルト代替
ベースブランチmainmaster、develop
マージ方式--squash--merge、--rebase
PR タイトルchore(deps): update container imageカスタム形式

エージェント向けの最適化

コンテキストコマンド
ステータスをすばやく確認/configure:argocd-automerge --check-only
ワークフローを自動作成/configure:argocd-automerge --fix
Image Updater のブランチを一覧表示git branch -r --list 'origin/image-updater-*'
ワークフローの存在を確認find .github/workflows -name '*argocd*automerge*' 2>/dev/null

フラグ

フラグ説明
--check-only修正を提案せずにステータスを報告します
--fixワークフローを自動的に作成または更新します

関連項目

  • /configure:workflows - GitHub Actions CI/CD ワークフロー
  • /configure:container - コンテナインフラストラクチャ
  • ci-workflows スキル - ワークフローパターン

コメント