Skip to content

Policies ​

Create and manage branch enforcement policies.

Create a Policy ​

bash
curl -X POST https://gitwire.yourdomain.com/api/enforcement/policies \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "protect-main",
    "description": "Enforce protection on main branch",
    "branch_pattern": "main",
    "min_reviews": 1,
    "require_status_checks": true,
    "required_status_check_contexts": ["ci/test", "ci/lint"],
    "enforce_admins": true,
    "block_force_pushes": true,
    "mode": "enforce",
    "enabled": true
  }'

List Policies ​

bash
curl https://gitwire.yourdomain.com/api/enforcement/policies \
  -H "Authorization: Bearer YOUR_API_KEY"

Update a Policy ​

bash
curl -X PUT https://gitwire.yourdomain.com/api/enforcement/policies/1 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"min_reviews": 2, "enforce_admins": true}'

Delete a Policy ​

bash
curl -X DELETE https://gitwire.yourdomain.com/api/enforcement/policies/1 \
  -H "Authorization: Bearer YOUR_API_KEY"

Policy Fields Reference ​

FieldTypeRequiredDescription
nameTEXT✅Unique name within the installation
descriptionTEXT—Human-readable description
repo_filterTEXT—Glob pattern for repo matching
branch_patternTEXT✅Branch name pattern (e.g. main, release/*)
min_reviewsINT—Required approving review count
require_signed_commitsBOOLEAN—Require GPG-signed commits
require_linear_historyBOOLEAN—Prevent merge commits
block_force_pushesBOOLEAN—Prevent force pushes
block_deletionsBOOLEAN—Prevent branch deletion
enforce_adminsBOOLEAN—Apply rules to repository admins
require_status_checksBOOLEAN—Require passing status checks
required_status_check_contextsTEXT[]—Specific status check names
modeTEXT✅enforce or audit
enabledBOOLEAN—Enable/disable the policy

GitHub Free Tier

Branch protection on private repos requires GitHub Pro/Team. On free-tier repos, the reconciler gracefully skips enforcement.

→ Violations

Released under the MIT License.