Skip to main content
Checklist • 41 items

GitHub Setup Checklist for Engineering Teams (2026)

Setting up GitHub correctly from the start saves you from painful permission issues, accidental force pushes to main, and broken CI pipelines later. This checklist covers everything an engineering team needs: organization structure, team permissions, branch protection, CODEOWNERS, GitHub Actions, security features, and reporting setup. Follow it top to bottom when onboarding a new team or auditing an existing setup.

2-minute setup • No credit card required

0 of 41 completed
0%

Organization Setup

The organization is the top-level container. Get the base settings right so every repo inherits sensible defaults.

Teams and Permissions

Manage access through teams, not individual users. When someone leaves, you remove them from one team — not from every repo.

Repository Settings

Configure each repository consistently. These settings control how code gets merged and how branches are cleaned up.

Branch Protection and Rulesets

Protect your main branch from direct pushes, force pushes, and unreviewed merges. This is the single most important thing you can configure.

CODEOWNERS File

Define who automatically reviews code in each part of the codebase. One file that routes reviews correctly for every PR.

GitHub Actions — CI/CD

Automate testing, linting, and deployments. Required checks must pass before any PR can merge.

Security Features

Enable GitHub's built-in security scanning. Most features are free for public repos and available on paid plans for private repos.

Git Reporting — Connect Gitmore

Once your repositories are set up, connect Gitmore to start receiving automated daily and weekly reports on your team's activity across all repos.

Pro Tips

Expert advice

1

Roll out branch protection using GitHub's Evaluate mode first. It shows you who would be blocked without actually blocking anyone. Run it for one week, fix legitimate bypasses, then switch to Active enforcement.

2

The single highest-impact change you can make to an existing GitHub org is enabling 'Do not allow bypassing branch protection' for admins. Most teams skip this. It's the one setting that prevents engineers (and yourself) from taking shortcuts under pressure.

3

Use teams instead of individuals everywhere — CODEOWNERS, branch protection bypass lists, environment required reviewers. A team with one member is still better than an individual username because the team survives offboarding.

4

Require status checks from your CI before merge, but also check the 'Require branches to be up to date' box. Without it, two PRs can each pass CI individually but break main when both merge — this is the classic 'green CI but broken main' problem.

5

After setting up Gitmore, send your first weekly report to your team and ask them to review it. The first week's report reveals which repos are missing, which developers are committing under unexpected email addresses, and whether your branch naming is consistent enough to track.

FAQ

Common questions

What is the difference between GitHub branch protection rules and Rulesets?

Classic branch protection rules (the original feature) allow only one rule per branch and are less visible to team members. Rulesets (introduced in 2023, now the recommended approach) allow multiple rules to apply simultaneously, support an Evaluate mode for safe rollout, are visible to all team members, and can be applied at the organization level across many repos at once. For new setups, use Rulesets. For existing setups, migrate gradually.

Should I require 1 or 2 PR approvals before merge?

For most teams, 1 required approval is the right default. It catches mistakes without slowing delivery. Require 2 approvals for critical repositories with security implications, compliance requirements, or code that directly handles payments or user data. More than 2 approvals adds friction without meaningful safety improvement for most teams.

How does CODEOWNERS work with branch protection?

CODEOWNERS automatically requests reviews from the relevant team when a PR touches files they own. However, by itself it does not block merging. To make those reviews mandatory, you must also enable 'Require review from Code Owners' in your branch protection rules or Rulesets. Without that setting, the review request is a suggestion only.

Should I use PATs or GitHub Apps for CI/CD integrations?

Use GitHub Apps for all team-level integrations. GitHub Apps have fine-grained permissions, generate short-lived tokens (valid 1 hour), and remain installed even when the user who created them leaves the team. Classic PATs are tied to a personal account — if that person leaves or deactivates their account, the integration silently breaks. Fine-grained PATs are acceptable for personal scripts but not for team tooling.

How do I track what my team is shipping across all these GitHub repositories?

GitHub's built-in Insights are limited to single-repo views and require navigating each repo individually. For team-level visibility across all your repositories, use Gitmore. It aggregates commits, PRs, and code reviews from all your GitHub repos into automated daily and weekly reports delivered to Slack or email. Free to start with 1 repository.

Automate Your Git Reporting

Stop compiling reports manually. Let your code speak for itself with automated daily and weekly reports.

Get Started Free

No credit card • No sales call • Reports in 2 minutes