Skip to content

uranch protection quickref

Quick guide for developers working with protected branches.

  • Push directly to main branch
  • Force push to any protected branch
  • Delete protected branches or tags
  • Bypass CI checks
  • Merge without required reviews
  1. Create a feature branch from main:

    Terminal window
    git checkout main
    git pull origin main
    git checkout -b feature/your-feature-name
  2. Make your changes and commit:

    Terminal window
    git add .
    git commit -s -m "feat: your descriptive message"

    Note: -s flag signs your commit (required!)

  3. Push to your fork:

    Terminal window
    git push origin feature/your-feature-name
  4. Open a Pull Request on GitHub

Before your PR can be merged:

  • All CI checks pass (test, lint, build, coverage)
  • At least 1 approving review from a maintainer
  • All review comments are resolved
  • Commits are signed (DCO)
  • Branch is up-to-date with main

Your PR must pass these automated checks:

CheckDescriptionFix If Failing
testUnit testsRun make test locally
lintCode lintingRun make lint locally
buildBuild verificationRun make build locally
coverageCoverage + SonarCloudCheck test coverage
  1. Wait for CI - All checks must pass
  2. Request review - Tag appropriate reviewers (see CODEOWNERS)
  3. Address feedback - Respond to all review comments
  4. Resolve conflicts - Keep branch up-to-date with main
  5. Get approval - At least 1 approval required
  6. Merge - Squash merge (recommended) or rebase

Your commits need a DCO sign-off:

Terminal window
# Sign existing commits
git rebase --exec 'git commit --amend --no-edit -n -s' -i origin/main
# Force push to your branch
git push --force-with-lease

Update your branch with latest main:

Terminal window
git checkout main
git pull origin main
git checkout your-branch
git rebase main
git push --force-with-lease

Run tests locally before pushing:

Terminal window
# Run all checks
make test
make lint
make build
# Fix linting issues automatically
make fmt

Some files require review from specific teams (see .github/CODEOWNERS):

  • Runtime changes → Runtime team
  • SDK changes → SDK team
  • CI/CD changes → DevOps team
  • Documentation → Docs team

The appropriate reviewers will be automatically assigned.

All review comments must be marked as resolved:

  1. Address the comment (make changes or respond)
  2. Click “Resolve conversation” button
  3. Wait for reviewer to confirm

Version tags are protected and immutable:

  • Created automatically by release workflow
  • Cannot be deleted once created
  • Cannot be moved to different commit
  • Pattern: v*, runtime/v*, sdk/v*, etc.

For critical production issues:

  1. Contact a repository admin
  2. Admin can temporarily adjust protections
  3. Emergency fix must be documented
  4. Post-incident review required
  5. Retroactive PR created
  • Smaller PRs are reviewed faster
  • Clear descriptions help reviewers understand context
  • Passing CI locally before pushing saves time
  • Signing commits upfront avoids rework
  • Descriptive commit messages help with changelog generation