GitHub PR Guidelines

Branch protection rules, PR title format, automated merges, and code owner review for CrelioHealth GitHub repositories.

PR Review Guidelines — CrelioHealth

Branch Protection Rules

All repositories follow the standard-web ruleset preset. Direct pushes to protected branches are blocked — all changes go through pull requests.

develop

  • 2 approvals required
  • Stale reviews dismissed on new push
  • All review threads must be resolved
  • Code owner approval required (CODEOWNERS file)
  • PR title must follow conventional commits (web & ai repos)
  • No force push, no deletion

hotfix

  • 2 approvals required
  • Stale reviews dismissed on new push
  • All review threads must be resolved
  • Code owner approval required
  • PR title must follow conventional commits (web & ai repos)
  • No force push, no deletion

main

  • 2 approvals required
  • Stale reviews dismissed on new push
  • All review threads must be resolved
  • Code owner approval required
  • PR title must follow conventional commits (web & ai repos)
  • No force push, no deletion

production / prod-* / moh-production

  • No direct push allowed — fully locked
  • No deletion, no force push, no updates
  • Changes reach production only through branch merges (hotfix → main → production)

develop-moh / develop-nrl (MOH/NRL staging)

  • 1 approval required
  • Stale reviews dismissed on new push
  • All review threads must be resolved
  • Code owner approval required
  • No force push, no deletion

PR Title Format (Conventional Commits)

All PRs to web and ai repos must have titles following the conventional commits format. This is enforced by the Validate PR Title status check.

Format

<type>(<scope>): <description>

Allowed types

feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert

Examples

feat(billing): add invoice PDF export
fix(auth): handle expired session redirect
chore: update dependencies
refactor(api): simplify error handling middleware
docs(readme): add deployment instructions

Rules

  • Type is required, scope is optional
  • Description must be lowercase and not end with a period
  • Breaking changes: add ! after type/scope — feat(api)!: change response format

Automated Merges

Two GitHub Actions workflows handle branch synchronization automatically using the CrelioHealth Bot GitHub App:

hotfix → develop

When a PR is merged to hotfix, the workflow auto-merges hotfix into develop. If there's a conflict, it aborts and sends a Slack notification.

main → hotfix & develop

When a PR is merged to main, the workflow auto-merges main into both hotfix and develop. Conflicts trigger Slack notifications per branch.

These workflows skip manual intervention for routine merges. If a conflict is reported on Slack, a developer must resolve it manually.


Code Owner Review

Every repo has a .github/CODEOWNERS file. When require_code_owner_review is enabled in rulesets, at least one code owner must approve the PR before merge.

Code owners are assigned by repo category:

CategoryOwners
web / pacs / interfacing / landingengineering-leads
qaqa-devs
infradevops
androidandroid-leads
iosios-leads
aiai-leads
docsdocs-maintainers

Some repos have additional reviewers (e.g. backend-reviewers for crelio-app, livehealthapp, fusion, fusion_worker; frontend-reviewers for livehealth-frontend).


Review Checklist

Before approving a PR, reviewers should verify:

  1. Code compiles and passes existing tests
  2. No unresolved review threads
  3. PR title follows conventional commit format
  4. No secrets, credentials, or PII in the diff
  5. Changes are scoped — one concern per PR
  6. Breaking changes are clearly documented in the PR description

On this page