Do you use GitLab to store and make-available various training resources? How have you made such work for you? At this time, I have from ‘history’, and have inherited, a mix of materials in LMS and GitLab storage. Surely there’s a way to have a consistent, ‘single source of truth’?
Am wondering:
if/how one might embargo the release of source-files, eg not making suggested-solutions available until after due-date.
how a single work-unit’s source-templates and suggested-solutions might be organised, if not ‘kept together’
do you keep each assignment in a course-repo, or (as I suspect) does each assignment require its own repo for (such) control purposes?
Alternately, are you using GitLab to store course-materials and an LMS for embargo and access-control? In which case, if a question is tweaked, and thus related source-files amended (and pushed to GitLab instance), do the URLs remain as-were, or also need to be updated?
In order to hide files, they have to be in a separate private project. Anything in a project that a member is a part of is visible depending on their access level, and the access level determines how they can interact with that. You could conceivably change everyone’s access level for certain projects, but unless you’re using a custom script, that could be time consuming.
There are several ways to organize a course. One method is having a base group at the highest level offered (School, Department, Professor) and then having subgroups leading all the way to a single course as a subgroup. For example, if a department has a GitLab for Education License, they could have a department group, a subgroup for each professor, and a subgroup for each course that professor teaches. Then, the projects in the subgroup could be related to either the particular week for the course (i.e. “week 1” is its own project and all work and assignments for that week are in that project.) or to the units themselves. Suggested solutions would be kept in a private repository elsewhere that the members don’t have access to or revealed by giving them “Reporter” access until it’s time to view the solution.
You could organize each assignment in its own project, but it is up to you. As you suspect, it depends on how much control you want over its contents. I have also seen assignments done as issues in a project.
You can also use the GitLab API to connect to an LMS that allows scripts.