Topics Map > Desktop Support > Procedures and How-Tos
How to Create GitLab Groups, Sub-folders, and Projects
Step-by-step guides
Conventions
Location and naming:
- Repositories requiring authentication should be located in the main SMPH tree: https://git.doit.wisc.edu/smph
- Repositories meant to be visible to the publish should be located in the public SMPH tree: https://git.doit.wisc.edu/smph-public
- Departments, centers, and research labs can have a folder created directly underneath the top level SMPH folder.
- Names should be descriptive (e.g., Department of Medicine, Integrative Systems Neuroimaging Laboratory) while the URL slug can be short (e.g., dom, radiology, isnl).
- Administrative domains are created to contain repositories for administrative applications in that respective domain, particularly applications that are not limited to a single department (e.g., Human Resources, Educational Technology, Fiscal Affairs, Faculty Relations).
- Folders for different teams, platforms, domains, etc. can be created under the appropriate department/center/lab/domain folder.
Owners and members:
- The owner(s) of the department/center/lab folder should be someone of appropriate authority (e.g., Application Development Managers for departments; the director for the center; the primary investigator for a lab).
- That owner can manage group members (i.e., people with access to the folder and project repositories) and grant them appropriate roles.
- Where appropriate, instead of adding individual technologists to a folder or project, consider adding a relevant group already defined in the IIT folder. See below.
Groups for IIT teams:
- The Informatics and Information Technology top level folder is primarily used to hold GitLab groups representing the various teams within IIT.
- Where appropriate, these groups can be invited to other folders and projects. This allows for centralization and reuse of groups instead of manually adding individuals to folders and projects across SMPH.
- In addition to defining GitLab groups for each team, there are roll-up groups such as All Application Development that includes the relevant team groups.
- The Application Development Managers group can be used to grant access to application development management.
Permissions:
- Projects can be set to Internal to facilitate sharing of code, or private so that only specific users or groups have access.
- (TODO: determine what we generally want to do in IIT.)
- (TODO: document the way permission inheritance works.)
Binary or data files:
- Projects should not exceed 2 GB in size and cannot be used to store restricted data, sensitive data, PHI or any other class of data that’s not for general consumption.
- (TODO: Look at tools for ensuring PHI does not get added.)
Create a department/center/lab/domain folder
Upper level folders for departments, centers, or research labs are created by the central IT.
Information needed:
- SMPH department, center, or research lab name
- Preferred abbreviation
- Group visibility: public (visible to unauthenticated users), internal (visible to all authenticated users), private (visible to specific, named users)
- Group owner(s) email and NetID
- Note: Ensure that group owners have logged into https://git.doit.wisc.edu to provision their account before submitting the request.
Create a team/group/initiative-level subgroup
Requests can be submitted via the Application Development Portal and should include the information listed above.
Managing group membership
Information needed:
- Link to the parent SMPH department, center, or research lab folder/group
- Team/group/initiative subgroup name
- Preferred abbreviation
- Group visibility: public (visible to unauthenticated users), internal (visible to all authenticated users), private (visible to specific, named users)
- Group owner(s)
Steps:
- Consider routing request to the owner of the parent folder. They can create projects within their subgroup.
- Navigate to the appropriate parent SMPH department, center, or research lab folder within https://git.doit.wisc.edu/smph or https://git.doit.wisc.edu/smph-public.
- If the department, center, or research lab group does not yet exist, see creating a department/center/lab folder above.
- Click on "New subgroup" then "Create group".
- Set appropriate visibility (e.g., generally "public" if it is in SMPH (Public) and internal or private if on in SMPH) and click Create group. (You can leave the other settings at their defaults.)
- Navigate to Subgroup Information > Members and invite the appropriate owners and/or other members assigning them the appropriate role. (Note that members from higher level groups will automatically inherit access.)
- Note: Ensure that the new members have logged into https://git.doit.wisc.edu to provision their account before you attempt to add them.
Suggested email template:
To: <sub-group owner(s)>
Subject: GitLab Group for <team/group/center/initiative>Hello,
We have created a GitLab group/folder for you: <link to internal and/or public GitLab group/folder>As a group owner, you can invite, remove, and manage the group members. You and any members with the "developer" role and create projects (repositories) within this sub-group. For quick tips on creating groups and projects, see How to Create GitLab Groups, Sub-folders, and Projects.
For more information, see the GitLab for SMPH FAQ. A few key guidelines include:
Groups and projects under the SMPH top level group should always require authentication. Groups and projects under SMPH (Public) top level group are intended to be publicly accessible without authentication.
Projects should not exceed 2 GB in size and cannot be used to store restricted data, sensitive data, PHI or any other class of data that’s not for general consumption.
Projects should follow the SMPH IT Knowledge Base : SMPH GitLab – Public, Internal, Sensitive, and Restricted Data Guidelines.
Additional support:
- The DoIT Shared Tools team manages the overall service can can provide general support and advice.
- The SMPH Application Support team can provide limited assistance with group management.
- The DoIT Shared Tools team maintains a number of GitLab KB documents, including a list of other online resources.
- You can also post questions to the UW Dist Dev CoP (UW Distributed Developers Community of Practice) Tools channel in Teams.
Create a project
Information needed:
- Subgroup being managed
- Member NetIDs, and roles
- Guests have limited visibility into groups.
- Developers can create projects in groups. (This can be restricted.)
- Maintainers can manage team members, edit web hooks and project settings, push to protected branches, manage push rules.
- Owners can manage members and create/delete subgroups.
- Navigate to the appropriate subgroup within https://git.doit.wisc.edu/smph or https://git.doit.wisc.edu/smph-public.
- Navigate to Subgroup Information > Members and invite the appropriate members with the appropriate role. (Note that members from higher level groups will automatically inherit access.)
- Note: Invite them using their NetID. Don't use their email. If they are external to UW-Madison and do not have NetID, see Can external people collaborate? What about UWH employees?
- Note: First ensure that they have logged into https://git.doit.wisc.edu to provision their account before you attempt to add them.
- If no match is found for their NetID, they need to first log into https://git.doit.wisc.edu using the UW-Madison NetID option.
Managing project team membership
Information needed:
- Sub-folder/group containing the project
- Project name
- Project "slug" (i.e., the short version of the name that is used in URLs)
- Project visibility: public (visible to unauthenticated users), internal (visible to all authenticated users), private (visible to specific, named users)
- Project owner(s)
- The owner can later add other team members.
- Optionally, they could have you add other owners, maintainers, developers, and/or guests by name or by group.
- Is the project being imported from another Git repository or GitLab instance?
- Importing from another Git repository can be done via URL.
- Importing from another GitLab instance can be done via GitLab export/import.
- See DoIT Shared Tools - GitLab - Resources for Migrating to git.doit.wisc.edu
Steps:
- Consider routing request to the owner of the appropriate team/group/center/initiative subgroup. They can create projects within their subgroup.
- Navigate to the appropriate team/group/center/lab subgroup in https://git.doit.wisc.edu/smph or https://git.doit.wisc.edu/smph-public.
- If the team/group/center/initiative subgroup does not yet exist, see creating a team/group/center/lab above.
- Click on "New project"
- Select blank or template for project, fill the subsequent form with the information you gathered, and click Create Project
- Navigate to Project Information > Members and add the appropriate owners. (Note that members from higher level groups will automatically inherit access.)
- Note: Invite them using their NetID. Don't use their email. If they are external to UW-Madison and do not have NetID, see Can external people collaborate? What about UWH employees?
- Note: First ensure that they have logged into https://git.doit.wisc.edu using the UW-Madison NetID option to provision their account before you attempt to add them.
Information needed:
- Project
- Member emails and roles
- Guests can view code and pages, and create comments and issues.
- Developers can view analytics, run CI/CD pipelines, move issues, create and approve merge requests, create/edit milestones and releases, create branches, push to unprotected branches.
- Maintainers can manage team members, edit web hooks and project settings, push to protected branches, manage push rules.
- Owners can rename, transfer, or delete projects.
- Navigate to the appropriate project under https://git.doit.wisc.edu/explore.
- Navigate to Project Information > Members and invite the member(s) with the appropriate role. (Note that members from higher level groups will automatically inherit access.)
- Note: Invite them using their NetID. Don't use their email. If they are external to UW-Madison and do not have NetID, see collaborate? What about UWH employees?
- Note: First ensure that they have logged into https://git.doit.wisc.edu using the UW-Madison NetID option to provision their account before you attempt to add them.