Bootstrap new GitHub repositories with best practices, SOLID principles, and language-agnostic templates.
Creates fully configured repositories with:
- Team-based code ownership
- Branch protection rules
- Dependabot configuration
- Development and production environments
- Documentation templates
- Editor and Git configurations
- Super-Linter workflow with autofix for PRs
- Makefile for local linting with Docker
- Use this template or fork this repository
- Go to Actions → Create Bootstrap Repository
- Click Run workflow
- Enter repository name (required)
- Configure optional settings
- Run
Your new repository is created with all templates and settings.
| Input | Required | Default | Description |
|---|---|---|---|
repository_name |
Yes | - | New repository name |
repository_owner |
No | Current user | Repository owner (user/org) |
repository_description |
No | Autogenerated | Repository description |
visibility |
No | public |
Repository visibility (private/public) |
enable_branch_protection |
No | true |
Enable branch protection rules |
team_name |
No | team-leads |
GitHub team for code owners |
license_holder |
No | Current user | License copyright holder |
primary_language |
No | multi-language |
Primary programming language for super-linter |
Editor configurations, Git settings, and ignore patterns that work across all languages and tools.
Code ownership rules, automated dependency updates, and branch protection settings requiring 2 approvals and code owner reviews.
Project readme and AI assistant instructions (Agent, Claude, Copilot) following SOLID, TDD, and DDD principles.
- GitHub Actions workflow - Autoformats code on pull requests and commits fixes back to the PR branch
- Language-agnostic linting - Always validates Markdown, YAML, JSON, XML, and EditorConfig
- Programming language support - Configurable via dropdown menu (JavaScript, TypeScript, Python, Java, Go, Rust, Ruby, PHP, C#, C++, or multi-language)
- Local linting - Makefile with
make lintandmake lint-fixcommands using Docker - .super-linter.env - Configuration file to enable/disable specific language linters
- Squash merge only
- Delete branches after merge
- Auto-merge enabled
- Dev environment (no wait, no review)
- Prod environment (30s wait, reviews required)
All templates follow:
- SOLID principles - Maintainable architecture
- Test-Driven Development - Everything testable
- Domain-Driven Design - Clear business logic
- Language-agnostic - Works with any programming language
- Type safety - Strict typing enforced
- Code formatting - 4 spaces (code), 2 spaces (config)
- No trailing whitespace - Clean code standards
All templates are in the templates/ directory. Modify them to match your team's needs:
- Update team names and ownership rules
- Adjust branch protection requirements
- Add or remove documentation templates
- Configure additional dependabot ecosystems
- Change merge strategies
- Modify environment settings
- Customize super-linter configuration in
.super-linter.env - Adjust language-specific linter rules
The workflow:
- Creates new repository via GitHub API
- Copies all template files from
templates/directory - Updates placeholders (team names, year, copyright holder)
- Configures super-linter based on selected programming language
- Configures repository settings
- Sets up environments and branch protection
- Commits everything to the new repository
- GitHub personal access token with repository permissions
- Team names must exist in your organization
- Docker installed for local linting with
make lint(optional)
MIT