cis-ds/course-site

Implement revised homework submission workflow

Closed this issue · 4 comments

Use the same approach from my data viz course. Rely on ghclass to add users to org, separate repos for each student/assignment. Create evaluation branch that mirrors the main branch at clone. Create pull request at submission deadline and switch to pull access to block more pushes.

Necessary revisions

course-site

  • Update homework workflow diagram
  • Replace or eliminate video demonstrating workflow
  • Still need to use a Google Form to collect Github usernames - don't need to when I use GitHub Enterprise server. Username is official email address.
  • Fix language on each homework page since students will not be forking the assignment
  • Use Cornell's Github Enterprise server, change:
    • GitHub setup information to use

      create_github_token(
        scopes = c("repo", "user", "gist", "workflow"),
        description = "RStudio Workbench",
        host = "https://github.coecis.cornell.edu/"
      )
    • Change links to all the repos to use the enterprise server

gradereportr

  • Will need to update the package to still collect evaluations from each student homework repo
  • If I use Cornell's GitHub Enterprise server, then I need to change the API endpoint URL for the package to collect the data
  • Have to properly attribute the student who is being evaluated. Can no longer rely on who generated the pull request. Will need to get this directly from the repo name
  • Need to assign instructor/TAs to repos for evaluation. Requires both giving them access to the repo and assigning code review. Would prefer not to give each TA admin privileges on the course org.

ghclass

  • Does it work with Github Enterprise? See this issue.

Can change the API endpoint in gh() using

gh(
  ...,
  .token = gh_token(api_url = "https://github.coecis.cornell.edu"),
  .api_url = "https://github.coecis.cornell.edu"
)

Use an option to store api URL. Then automatically use this in the package wherever gh() is used. If that option is NULL, then use the default Github URL. See this example from blogdown.

No need to rewrite all the packages/repos to use the enterprise GitHub. Pretty sure I just need to use project-specific .Renviron files.

GITHUB_PAT=MYLONGPAT
GITHUB_API_URL = "https://github.coecis.cornell.edu/"

Verify I still need to use GITHUB_PAT or if I can rely on normal Git credential cache. For gh I should be okay? For ghclass maybe not.

I think this has all been sufficiently resolved. Will find out with hw01