Agent Skills by ALSEL
汎用DevOps・インフラ⭐ リポ 0品質スコア 65/100

setup-repo

GitHubリポジトリに標準的なブランチモデル、保護ルール、設定を適用します。developブランチを作成し、デフォルトブランチとして設定し、developとmainの両方を保護し、タグ保護を追加します。

description の原文を見る

Apply standard branch model, protection rules, and settings to a GitHub repository. Creates develop branch, sets it as default, protects develop and main, and adds tag protection.

SKILL.md 本文

GitHub リポジトリを標準ブランチモデルと保護ルールで構成します: $ARGUMENTS

リクエストを解析する

ユーザーのメッセージから以下を抽出します:

  • repo: 構成するリポジトリを owner/repo 形式で指定します。名前だけが指定されている場合は amcheste/<name> と見なします。指定されていない場合は、現在の git リモートを使用します: gh repo view --json nameWithOwner -q .nameWithOwner

プリフライトチェック

  1. リポジトリが存在することを確認します: gh repo view <owner/repo>
  2. 実行予定の内容をユーザーに表示し、変更を加える前に確認を取ります

ステップ 1 — develop ブランチが存在することを確認

# develop が既に存在するかチェック
gh api repos/<owner/repo>/branches/develop 2>/dev/null && echo "exists" || echo "missing"

存在しない場合:

# main ブランチの HEAD SHA を取得
MAIN_SHA=$(gh api repos/<owner/repo>/branches/main --jq '.commit.sha')

# develop を main と同じコミット位置で作成
gh api repos/<owner/repo>/git/refs \
  --method POST \
  --field ref="refs/heads/develop" \
  --field sha="$MAIN_SHA"

ステップ 2 — develop をデフォルトブランチに設定

gh api repos/<owner/repo> \
  --method PATCH \
  --field default_branch=develop \
  --jq '.default_branch'

ステップ 3 — develop を保護

マージ前に PR とステータスチェックを必須にします。リポジトリに .github/workflows/validate.yml が存在するかを確認して、どのチェックを必須にするかを判断します:

gh api repos/<owner/repo>/contents/.github/workflows/validate.yml 2>/dev/null && echo "exists"

validate.yml が存在する場合、ユーザーに必須とするステータスチェック名を尋ねます(デフォルト: LintCommit Lint)。存在しない場合は、必須チェックなしで保護を適用します。PR だけを必須にします。

gh api repos/<owner/repo>/branches/develop/protection \
  --method PUT \
  --input - <<'EOF'
{
  "required_status_checks": {
    "strict": true,
    "checks": [/* 上記から入力 */]
  },
  "enforce_admins": false,
  "required_pull_request_reviews": {
    "required_approving_review_count": 0,
    "dismiss_stale_reviews": false
  },
  "restrictions": null,
  "allow_force_pushes": false,
  "allow_deletions": false
}
EOF

ステップ 4 — main を保護

マージ前に PR を必須にします。直接プッシュはできません。ここでは Commit Lint チェックは不要です(develop→main リリース PR は chore: コミットで有効ですが、main で必須チェックとして設定するのは冗長です)。

gh api repos/<owner/repo>/branches/main/protection \
  --method PUT \
  --input - <<'EOF'
{
  "required_status_checks": {
    "strict": true,
    "checks": [/* develop と同じ (Commit Lint を除く) */]
  },
  "enforce_admins": false,
  "required_pull_request_reviews": {
    "required_approving_review_count": 0,
    "dismiss_stale_reviews": false
  },
  "restrictions": null,
  "allow_force_pushes": false,
  "allow_deletions": false
}
EOF

ステップ 5 — タグ保護ルールセット

v* タグの誤った作成、削除、強制移動を防止します:

gh api repos/<owner/repo>/rulesets \
  --method POST \
  --input - <<'EOF'
{
  "name": "Protect release tags",
  "target": "tag",
  "enforcement": "active",
  "conditions": {
    "ref_name": {
      "include": ["refs/tags/v*"],
      "exclude": []
    }
  },
  "rules": [
    {"type": "deletion"},
    {"type": "non_fast_forward"},
    {"type": "creation"}
  ]
}
EOF

サマリー

構成された内容をレポートします:

✓ develop ブランチを作成しました (または既に存在していました)
✓ develop をデフォルトブランチに設定しました
✓ develop を保護しました — PR + [チェック] を必須
✓ main を保護しました — PR + [チェック] を必須
✓ タグルールセットがアクティブ — v* タグを保護中

次のステップ:
- repo-template を使用している場合: .github/ ファイルをこのリポジトリにコピーします
- プロジェクト固有の lint/test ステップを .github/workflows/validate.yml に追加します
- 必須ステータスチェック名をワークフロージョブ名に合わせて更新します

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
amcheste
リポジトリ
amcheste/mac-dev-setup
ライセンス
MIT
最終更新
2026/5/12

Source: https://github.com/amcheste/mac-dev-setup / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: amcheste · amcheste/mac-dev-setup · ライセンス: MIT