GitHub Repository Configuration
This document outlines the recommended GitHub repository settings to support the branching strategy.
Branch Protection Rules
Main Branch Protection
Navigate to Settings → Branches → Add rule for main
:
Branch name pattern: main
Protection settings:
✅ Require a pull request before merging
✅ Require approvals: 1
✅ Dismiss stale PR approvals when new commits are pushed
✅ Require review from code owners
✅ Require status checks to pass before merging
✅ Require branches to be up to date before merging
✅ Status checks that are required:
- build (GitHub Actions)
✅ Require conversation resolution before merging
✅ Require linear history
✅ Require deployments to succeed before merging
✅ Include administrators
✅ Restrict pushes that create files that exceed 100 MB
Develop Branch Protection
Navigate to Settings → Branches → Add rule for develop
:
Branch name pattern: develop
Protection settings:
✅ Require a pull request before merging
✅ Require approvals: 1 (optional for solo development)
✅ Require status checks to pass before merging
✅ Require branches to be up to date before merging
✅ Require conversation resolution before merging
✅ Include administrators
✅ Allow force pushes (for maintainers only)
✅ Automatically delete head branches
Repository Settings
General Settings
Repository name: portfolio
Description: Personal portfolio website with Jekyll and GitHub Pages
Website: https://colinrey.ch
Topics: portfolio, jekyll, github-pages, scss, responsive-design
Features:
✅ Wikis: Disabled
✅ Issues: Enabled
✅ Projects: Enabled
✅ Preserve this repository: Enabled
✅ Discussions: Enabled (optional)
Pull Requests:
✅ Allow merge commits: Enabled
✅ Allow squash merging: Enabled (default)
✅ Allow rebase merging: Enabled
✅ Always suggest updating PR branches: Enabled
✅ Automatically delete head branches: Enabled
GitHub Pages Settings
Source: Deploy from a branch
Branch: main
Folder: / (root)
Custom domain: colinrey.ch
✅ Enforce HTTPS: Enabled
Actions Settings
General:
✅ Allow all actions and reusable workflows
Workflow permissions:
✅ Read and write permissions
✅ Allow GitHub Actions to create and approve pull requests
Issue Labels
Custom Labels to Add
Type Labels:
- name: "bug"
color: "d73a4a"
description: "Something isn't working"
- name: "enhancement"
color: "a2eeef"
description: "New feature or request"
- name: "documentation"
color: "0075ca"
description: "Improvements or additions to documentation"
- name: "good first issue"
color: "7057ff"
description: "Good for newcomers"
- name: "help wanted"
color: "008672"
description: "Extra attention is needed"
Priority Labels:
- name: "priority: low"
color: "0e8a16"
description: "Low priority"
- name: "priority: medium"
color: "fbca04"
description: "Medium priority"
- name: "priority: high"
color: "d93f0b"
description: "High priority"
- name: "priority: critical"
color: "b60205"
description: "Critical priority"
Status Labels:
- name: "status: blocked"
color: "d93f0b"
description: "Blocked by external dependencies"
- name: "status: in progress"
color: "0052cc"
description: "Currently being worked on"
- name: "status: needs review"
color: "fbca04"
description: "Ready for review"
Collaborative Features
Code Owners
Create .github/CODEOWNERS
file:
# Global owners
* @codefuturist
# Documentation
/docs/ @codefuturist
/README.md @codefuturist
# GitHub configuration
/.github/ @codefuturist
# Styling and design
/_sass/ @codefuturist
/assets/css/ @codefuturist
# Build and deployment
/.github/workflows/ @codefuturist
/_config.yml @codefuturist
/Gemfile @codefuturist
Discussions Categories
Categories:
- General: General discussions about the portfolio
- Ideas: Share ideas for new features or improvements
- Q&A: Ask and answer questions about the codebase
- Show and tell: Share your work and get feedback
Security Settings
Security Features to Enable
Vulnerability alerts:
✅ Dependency graph: Enabled
✅ Dependabot alerts: Enabled
✅ Dependabot security updates: Enabled
Code scanning:
✅ CodeQL analysis: Enabled (GitHub Actions)
✅ Third-party tools: As needed
Secret scanning:
✅ Secret scanning: Enabled
✅ Push protection: Enabled
Automation with GitHub CLI
To apply these settings via CLI (where supported):
# Set branch protection for main
gh api repos/codefuturist/portfolio/branches/main/protection \
--method PUT \
--input protection-config.json
# Create labels
gh label create "priority: high" --color "d93f0b" --description "High priority"
# Set repository topics
gh repo edit --add-topic portfolio,jekyll,github-pages,scss
This configuration ensures a professional, secure, and collaborative development environment.