Me (a professor who asks students to submit deliverables as github repositories).
As a professor who asks students to submit deliverables as github repositories, I need a quicker way of downloading all student repositories before I grade them on my local machine. And also it would be nice to automate as much of the grading process as possible.
- Obtain a list of student repository URLs.
- For each repository:
- Visit its URL in a browser.
- Click the "clone or download" button to reveal its remote address.
- From the command line, download the repo using a
git clone
command. - Manually check the repository for existence of certain files, and record the results in a Google Sheet gradebook.
- Obtain a list of student repository URLs.
- Run a script to automatically download all the repositories and check for existence of specified files, and produce a CSV file report of the results.
- Upload the CSV file report into the Google Sheets gradebook.
- A
submissions.csv
file containing a list of student repository submissions, including github usernames and repository URLs. - A
filepaths.csv
file contining a list of files expected to exist in each repository.
- Local copies of all the student repository directories.
- A
results.csv
file containing the results of the file-checking process.
I thought I might need to use the GitHub API to download all files in a given repository, but then I came to the conclusion it would be easier to use command-line Git.
The application does not require any third-party packages, except pytest
for testing purposes.
The application does however make extensive use of the os
and csv
modules.
And after performing some Internet research,
I learned I can use the subprocess
module to perform system commands like git clone
.
The application will be running on my own local machine. I have no plans to deploy this application to a public server.