Skip to content

TL-M0-12 · Private GitHub repository

Why: The repository goes to GitHub as private, with squash merges only, so main gets one commit per pull request and that commit carries the pull request title CI checks (D6).

ID TL-M0-12 · Level L0 · Run order row 12

The repository is on GitHub, private, with main pushed and squash merges only.

  • TL-M0-11 is Done.
  • You have decided the owner: the company's GitHub organization or your own account, written <GITHUB_OWNER> below.
  • gh works: gh auth status shows “Logged in to github.com”. If gh is missing, run brew install gh, then gh auth login (GitHub.com, HTTPS, log in with a browser).

1 · Create the private repository from this folder and push main

Section titled “1 · Create the private repository from this folder and push main”
Terminal window
gh repo create <GITHUB_OWNER>/opleet --private --source . --remote origin --push

2 · Squash merges only, and delete branches after merging

Section titled “2 · Squash merges only, and delete branches after merging”
Terminal window
gh repo edit <GITHUB_OWNER>/opleet --enable-squash-merge --enable-merge-commit=false --enable-rebase-merge=false --delete-branch-on-merge

3 · In the browser, under Settings › General › Pull Requests › Allow squash merging, set Default commit message to Pull request title

Section titled “3 · In the browser, under Settings › General › Pull Requests › Allow squash merging, set Default commit message to Pull request title”
Terminal window
gh repo view <GITHUB_OWNER>/opleet --web
  • Block 1: “✓ Created repository <GITHUB_OWNER>/opleet on GitHub”, “✓ Added remote …” and “✓ Pushed commits to …”.
  • Block 2: “✓ Edited repository <GITHUB_OWNER>/opleet”.
Terminal window
gh repo view <GITHUB_OWNER>/opleet --json visibility,squashMergeAllowed,mergeCommitAllowed,rebaseMergeAllowed,deleteBranchOnMerge

visibility PRIVATE; squashMergeAllowed true; mergeCommitAllowed false; rebaseMergeAllowed false; deleteBranchOnMerge true.

  • “Name already exists”: a repository called opleet is already there. Stop and decide the name.
  • “Resource not accessible” for an organization: run gh auth refresh -s repo,read:org, then block 1 again.

Not reversible once someone else has cloned it: ask first. Before that:

Terminal window
gh repo delete <GITHUB_OWNER>/opleet
git remote remove origin

Done 2026-10-05 (zuki)