-
Notifications
You must be signed in to change notification settings - Fork 3
GitHub Integration
Nishanth S edited this page May 8, 2026
·
1 revision
Teambuilder uses the GitHub REST API through the local GitHub manager layer in the server code.
Primary code paths:
- server/services/githubService.ts
- server/integrations/github/GithubManagement.ts
- pages/github.vue
- API routes under
server/api/github/(see the individual route files in that folder)
Teambuilder uses GitHub for team repository provisioning:
- Connects to GitHub with a Personal Access Token from environment variables.
- Checks whether the app is connected and which GitHub account is active.
- Creates a repository for each team/project when one does not already exist.
- Syncs collaborators by adding student GitHub usernames and removing collaborators that are no longer assigned.
Relevant API actions:
- GET /api/github/status
- POST /api/github/connect
- POST /api/github/disconnect
- POST /api/github/create-repos
GitHub is used so each team can receive a dedicated repository for collaboration, version control, and project delivery.
This removes manual repository setup and keeps repository membership aligned with the current team assignment data.
- Repository creation
- Repository existence checks
- Collaborator list management
- Add/remove collaborator operations
- Authenticated username lookup for the connected account
- pages/github.vue
- pages/teams.vue for team selection context
- pages/students.vue for GitHub username data on students
- Student GitHub usernames come from the
githubfield on student records. - Semester selection controls which teams are processed.
- Team membership is read from the database before repo sync.
- If
GITHUB_TOKENis missing, GitHub connection fails gracefully. - Repository names are sanitized from project names before creation.
- The integration is designed to keep collaborators synchronized with the database state.
Wiki
Website Functionality
Demographics Workflows
Project Plans
- [S25] Team Formation Plan
- [S25] Demographics Plan
- [F24] Team Formation Plan
- [F24] GitHub/Discord Plan
- [F24] Demographics Plan
Resources