Skip to content

Latest commit

 

History

History
70 lines (50 loc) · 2.5 KB

README.md

File metadata and controls

70 lines (50 loc) · 2.5 KB

Scripts for GitHub Organization Management

This repository contains the bash and Perl scripts for managing an organization and repositories on GitHub used for CS160 Spring 2016, UC Berkeley.

Prerequisite

  • Visit GitHub Education to request an advanced organization plan.
    • For the Spring 2016 class, we received a diamond plan that allows up to 300 private repos.
    • Given a class of 200+ students, our strategy was to release assignments one by one (i.e., once done grading, we make all graded private repos public. We then release the next assignment with private repos.)
  • Add GSIs as owners.
  • Follow GitHub Help for Creating an access token for command-line use
  • Set up your bash or Perl environment. Perlbrew is a handy perl installation management tool on Mac.
  • For each assignment, consider using [GitHub Classroom] (https://classroom.github.com/) to set up a link that students can create individual repos based on an assigned template.

Adding members to an organization

invite_user.sh retrieves a list of GitHub usernames from a text file and adds users to an organization. Added members will need to accept the invitation via email notification sent by GitHub or visit the organization page (e.g., https://github.com/cs160-sp16).

./invite_user.sh your_github_token your_org_id filename_of_student_list

Be sure to change the script access permission via chmod a+x

Repo management

Note: This requires having a perl module that reads json content.

  • tag_repos.pl tags target private repos to label the submitted version.
  • set_public.pl changes the visibility of target private repos to public.
./tag_repos.pl your_github_token your_org_id

Team management

Creating new teams, adding team members, and creating team repos: This requires csv files that include team info. See the file headers for more info.

  • create-team-and-add-members.pl creates new teams and adds team members.
  • create-repo-for-team.pl creates a team repo for each team.

Reference

GitHub API GitHub Education GitHub Classroom

Contact

Peggy Chi ([email protected])

Acknowledgments

Senpo Hu for helping build up the scripts