Skip to content
Marco edited this page Feb 3, 2026 · 3 revisions

Manage your GitHub organization's repositories as code using Terraform and YAML configuration.

Quick Navigation

Features

  • YAML-based configuration - Human-readable repository definitions
  • Configuration groups - Share settings across multiple repositories (DRY)
  • Repository rulesets - Enforce branch protection and policies
  • GitHub Actions permissions - Control which actions can run and workflow permissions
  • Webhook management - Configure CI/CD and notification webhooks as code
  • Subscription-aware - Gracefully handles GitHub Free tier limitations
  • Onboarding script - Easily import existing repositories

How It Works

                                    ┌─────────────────────┐
                                    │       GitHub        │
                                    │                     │
┌─────────────────┐                 │  ┌──────────────┐   │
│ repositories.yml│                 │  │ tf-modules   │   │
│                 │                 │  └──────────────┘   │
│ - tf-modules    │    Terraform    │  ┌──────────────┐   │
│ - api-gateway   │ ──────────────> │  │ api-gateway  │   │
│ - docs-site     │                 │  └──────────────┘   │
│                 │                 │  ┌──────────────┐   │
└─────────────────┘                 │  │ docs-site    │   │
                                    │  └──────────────┘   │
                                    └─────────────────────┘

Requirements

  • Terraform >= 1.0
  • GitHub Personal Access Token with repo and admin:org scopes

Quick Commands

make init      # Initialize Terraform
make plan      # Preview changes
make apply     # Apply changes
make validate  # Validate configuration

GitHub Subscription Tiers

Feature Free Pro Team Enterprise
Public repo rulesets Yes Yes Yes Yes
Private repo rulesets No Yes Yes Yes
Push rulesets No No Yes Yes
Actions permissions Yes Yes Yes Yes

The template automatically skips unsupported features based on your subscription tier.

Clone this wiki locally