From 76c418218653926c1b33a8f751e986ecbec213db Mon Sep 17 00:00:00 2001 From: Bjarke Sporring Date: Thu, 15 Jan 2026 12:03:50 +0100 Subject: [PATCH] feat: update README to include SSH guidelines --- README.md | 76 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 17fcb47..7dba45a 100644 --- a/README.md +++ b/README.md @@ -47,14 +47,15 @@ Advanced Git workflows for power users: ### For Module 08: Multiplayer Git -**This module is different!** It uses a real Git server for authentic collaboration: +**This module is different!** It uses Azure DevOps for authentic cloud-based collaboration: 1. Navigate to `01-essentials/08-multiplayer` 2. Read the `README.md` for complete instructions -3. **No setup script** - you'll clone from https://git.frod.dk/multiplayer +3. **No setup script** - you'll clone from Azure DevOps (URL provided by facilitator) 4. Work with a partner on shared branches 5. Experience real merge conflicts and pull requests -6. **No verify script** - success is visual (your code appears in the final output) +6. Use SSH keys for secure authentication (best practice) +7. **No verify script** - success is visual (your code appears in the final output) **Facilitators**: See `01-essentials/08-multiplayer/FACILITATOR-SETUP.md` for server setup and workshop guidance. @@ -285,7 +286,8 @@ By completing this workshop, you'll be able to: - ✅ **Collaborate with teammates on shared repositories** - ✅ **Resolve real merge conflicts in a team environment** - ✅ **Create and review pull requests** -- ✅ **Use Git on a real cloud server (Gitea)** +- ✅ **Use Git on a real cloud server (Azure DevOps)** +- ✅ **Use SSH keys for secure Git authentication** ### From Advanced Track: - ✅ Rebase to maintain clean, linear history @@ -336,37 +338,46 @@ The workshop format combines instructor-led sessions with self-paced hands-on mo ### Setting Up Module 08: Multiplayer Git -Module 08 requires a Git server for authentic collaboration. You have two options: +Module 08 requires a Git server for authentic collaboration using **Azure DevOps**. -**Option 1: Self-Hosted Gitea Server (Recommended)** +**Azure DevOps Setup** -Run your own Git server with Gitea using Docker and Cloudflare Tunnel: +Use Azure DevOps as the cloud-based Git platform for this module: **Benefits:** -- 💰 Completely free (no cloud costs) -- 🔒 Full control over your data -- 🌐 Accessible from anywhere via Cloudflare Tunnel -- 🚀 Quick setup with Docker Compose -- 👥 Perfect for workshops with 2-24 students +- 💰 Free tier supports up to 5 users with full access +- 🌐 Cloud-hosted - no server maintenance required +- 🔒 Enterprise-grade security and reliability +- 🔑 Built-in SSH key support (industry best practice) +- 👥 Perfect for workshops with any number of students (use Stakeholder licenses for >5 users) +- 📊 Built-in pull request workflows and code review tools -**Setup:** -1. See [GITEA-SETUP.md](GITEA-SETUP.md) for complete Gitea + Docker + Cloudflare Tunnel instructions -2. See `01-essentials/08-multiplayer/FACILITATOR-SETUP.md` for detailed workshop preparation: - - Creating student accounts - - Setting up The Great Print Project repository - - Pairing students - - Monitoring progress - - Troubleshooting common issues +**Setup Steps:** -**Option 2: Azure DevOps / GitHub / GitLab** +1. **Create Azure DevOps Organization** (if you don't have one): + - Sign up at [dev.azure.com](https://dev.azure.com) with a Microsoft account + - Create a new organization for your workshop -You can also use existing cloud Git platforms: -- Create organization/group for the workshop -- Set up repository with starter code (see facilitator guide) -- Create user accounts for students -- Configure permissions +2. **Set up SSH authentication** (recommended for all users): + - See [AZURE-DEVOPS-SSH-SETUP.md](AZURE-DEVOPS-SSH-SETUP.md) for complete SSH key setup instructions + - SSH provides secure, passwordless authentication (industry standard) -**Both options work - Gitea gives you more control and is free for any number of students.** +3. **Configure workshop repository and users**: + - See `01-essentials/08-multiplayer/FACILITATOR-SETUP.md` for detailed workshop preparation: + - Adding student accounts to Azure DevOps + - Creating The Great Print Project repository + - Configuring branch policies + - Pairing students + - Monitoring progress + - Troubleshooting SSH and authentication issues + +**Alternative: GitHub / GitLab / Bitbucket** + +While this workshop uses Azure DevOps, the skills learned apply to any Git platform: +- The workflow is identical across all platforms +- SSH authentication works the same way everywhere +- Pull request concepts transfer directly +- Students can apply these skills to any Git hosting service --- @@ -380,7 +391,7 @@ git-workshop/ ├── GIT-CHEATSHEET.md # Quick reference for all Git commands ├── WORKSHOP-AGENDA.md # Facilitator guide for running workshops ├── PRESENTATION-OUTLINE.md # Slide deck outline -├── GITEA-SETUP.md # Self-hosted Git server setup +├── AZURE-DEVOPS-SSH-SETUP.md # SSH authentication best practices for Azure DevOps ├── install-glow.ps1 # Install glow markdown renderer │ ├── 01-essentials/ # Core Git skills (8 modules) @@ -406,15 +417,16 @@ git-workshop/ ## What's Unique About This Workshop -### The Great Print Project (Module 07) +### The Great Print Project (Module 08) Unlike any other Git tutorial, Module 08 provides **real collaborative experience**: -- **Real Git server**: Not simulated - actual cloud repository at https://git.frod.dk/multiplayer +- **Real Git server**: Not simulated - actual Azure DevOps cloud repository - **Real teammates**: Work in pairs on shared branches - **Real conflicts**: Both partners edit the same code and must resolve conflicts together - **Real pull requests**: Create PRs, review code, merge to main - **Real success**: When all pairs merge, run `python main.py` and see everyone's contributions! +- **Real security**: Use SSH keys for authentication (industry best practice) **The challenge**: Each pair implements 3 Python functions (e.g., `print_b()`, `print_c()`, `print_d()`) in a shared repository. When complete, the program prints the alphabet A-Z and numbers 0-9. @@ -459,8 +471,8 @@ A: Absolutely! See the "For Workshop Facilitators" section above. The materials **Q: Do I need internet access?** A: Modules 01-07 work completely offline. Module 08 requires internet to access the Git server. -**Q: What if I prefer GitHub/GitLab instead of Gitea?** -A: The skills are identical across all Git platforms. Module 08 uses Gitea but everything you learn applies to GitHub, GitLab, Bitbucket, etc. +**Q: What if I prefer GitHub/GitLab instead of Azure DevOps?** +A: The skills are identical across all Git platforms. Module 08 uses Azure DevOps but everything you learn applies directly to GitHub, GitLab, Bitbucket, and any other Git hosting service. The SSH authentication, pull request workflow, and collaboration patterns are the same everywhere. ---