Enforcement Rules
Enforcement Rules
Overview
Automated policy enforcement rules that validate and block non-compliant changes.
Policy Enforcement Rules
Rule 1: Branch Naming
- Pattern:
{type}/{issue#}-{slug} - Validation: Enforced in
.prestage - Action: Block pipeline if invalid
Rule 2: Commit Message
- Format: Conventional commits
- Validation: Enforced on push
- Action: Warn (non-blocking)
Rule 3: MR Target
- Requirement: Feature → release/*, Release → main
- Validation: Enforced in
validatestage - Action: Block MR merge if invalid
Rule 4: Issue Linkage
- Requirement: MR must link to issue
- Validation: Enforced in
validatestage - Action: Block MR merge if missing
Rule 5: Milestone Assignment
- Requirement: MR must have milestone
- Validation: Enforced in
validatestage - Action: Block MR merge if missing
Bot-Specific Rules
bot-ossa-validator
- Validates OSSA manifests
- Blocks MR if non-compliant
- Provides fix suggestions
bot-policy-enforcer
- Enforces all policies
- Blocks MR on violations
- Provides remediation steps
bot-security-scanner
- Scans for security issues
- Blocks MR on critical vulnerabilities
- Provides security recommendations
Enforcement Levels
Strict
- All rules enforced
- Blocking on violations
- No overrides allowed
Moderate (Default)
- Critical rules enforced
- Warnings for minor violations
- Override with approval
Permissive
- Warnings only
- No blocking
- For development branches
Implementation
CI/CD Integration
validate:policy: stage: validate script: - ossa validate-policy
Pre-commit Hooks
#!/bin/bash ossa validate-branch-name ossa validate-commit-message
GitLab Protected Branches
- Enforce via GitLab UI
- Require approvals
- Block force pushes
- Require pipeline success
Last Updated: 2025-01-XX Version: 0.3.2