GitHub Classroom Integration Architecture
This document describes the current production architecture for registration and classroom handoff.
Design Goals
- Keep enrollment automation in a public repository without exposing private intake details.
- Avoid organization invitation dependencies.
- Use deterministic issue signals for Day 2 release and dashboard status.
High-Level Flow
- Student opens enrollment or registration issue.
registration.ymlvalidates submission and posts assignment links.- Student replies
ackafter Day 1 link verification. - Student replies
day1-completeafter Day 1 milestone. day2-release.ymlposts Day 2 assignment link when completion signal is present.instructor-dashboard-sync.ymlwrites status snapshots to private admin repo issues.
Core Workflows
registration.yml
- Handles duplicate and waitlist behavior.
- Stores detailed intake in private repo when configured.
- Redacts public issue body for privacy.
- Posts Day 1 and Day 2 links from repository variables.
day2-release.yml
- Runs on schedule and manual dispatch.
- Reads enrollment issues with
enrolledlabel. - Releases Day 2 when either condition is true:
- Label
day2-eligibleorday1-completeis present. - Student comment contains
day1-complete.
- Label
instructor-dashboard-sync.yml
- Reads enrollment issues and comments from this repo.
- Computes status categories:
awaiting-ackactive-day1day1-completeday2-releasedneeds-info
- Upserts one dashboard issue per student in the private admin repo.
Configuration Surface
Variables
CLASSROOM_DAY1_ASSIGNMENT_URLCLASSROOM_DAY2_ASSIGNMENT_URLPRIVATE_STUDENT_DATA_REPOENABLE_PUBLIC_CLASSROOM_INTAKE_EXPORTENABLE_PUBLIC_REGISTRATION_EXPORT
Secrets
PRIVATE_STUDENT_DATA_TOKENINSTRUCTOR_DASHBOARD_TOKEN(dashboard sync)
Student Interaction Contract
Required student replies:
ackafter opening Day 1 assignment.day1-completeafter Day 1 milestone completion.
These text signals are intentionally simple so facilitators can test and recover quickly.
Authoritative Sources
Use these official references when you need the current source of truth for facts in this chapter.
Section-Level Source Map
Use this map to verify facts for each major section in this file.
- Design Goals: GitHub Docs, home, GitHub Changelog
- High-Level Flow: GitHub Docs, home, GitHub Changelog
- Core Workflows: GitHub Docs, home, GitHub Changelog, Workflow syntax for GitHub Actions, Secure use reference for GitHub Actions, GitHub Actions changelog
- Configuration Surface: GitHub Docs, home, GitHub Changelog
- Student Interaction Contract: GitHub Docs, home, GitHub Changelog, Workflow syntax for GitHub Actions, Secure use reference for GitHub Actions, GitHub Actions changelog