-
Notifications
You must be signed in to change notification settings - Fork 0
Examples
Marco edited this page Feb 3, 2026
·
2 revisions
Common configuration patterns for different use cases.
config/
├── config.yml # Organization settings (single file)
├── repository/ # Repository definitions
│ ├── default-repositories.yml # Default/example repositories
│ ├── frontend.yml # Frontend team repositories
│ └── backend.yml # Backend team repositories
├── group/ # Configuration groups
│ ├── default-groups.yml # Default groups (base, oss, internal)
│ └── custom-groups.yml # Custom organization groups
└── ruleset/ # Ruleset definitions
├── default-rulesets.yml # Default rulesets
└── custom-rulesets.yml # Custom rulesets
# config/group/microservice.yml
microservice:
visibility: private
has_issues: true
delete_branch_on_merge: true
topics:
- microservice# config/repository/services.yml
user-service:
groups: [microservice]
description: "User management service"
topics:
- users
- auth
order-service:
groups: [microservice]
description: "Order processing service"
topics:
- orders
- paymentsrepositories:
my-oss-project:
description: "An awesome open source project"
visibility: public
has_issues: true
has_wiki: true
has_discussions: true
topics:
- opensource
- community
rulesets:
protect-main:
target: branch
enforcement: active
conditions:
ref_name:
include: ["refs/heads/main"]
rules:
pull_request:
required_approving_review_count: 2
dismiss_stale_reviews_on_push: truerepositories:
platform:
description: "Platform monorepo"
visibility: private
teams:
platform-core: admin
frontend: push
backend: push
devops: maintain
rulesets:
protect-main:
target: branch
enforcement: active
conditions:
ref_name:
include: ["refs/heads/main"]
rules:
pull_request:
required_approving_review_count: 1
required_status_checks:
required_checks:
- context: "build"
- context: "test"repositories:
internal-sdk:
description: "Internal SDK for all services"
visibility: private
has_issues: true
delete_branch_on_merge: true
allow_merge_commit: false
allow_rebase_merge: false
allow_squash_merge: true
teams:
sdk-maintainers: admin
developers: pull
rulesets:
protect-main:
target: branch
enforcement: active
conditions:
ref_name:
include: ["refs/heads/main"]
rules:
pull_request:
required_approving_review_count: 2
dismiss_stale_reviews_on_push: true
require_code_owner_review: true
required_status_checks:
strict_required_status_checks_policy: true
required_checks:
- context: "test"
- context: "lint"
- context: "security-scan"repositories:
docs:
description: "Company documentation"
visibility: private
has_issues: true
has_wiki: false
has_discussions: true
homepage_url: "https://docs.example.com"
topics:
- documentation
- internal
teams:
everyone: push
tech-writers: maintainUsing the built-in groups:
# config/repository/awesome-library.yml
awesome-library:
description: "An awesome open source library"
groups: ["base", "oss"]
license_template: mit
topics:
- library
- awesome# config/repository/internal-tool.yml
internal-tool:
description: "Internal automation tool"
groups: ["base", "internal"]
has_wiki: false # Override: disable wiki
has_discussions: true # Override: enable discussions
teams:
platform: admin # Additional team# config/repository/critical-service.yml
critical-service:
description: "Critical production service"
groups: ["base", "internal"]
rulesets:
- internal-main-protection
- release-branch-protection
- tag-protection# config/repository/my-app.yml
my-app:
description: "My Application"
groups: ["base"]
rulesets:
- template: strict-main # Use template as-is
- template: relaxed-devel # Use another template# config/repository/api-service.yml
api-service:
description: "API service with CI/CD integration"
groups: ["base", "internal"]
webhooks:
- jenkins-ci # Reference webhook from config/webhook/
- slack-notify
- name: custom-hook # Inline webhook definition
url: https://custom.example.com/hook
events: [release]Getting Started
Reference
Advanced