Skip to content
EgyKode
Challengegit

Professional Collaboration on GitHub — Challenge

Protect a branch, require review, and make the pipeline the thing that decides whether code can merge.

Time
22 min
Level
Intermediate
Objectives
4 objectives
Cost
Free

Before you start

You will need

  • A GitHub repository you own
  • git 2.30+

You will be able to

  • Configure branch protection that CI actually enforces
  • Route review automatically with CODEOWNERS
  • Write commit messages a release process can read

CostFree

— a GitHub account.

You are done when

0 of 4

The goal#

Achieve the same outcome as Professional Collaboration on GitHub, from an empty starting point, without the steps.

Trunk-based development only works when main is always releasable. That is not a matter of discipline — it is a matter of configuration.

This lab makes the repository enforce it.

What must be true when you are done#

  • A direct push to the protected branch is rejected.
  • A pull request cannot merge while its status check is failing.
  • A CODEOWNERS entry requests the right reviewer automatically.
  • You can explain why 'require branches to be up to date' matters.

Rules#

  • Do not open the guided lab until you are finished, or until the same problem has held you up for 20 minutes.
  • Documentation is allowed and encouraged.
  • Verify every criterion with a command whose output you can read.

If you get stuck#

  1. What did you expect, exactly?
  2. What happened instead — the error text, not a paraphrase?
  3. Which layer is that error from?
  4. What is the smallest command that proves the layer below is fine?

The concept behind it

Stuck?Open the guided lab

Phase complete · 01 Foundations

You can now: You can administer a server, diagnose a connection, and recover work you thought you had destroyed.

Next phase

Lab 8 of 58 on the project path

02 · The application, in containersProduction-Grade Multi-Stage Dockerfile for Django & GunicornTurn a Django application into an image that starts fast, runs as a non-root user, and carries no build tooling.31 minBeginner