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
nameTEXTUnique name within the installation
descriptionTEXTHuman-readable description
repo_filterTEXTGlob pattern for repo matching
branch_patternTEXTBranch name pattern (e.g. main, release/*)
min_reviewsINTRequired approving review count
require_signed_commitsBOOLEANRequire GPG-signed commits
require_linear_historyBOOLEANPrevent merge commits
block_force_pushesBOOLEANPrevent force pushes
block_deletionsBOOLEANPrevent branch deletion
enforce_adminsBOOLEANApply rules to repository admins
require_status_checksBOOLEANRequire passing status checks
required_status_check_contextsTEXT[]Specific status check names
modeTEXTenforce or audit
enabledBOOLEANEnable/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.