Package: pystoplight
Stoplightstoplightis a tool that enables educators to easily control push access to GitHub Classroom assignment repositories.Please note that, as of now,stoplightonly supports at most 100 student repositories per GitHub Classroom assignment.InstallationPython 3.10 required.pipxrecommended.pipx install pystoplightUsageAuthenticationRequires aGitHub personal access token.Once created, place in your.stoplightrcfile, which you can store either in the directory where you executestoplightor in your home directory.token="<TOKEN>"Or, you can pass it in as the value of the--tokenoption.stoplight red --token <TOKEN>Commandsstoplight statusTo check the permissions of all student repositories for a GitHub Classroom assignment, usestoplight status.$stoplightstatus--orgstoplight-demo--assignment-titleassignmentChecking Status  [####################################]  100%assignment┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┃ Repo                       ┃ User            ┃ Permission ┃┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩│ assignment-Michionlion     │ Michionlion     │ write      ││ assignment-mariakimheinert │ mariakimheinert │ admin      │└────────────────────────────┴─────────────────┴────────────┘Note that repositories whose names end withstarterorsolutionor that are the assignment title are excluded.You can also specify the organization and assignment title in your.stoplightrc.token="<TOKEN>"org="stoplight-demo"assignment_title="assignment"$stoplightstatusChecking Status  [####################################]  100%assignment┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┃ Repo                       ┃ User            ┃ Permission ┃┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩│ assignment-Michionlion     │ Michionlion     │ write      ││ assignment-mariakimheinert │ mariakimheinert │ admin      │└────────────────────────────┴─────────────────┴────────────┘One way to use the.stoplightrcis to store it in a directory that you use to store starter and solution files for a GitHub Classroom assignment. Then, you can usestoplightfrom that directory to control the push access to that GitHub Classroom assignment. A.stoplightrcin the directory from whichstoplightis executed will be given priority over a.stoplightrcin your home directory.stoplight redTo disable push access for all students to their GitHub Classroom assignment repositories, usestoplight red.$stoplightredUpdating Permissions  [####################################]  100%Checking Status  [####################################]  100%assignment┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┃ Repo                       ┃ User            ┃ Permission ┃┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩│ assignment-Michionlion     │ Michionlion     │ read       ││ assignment-mariakimheinert │ mariakimheinert │ admin      │└────────────────────────────┴─────────────────┴────────────┘Notice that you cannot update the permissions of students who have admin access to their GitHub Classroom assignment repository. So, if you want to usestoplight, leave the following box unchecked when creating your GitHub Classroom assignment.stoplight greenTo enable push access for students to their GitHub Classroom assignment repositories, usestoplight green [STUDENTS]....$stoplightgreenMichionlionUpdating Permissions  [####################################]  100%Checking Status  [####################################]  100%assignment┏━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┃ Repo                   ┃ User        ┃ Permission ┃┡━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━┩│ assignment-Michionlion │ Michionlion │ write      │└────────────────────────┴─────────────┴────────────┘You can also use the--alloption to enable push access for all students.$stoplightredUpdating Permissions  [####################################]  100%Checking Status  [####################################]  100%assignment┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┃ Repo                       ┃ User            ┃ Permission ┃┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩│ assignment-Michionlion     │ Michionlion     │ read       ││ assignment-mariakimheinert │ mariakimheinert │ admin      │└────────────────────────────┴─────────────────┴────────────┘$stoplightgreen--allUpdating Permissions  [####################################]  100%Checking Status  [####################################]  100%assignment┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━┓┃ Repo                       ┃ User            ┃ Permission ┃┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━┩│ assignment-Michionlion     │ Michionlion     │ write      ││ assignment-mariakimheinert │ mariakimheinert │ admin      │└────────────────────────────┴─────────────────┴────────────┘For additional information, usestoplight --help.