Middlebury has subscribed to the GitHub Education Campus Program which provides GitHub's software development and version control tools for students and instructors.
GitHub Student Developer Pack
Students can get access the GitHub Student Developer Pack by creating a GitHub account and adding your @middlebury.edu email address and verifying it. Full instructions are available at GitHub Docs: Apply for a student developer pack.
While most of GitHub's own service will be free for students to use, the Developer Pack provides free or discounted access to many continuous integration, testing, and hosting tools.
GitHub Teacher Toolbox
Similar to the Student Developer Pack (above), the Teacher Toolbox provides free or discounted access to many continuous integration, testing, and hosting tools.
Create a GitHub account if you don't already have one and then associate your @middlebury.edu email address with that account and verify it. Once you've verified your @middlebury.edu email address you can go to education.github.com/toolbox and click "Get the Toolbox". Be sure to choose your @middlebury.edu email address to associate the toolbox service.
GitHub "Organizations" for classes and research groups
Organizations in Github are collaboration spaces that contain teams and repositories. Any GitHub user account can be invited to collaborate in a team or repository in an organization.
You are welcome to self-service create free-tier "Organizations" in GitHub that aren't associated with the "Middlebury College" Enterprise subscription. See github.com/organizations/plan for details. For many purposes the free tier may be sufficient. Organizations created in the free-tier are associated with your GitHub user account and you will keep ownership of them when you leave Middlebury.
While free-tier Organizations can have unlimited collaborators and private repositories, "Enterprise" organizations get additional storage and additional minutes of processing for automation actions.
Middlebury's subscription to the GitHub Campus Program allows us to create unlimited numbers of GitHub "Organizations" associated with our "Enterprise" subscription. Each organization has one or more administrators who can manage the settings and memberships of the Teams and Repositories associated with that Organization.
There is currently no automation support, so if you would like a GitHub Organization for your class, project, or group, please submit a HelpDesk Ticket with the following information:
- Which GitHub accounts should be administrators?
Accounts must already have @middlebury.edu email addresses verified and must have enabled 2-factor authentication on their GitHub accounts.
- What class, project, or group is this for?
- Is this organization going to be used for just one semester or in an ongoing basis?
ITS staff will create the GitHub Organization in our "Middlebury College" Enterprise account and make you the the administrator. You will then be responsible for inviting other collaborator or student accounts and managing Teams and Repositories in the Organization.
Enterprise-tier organizations are associated with the Middlebury Enterprise and ITS can update/replace organization-owners as needed. There is no way to convert an organization from an Enterprise-tier to a free-tier if you leave Middlebury however individual repositories can be migrated to different organizations.
New GitHub Classroom spaces can be created by going to classroom.github.com. You will want to associate the Classroom with your @middlebury.edu email address. If you'd like an "Enterprise"-tier Organization in the "Middlebury College" Enterprise, please submit a HelpDesk ticket so that ITS staff can create an Organization for you to use Classroom with. Once we've created the Organization for you, you will be able to select it when creating "Classrooms".
Once you create the Classroom you can add Assignments to it and send students an invite to that Assignment.
It is not necessary to create a roster for the class -- student GitHub accounts will be simply listed as "unlinked" when they access assignments. At this time we don't have an integration set up with Canvas or other services, so if you would like to list students in a roster with their real names (rather than GitHub usernames), add their names to the roster -- one per line. Students will have the option to self-associate their GitHub accounts with their roster entry on assignment acceptance. If they choose the wrong student roster entry you can unlink and relink them in the Classroom's roster page.