Skip to main content

Overview

Orphelix integrates with GitHub to create and manage Pull Requests (PRs) directly from the dashboard. This enables a complete GitOps workflow where infrastructure changes go through code review before being applied to your cluster. Pull Requests

What are Pull Requests?

Pull Requests (PRs) are a GitHub feature for:

Code Review

Team reviews changes before merging

Discussion

Discuss changes, suggest improvements

CI/CD Integration

Automated tests run on PR changes

Audit Trail

Track who changed what and when

Creating Pull Requests

From YAML Editor

Most common method - edit manifests and create PR:
1

Edit YAML

Use YAML Editor to modify deployment/configSee YAML Editor for details
2

Review Changes

Check diff to ensure changes are correctPR Diff
3

Add Commit Message

Write clear, descriptive message:
Update API gateway to v2.1.0

- Bumps image from v2.0.0 to v2.1.0
- Adds rate limiting configuration
- Increases memory limit to handle higher load

Closes #456
4

Select Target Branch

Choose where to merge changes:
Default production branchMost common choice
5

Create PR

Click “Create Pull Request”Orphelix:
  1. Creates feature branch
  2. Commits your changes
  3. Opens PR on GitHub
  4. Returns PR link

Multi-file Pull Requests

Create PRs affecting multiple files: Multi-file PR Use cases:
  • Update ConfigMap + Deployment (apply both changes together)
  • Kustomize base + overlay modifications
  • Coordinated changes across microservices
1

Select Multiple Files

In Repository Browser, select files with Ctrl+Click
2

Edit Each File

Make changes to all selected files
3

Review All Changes

Diff view shows all modified files
4

Single Commit

All changes in one commit, one PR

From Repository Browser

Browse and edit repository files directly:
1

Open Repo Browser

Navigate to Repository Browser page
2

Select Repository

Choose GitHub repository from dropdown
3

Browse Files

Navigate file tree to find target file
4

Edit File

Click file, then Edit button
5

Save and Create PR

Save changes → Auto-creates PR

PR Templates

Orphelix generates structured PR descriptions:

Default Template

## 📦 Changes

Updated Kubernetes resources in namespace: `production`

### Modified Files
- `k8s/deployments/api-gateway.yaml`
- `k8s/configmaps/api-config.yaml`

### Changes Made

**Deployment: api-gateway**
- Updated image from `api:v2.0.0` to `api:v2.1.0`
- Increased memory limit from `512Mi` to `1Gi`
- Added CPU limit: `1000m`

**ConfigMap: api-config**
- Added `RATE_LIMIT_ENABLED=true`
- Updated `MAX_CONNECTIONS=1000`

### Testing Checklist
- [ ] Deploy to staging environment
- [ ] Verify application starts successfully
- [ ] Run integration tests
- [ ] Check resource utilization
- [ ] Validate rate limiting works
- [ ] Monitor error rates

### Rollback Plan
If issues occur:
1. Revert this PR
2. Scale down to 2 replicas
3. Investigate logs in staging

### Related Issues
Closes #456

---
🤖 Generated with [Orphelix](https://github.com/corapoid/orphelix)

Custom Templates

Configure custom PR templates in your repository:
  1. Create .github/pull_request_template.md
  2. Orphelix uses it automatically
  3. Override with custom message if needed

Managing Pull Requests

Viewing PRs

See all PRs created through Orphelix: PR List PR Information:
  • Title: PR description
  • Status: Open, Merged, Closed
  • Author: Who created PR
  • Created: When PR was opened
  • Labels: GitHub labels
  • Reviews: Review status
  • Checks: CI/CD status

PR Status Indicators

Color: BlueMeaning: PR awaiting review/mergeActions:
  • Review changes
  • Request reviews
  • Merge when ready
Color: PurpleMeaning: PR successfully mergedTimeline:
  • Changes now in target branch
  • ArgoCD/Flux will sync
  • Changes apply to cluster
Color: RedMeaning: PR closed without mergingReasons:
  • Changes no longer needed
  • Superseded by another PR
  • Incorrect approach
Color: OrangeMeaning: Merge conflicts existAction required:
  • Resolve conflicts on GitHub
  • Update branch from base
  • Push resolution

Review Status

PRs show review state:
Icon:No reviews yetActions:
  • Request reviews from team
  • Self-review if allowed

CI/CD Checks

View automated check status: PR Checks Common Checks:
Validates YAML syntaxPass: ✅ Valid YAML Fail: ❌ Syntax errors
Checks against policies (OPA, Kyverno)Pass: ✅ Complies with policies Fail: ❌ Policy violations
Runs automated testsPass: ✅ Tests passed Fail: ❌ Tests failed
Scans for vulnerabilitiesPass: ✅ No vulnerabilities Fail: ❌ Security issues found

PR Actions

Merging

Merge PR to apply changes:
1

Ensure Approved

Required reviews completed
2

Check Status Checks

All CI/CD checks passed
3

Click Merge

In GitHub or Orphelix PR view
4

Select Merge Method

Creates merge commit (default)Preserves full history
5

Confirm Merge

Changes merged to target branchGitOps operator (ArgoCD/Flux) syncs changes

Closing without Merging

Close PR if changes not needed:
1

Add Comment

Explain why closing:
Closing this PR as we decided to handle this in #789 instead
2

Click Close

PR closed but not deleted
3

Optional: Delete Branch

Clean up feature branch

Updating PRs

Update PR with new commits:
  1. Re-open YAML editor
  2. Make additional changes
  3. Save → Commits to same branch
  4. PR automatically updates

GitOps Workflow

Complete deployment flow with PRs:

Integration with GitOps Tools

Auto-sync on PR merge:
  1. PR merged to main
  2. ArgoCD detects change
  3. Compares with cluster state
  4. Syncs new manifests
  5. Updates deployment
ArgoCD App config:
apiVersion: argoproj.io/v1alpha1
kind: Application
spec:
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Best Practices

Configure branch protection:
Settings → Branches → Branch Protection Rules
✓ Require pull request reviews before merging
✓ Require review from Code Owners
Number of required approvals: 2
Automate validation:
# .github/workflows/validate.yml
name: Validate
on: pull_request
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: YAML Lint
      run: yamllint k8s/
Follow conventional commits:
feat: Add rate limiting to API gateway
fix: Correct memory limit causing OOMKills
chore: Update nginx image to 1.21.6
docs: Update deployment README
Deploy to staging before production:
  1. Create PR to staging branch
  2. Merge and test
  3. Create PR from staging to main
  4. Merge to production
Keep PRs focused:✅ One logical change per PR ❌ Multiple unrelated changesEasier to review and safer to merge

Troubleshooting

PR Creation Failed

Symptom: “Failed to create PR” Check:
  1. Permissions
    • Orphelix App has write access?
    • Repository not archived?
  2. Branch Conflicts
    • Branch already exists?
    • Try different branch name
  3. GitHub API Limits
    • Rate limit exceeded?
    • Wait 1 hour and retry

Merge Conflicts

Symptom: PR shows conflicts Resolution:
1

View Conflicts

Click “Resolve conflicts” on GitHub
2

Choose Resolution

Keep base branch version
3

Mark Resolved

Click “Mark as resolved”
4

Commit Resolution

Commit merge resolution

CI Checks Failing

Symptom: PR blocked by failed checks Solutions:
  1. Review Check Logs
    • Click “Details” next to failed check
    • Read error messages
    • Fix issues
  2. Common Failures
    • YAML Lint: Fix syntax errors
    • Policy: Adjust to meet policies
    • Tests: Fix broken tests
    • Security: Update vulnerable images
  3. Re-run Checks
    • Push new commit
    • Or click “Re-run checks”

Next Steps