New restrictions on file size in template repositories cause import failure

One of the assignments in my course asks students to write a script to process a large text log file (~50 Mb). This log file was in my starter repository from the first day I began to use GitHub Classroom for this course in 2018. Never had an issue with it before. And now GH Classroom fails to create a new repository for a student with message:

The template you used includes files that are larger than 10 megabytes. Please ask organisation_name to remove those files from the template and try again.

I’m aware of Git LFS (never used it though), but from what I know it’s ok to store moderately big text files on Git (not Git LFS) since Git uses compression. My more experienced colleagues all say that Git LFS would be an over kill to store a single static text file. More importantly, my students are not familiar with Git prior to this course. This is why I don’t want to add an extra layer of complexity to the assignment by requiring students to get to know Git LFS as well as Git.

Majority of my students will see Linux for the first time in this course and many will use an old and possibly outdated distro on a virtual machine for performance reasons. So students are guaranteed to have issues with installation of git lfs if this step is added to the assignment.

Are there any options to make my existing assignment work with the updated GitHub Classroom importer?

I’m really frustrated with the amount of things that have stopped working on GH classroom over the last week. It will be a pity to stop using it after 3 years of success, but at the moment it looks like the easiest solution to all the problems. I will evaluate if I can get rid of GH Classroom but still use GitHub Education account with RepoBee or some similar toolchain.

Hello!

Reiterating our chat from Support a bit so it’s publicly visible to other folks. If you need to use source importer for assignments with larger files, to save your commit history, or any other reason please let me know via Support for now and i’ll manually add you into our flag so you can get around this.

We have a PR open that we are waiting to deploy so this will show all the time for new assignments if you need source importer. We aren’t putting any new restrictions in place and this was just a regression. Thanks!

1 Like

The downside of using source importer is that it does not support private starter repos. No matter whether the starter repository is located in classroom’s organisation or not, as long as it is private the source importer will ask each student for credentials of a github user who has access to that private repository.

This may cause lots of confusion since students will attempt to type their github credentials which results in an error message and a failed import beacuse they have no access to the private starter repository.

So the issue of having private starter repos with files > than 10Mb in size is unsolved for now

Thanks for the screenshot! This shouldn’t be the case so we are digging into this issue today. The source importer option does support both public and privately owned repositories, regardless of location.

Hey @markpolyak, we deployed a fix for this issue so your students should not run into this problem. Let me know if you are still seeing the error, thanks!

I’m afraid your fix is not working. Actually, it broke the assignment which I managed to setup with a public starter repository using source importer. The error message is new though. This is what I see with an assignment which was working fine before the fix:

And this is what I see for a new assignment I just created to test things out:


When I click “Reaccept” I get the same error as on the first screenshot:

There was an error accepting the assignment. We were not able to import the starter code to your assignment, please try again… If this problem persists, please contact support.

Both assignments point to the same starter repository, which is located in the same organisation as the classroom. I tried switching starter repository from public to private and back, tried making it a template - nothing helped to solve the error.

So there is still no clear answer from GH support. Looks like they have completely broken the source importer while trying to fix it and decided to leave it as is for now :slight_smile:

Meanwhile I had to adopt the following solution for the “file too large” error. I use two starter repositories for a single assignment. First one is public and contains large text log file in a binary archive. Second one is private so that students can’t see it and don’t get puzzled by two nearly identical repositories. The difference is that the second repository doesn’t have the large file in it and the task for the assignment is modified to include a requirement to run wget https://github.com/<organization>/<public_repo_name>/raw/master/<filename>.log.tar.bz2. GitHub workflow in the second (private) repository is also modified to include the same wget ... command.

I had to create a new assignment in GH classroom using the second private repository as the starter template. So no need for broken source importer and GH classroom file size restriction is bypassed by having students to manually download large file from a different repository.

While this solution works, it looks and feels bad. I now have to manage an extra copy of my starter code repository, so there are three nearly identical repos in total: one is “the original” repository in a private organisation where I keep starter repos for all my courses together with solutions; another two are mentioned above. What’s worse, all three copies differ slightly from each other in order to fulfil GH classroom importer requirements, which makes updating this assignment a huge problem.

Really hope this solution will work for the next 12 months and doesn’t get broken again by GitHub updating something. Posting it here in case anyone else has a similar problem

Hi Mark!

Do you mind writing into support with your classroom URL(s)? I can add your classroom onto a flag that will use an earlier source importer version. Feel free to mention this post and my name as well so that the ticket can be directed to me.

Thanks!
Stephanie

Hi Stephanie!

I sent assignment links to the support 11 days ago, ticket number 1002682. Mentioned you there just now.

Regards,
Mark

Hi Mark!

I just wanted to update you on template repositories. You can start using template repositories now with larger files that are under GitHub’s limit of 100MB!

Stephanie :grinning_face_with_smiling_eyes:

© 2017 GitHub, Inc.
with by
GitHub Education