Successfully added beckyk102125 as the 67th student and established student organization invitations + security/reliability framework for the upcoming GitHub workshop (March 8-9, 2026).
- Added: beckyk102125 to student roster (→ 67 total students)
- Branch: Created and pushed
student/beckyk102125branch - Status: Student ready to join organization and receive assignment
- Script Created:
scripts/invite_students.py- Invites all 67 students to Community-Access organization
- Uses GitHub CLI (gh) for bulk invitations
- Handles rate limiting and error reporting
- Generates summary report (invited, already members, failed)
-
Document Created:
REPOSITORY_SECURITY.md- Comprehensive access control guidelines (100+ sections)
- Permission model: Least privilege for students
- Branch protection rules documentation
- Facilitator authorization setup
- Data privacy & compliance guidelines
- Emergency response procedures
- Daily operation schedules
-
Script Created:
scripts/configure_repo_permissions.py- Verifies repository safety settings
- Checks branch protection status
- Validates GitHub Actions configuration
- Tests webhook security
- Confirms public accessibility
- Generates security documentation
- Updated:
ADMIN_TEST_PLAN.md- Added critical org membership prerequisite section
- Documented invitation process
- Created contingency plan if invitations still pending
- Added enrollment timeline (Fri March 7)
- Updated issue creation blockers section
-
Created:
.github/workflows/learning-room-validation.yml- Triggers on PRs to main modifying
/learning-room/**files - Validates markdown, links, and accessibility
- Posts consolidated feedback on PRs
- Resource links to help docs
- Triggers on PRs to main modifying
-
Created:
.github/workflows/check_links.py- Validates all URLs in markdown files
- Detects typos:
htp://,htps://→https:// - Checks link text quality (WCAG 2.4.4 compliance)
- Warns on vague link text
-
Created:
.github/workflows/check_accessibility.py- Validates heading hierarchy (no skipped levels)
- Detects incomplete content (TODO placeholders)
- Checks link text descriptiveness
- Verifies code block formatting
Commit Hash: 95ef63d
- Added student roster(67 students)
- Added all scripts for invitations and permissions
- Added security and testing documentation
- Staged GitHub Actions workflows
Who: GitHub Organization Owner (admin permissions required)
What: Send invitations to all 67 students to join Community-Access organization
How:
# Option A: Bulk script (fastest)
python scripts/invite_students.py
# Option B: Manual web UI (safest)
# Go to: https://github.com/orgs/Community-Access/people
# Click "Invite member" for each studentImportant:
- Invitations valid for 7 days
- Students receive email from GitHub with acceptance link
- Students must click link to join org
- Once joined, assign issues:
python scripts/batch_create_issues.py
| Date | Time | Action | Owner |
|---|---|---|---|
| Fri Mar 6 | Morning | Send org invitations to 67 students | Org Admin |
| Fri Mar 6 | Throughout day | Students accept invitations (emails) | Students |
| Fri Mar 7 | 9am-12pm | Admin testing using ADMIN_TEST_PLAN.md | Volunteers |
| Fri Mar 7 | 3pm | Create assignment issues (once members join) | Admin |
| Fri Mar 7 | 5pm | Brief facilitators on timeline | Lead Facilitator |
| Fri Mar 7 | 6pm | Send pre-workshop email to students | Admin |
| Sat Mar 8 | 11:45am | Launch Zoom + Learning Room | Tech Team |
| Sat Mar 8 | 12pm | Workshop Day 1 begins | Facilitators |
Before Saturday workshop, verify:
- All 67 invitations sent to students
- Check pending invitations: https://github.com/orgs/Community-Access/pending_invitations
- Track acceptance rate (aim for 100% by 3pm Friday)
- Document any students who don't accept
- 67 student branches visible in repository
- Main branch protection enabled
- GitHub Actions workflows enabled and tested
- Assignment issues created (run
python scripts/batch_create_issues.pyonce members join)
- 2-3 admins added as organization admin role
gh api /orgs/Community-Access/members/[username] -X PUT -f role=admin
- Facilitators read FACILITATOR_GUIDE.md
- Facilitators understand peer review assignments
- Facilitators have access to progress tracker
- ADMIN_TEST_PLAN.md reviewed (8 test scenarios)
- REPOSITORY_SECURITY.md accessible to facilitators
- Facilitator guide has key timestamps
- Learning paths with challenge solutions ready
- Admin Test Scenario 1: Student branch access
- Admin Test Scenario 2: Assignment issue visibility
- Admin Test Scenario 3: PR template functionality
- Admin Test Scenario 4: GitHub Actions bot response
- Admin Test Scenario 5: Peer reviewer assignments
- Admin Test Scenario 6: Facilitator guide accessibility
- Admin Test Scenario 7: Progress tracker setup
- Admin Test Scenario 8: End-to-end workflow
Issue: Running python scripts/invite_students.py returns "HTTP 422 Validation Failed" for all users.
Root Cause: GitHub organization API authentication likely needs elevated permissions or specific PAT token scopes.
Solution: Use GitHub web UI for manual invitations:
- Go to https://github.com/orgs/Community-Access/people
- Click "Invite member"
- Paste student usernames in bulk
- Select role: "Member"
- Send invitations
Alternative: If org admin user runs the script directly, may work.
Issue: Student roster file (.github/data/student-roster.json) is in .gitignore, so changes may not persist across commits.
Solution: File was force-added in commit 95ef63d. Keep roster.json in repo for workshop admin purposes.
| File | Purpose | Audience |
|---|---|---|
REPOSITORY_SECURITY.md |
Access control, permissions, compliance | Facilitators, Admins |
ADMIN_TEST_PLAN.md |
8 test scenarios for Friday validation | Admin volunteers |
facilitator/FACILITATOR_GUIDE.md |
Full 2-day timeline, roles, protocols | Facilitators |
.github/docs/LEARNING_PATHS.md |
Challenge solutions with rubric | Facilitators, Students |
ENROLLMENT_SUMMARY.md |
This document | Project stakeholders |
Workshop infrastructure is ready when:
- All 67 students members of Community-Access org
- All 67 assignment issues visible in Issues tab with "assigned" label
- Each student can find their
student/[username]branch - GitHub Actions bot responding to test PRs
- Facilitators can create, assign, and merge issues
- Peer review pairings documented and accessible
- Progress tracker initialized for real-time updates
# 1. Invite all students (CRITICAL - do first)
python scripts/invite_students.py
# Wait for students to accept invitations (email links)
# 2. Check and verify permissions (anytime)
python scripts/configure_repo_permissions.py
# 3. Create and assign issues (once students are org members)
python scripts/batch_create_issues.py
# 4. Validate everything works (Friday afternoon)
# Run 8 test scenarios from ADMIN_TEST_PLAN.md manuallyOrganization invitation issues?
- Check: https://github.com/settings/applications
- Verify PAT token has
admin:organdwrite:org_datascopes - Try manual invitations via web UI
Repository permissions?
- See: REPOSITORY_SECURITY.md (Access Control section)
- Or: https://github.com/Community-Access/git-going-with-github/settings
Workshop timeline?
- See: facilitator/FACILITATOR_GUIDE.md (Day 1 / Day 2 sections)
- Or: ADMIN_TEST_PLAN.md (timeline table)
Student roster?
- File: .github/data/student-roster.json
- 67 students total (was 66, added beckyk102125)
- Includes: username, pronouns, timezone, interests, screen reader info
Status: READY FOR ADMIN TESTING (Friday, March 7)
Workshop infrastructure complete. Awaiting:
- Student organization invitations (do Friday)
- Admin test plan execution (Friday 2-3pm)
- Assignment issue creation (after students join org)
- Facilitator briefing (Friday 5pm)
- Pre-workshop emails to students (Friday 6pm)
Then: Ready to launch Saturday at 12pm ET!