====== GitLab User Documentation ======
Welcome on the UNIGE GitLab documentation. You will find here all the information you need to use the UNIGE GitLab instance.
See:
- https://gitlab.unige.ch/help/user/index.md if you are looking for the upstream documentation of the UNIGE GitLab **running** instance.
- https://catalogue-si.unige.ch if you need to contact the team behind GitLab.
==== Learning ====
Please see the UNIGE official formations at https://spc.unige.ch/en/teaching/digitalskills/ (old https://spc.unige.ch/en/teaching/digitalskills/).
==== Access ====
''gitlab.unige.ch'' is open to the whole Swiss educational audience via [[https://www.switch.ch/aai/|SWITCHaai]] (UNIGE members should use their ISIs credentials) and to any non-academic entity via [[
https://eduid.ch/web/registration/1/|SWITCH edu-ID (free registration required)]] . For this reason, password authentication has been deactivated.
=== SSH ===
Git ''clone/push/pull'' are available:
- via SSH (see https://gitlab.unige.ch/help/user/ssh ) after either the user has added a key in the GitLab profile settings or one of the project administrators has set up a **Deploy Key** in the GitLab project interface (see https://gitlab.unige.ch/help/user/project/deploy_keys/index.md )
- via HTTPS after the user has generated a **Personal Access Token** in the GitLab profile settings (see https://gitlab.unige.ch/help/user/profile/personal_access_tokens.md ) or one of the project administrators has set up a **Deploy Token** in the GitLab project interface (see https://gitlab.unige.ch/help/user/project/deploy_tokens/index.md )
==== Permissions ====
Access to each resource is directly managed **per (sub)group or project** via the web interface (see https://gitlab.unige.ch/help/user/permissions ).
To easy access management, you should think in a hierarchical terms from the very beginning:
- create a //top-level// group with the least possible members (basically, only the administrators)
- inside this group, create //sub-groups// or //projects// with specific permissions
Independently of the authentication source (SWITCHaai or SWITCH edu-ID), those users without a UNIGE mail address will automatically get an **external** account (see https://gitlab.unige.ch/help/user/permissions#external-users ), which means that:
- they can not create groups or projects
- read access to private or internal projects must be explicitly granted
- read access to public projects is permitted
- write access to any project must be explicitly granted
==== Resources ====
By default, the following settings apply to any //internal// users:
- maximum number of projects: 20
- maximum size of a single project: 100MB
- maximum size of an attachment: 10MB
- maximum size of a single ''git push'' : 1MB
Please contact the UNIGE GitLab administrators (see https://catalogue-si.unige.ch/gitlab ) if you need more resources.
If you need to store **large** files such as audio, video or graphics ones, please consider switching to [[https://gitlab.unige.ch/help/topics/git/lfs/index.md|Git LFS]]!
==== Features =====
The UNIGE GitLab instance is based on the upstream **Community Edition** (cf. https://about.gitlab.com/install/ce-or-ee/), since until now no Enterprise features have been needed after various evaluation.
Of the CE-included feature, the UNIGE GitLab instance does not support the following ones:
- CI/CD shared runners (cf. https://dataforum.unige.ch/t/gitlab-runners-not-available/401)
- Pages (cf. https://dataforum.unige.ch/t/gitlab-pages-support/194)
- PlantUML (cf. https://gitlab.unige.ch/help/administration/integration/plantuml.md via https://support-si.unige.ch/openentry.html?tid=INC000000146442)
==== Project visibility ====
By default, each project is **private** , //i.e.// they can only be cloned and viewed by project members.
For more details, please check the [[https://gitlab.unige.ch/help/user/public_access|corresponding section]] of the upstream documentation of the UNIGE GitLab instance.
==== External resources ====
Learn Git with a game: https://ohmygit.org/
Git Windows client https://dataforum.unige.ch/t/recommended-git-client-for-gitlab-unige-account/322/2
SPC VCS courses https://spc.unige.ch/en/teaching/digitalskills/source-code-management-git/
You did something wrong with Git? This site may help you: https://ohshitgit.com/