IEEE SA Open
Creating in GitLab

Creating a Group

Groups

Gitlab CE is arranged into different levels:

Groups > Subgroups > Projects > Issues

As volunteers and group members, you will be working primarily within your projects and with issues. If you would like to begin work on a new project, create it in the 007 Hosted Projects Group. If you want to experiment with GitLab CE and its functions, please use the 006 Sandbox Group. This space will be periodically cleaned up.

How to Create a Group

To create a group, follow the instructions here.

In the top menu, click Groups and then Your Groups, and click the green "New group" button.

group chat 1

Or, in the top menu, click on the "+" sign and choose "New group".

group chat 2

The New Group page will open and you will add the following information:

group chat 3

Group Name

The Group Name will automatically populate the URL. Optionally, you can change it. This is the name that displays in group views.

The Group Name can contain only alphanumeric characters, underscores, dashes, dots, and spaces.

Group URL

The Group URL is the namespace under which your projects will be hosted. The URL can contain only alphanumeric characters, underscores, dashes and dots. It cannot start with dashes or end in a dot.

Group Description

The description field is optional, but is incredibly helpful to communicate with others who may help with your projects.

Group Avatar

You may choose to upload a custom avatar for your group here. This will be auto-populated if you do not, and may also be changed later.

Group Visibility Level

The Visibility Level of the group is an important choice. GitLab allows owners to set a project’s visibility as public, internal, or private. When making this choice, please keep in mind that subgroups or projects cannot have a higher visibility level than that of the group in which they are created. We strongly suggest creating groups with visibilities of either Public or Internal.

Public Groups
These groups will be visible in the Explore Public Groups directory for all community members and potential members to explore. Any logged in user will have guest permissions on the repository.

Internal Groups
These groups are also listed in the Explore Public Groups directory, but are visible only to logged in users. Any logged in user will have guest permissions on the repository.

Private Groups
Private groups can only be viewed by group members (except for guests specifically invited to view the group). They will appear in the Explore Public Groups directory for group members only.

Mattermost

IEEE SA OPEN also hosts a Mattermost chat service. This can be accessed with the same credentials that you use to log in to the IEEE SA OPEN GitLab. If you would like to have a chat discussion space for your group, please check the box next to “Create a Mattermost team…” A Team will be created in Mattermost, as shown below. More information about joining IEEE SA OPEN Mattermost is available.

group chat 4

Group settings

After creating a group, you can manage its settings by navigating to the group's dashboard and clicking [Settings] in the left menu bar.

group chat 5

Creating a Project

Projects

Gitlab CE is arranged into different levels:

Groups > Subgroups > Projects > Issues

As volunteers and group members, you will be working primarily within your projects and with issues. If you would like to begin work on a new project that does not belong in an existing group, please create it in the 007 Hosted Projects Group. If you want to experiment with GitLab CE and its functions, please use the 006 Sandbox Group. This space will be periodically cleaned up.

Create a Project

Most work in IEEE SA OPEN GitLab is done within a project. Files and code are saved in projects; and most features are used within the scope of projects. In GitLab, you can create a project for hosting your codebase, use it as an issue tracker, collaborate on code, and continuously build, test, and deploy your app with built-in GitLab CI/CD.

To create a project in GitLab:

Click the green New Project button at the top right of the Projects page, at the top right of a Group page or or use the [+] icon in the main navigation bar. These actions all open the New Project page.

gitlab projects 1

On the New Project page, choose if you want to:

  • Create a Blank Project.
  • Create a project using one of the available project templates.
  • Import a project from a different repository.

Blank Projects

To create a new Blank Project on the New Project page:

gitlab projects 2

On the Blank Project tab, provide the following information:

Project Name
Add the name of your project in the Project Name field. Note that GitLab CE allows the use of spaces, hyphens, underscores or even emoji when naming a project, but does not allow the use of special characters. When adding the name, the Project Slug will auto-populate. The slug is what the GitLab instance will use as the URL path to the project. If you want a different slug, input the Project Name first, then change the slug after.

Project Slug
The path to your project in the Project Slug field. This is the URL path for your project that the GitLab instance will use. If you choose to populate the Project Slug before the Project Name, the Project Name will auto populate when you fill in the Project Slug.

Project Description
The Project Description field enables you to enter a description for your project's dashboard, which will help others understand what your project is about. Although it's not required, filling this in is a good idea.

Project Visibility Level
Changing the visibility level modifies the Project's viewing and access rights for users.

Public Projects:

  • Public projects can be cloned without any authentication over HTTPS.
  • They will be listed in the Explore Public Groups directory for all community members and potential members.
  • Any logged in user will have Guest permissions on the repository.

Internal Projects

  • Internal projects can be cloned by any logged in user.
  • Internal projects will be listed in the Explore Public Groups directory, but will only be visible logged in users.
  • Any logged in user will have Guest permissions on the repository.

Private Projects

  • Private Projects can only be cloned and viewed by project members (except for invited Guests).
  • They will appear in the Explore Public Groups directory for project members only.

Initialize repository with a README
Selecting this option creates a README file so that the Git repository is initialized, has a default branch, and can be cloned.

When this information has been entered, click the green [Create project] button.

Built-in Templates

Built-in templates are project templates that are released with GitLab.

gitlab projects 3

To use a built-in template on the New Project page:

On the Create from template tab, select the Built-in tab.

From the list of available built-in templates, click:

  • The Preview button to look at the template source itself.
  • The [Use the template] button to start creating the project.

Finish creating the project by filling out the project's details. The process is the same as that for creating a Blank Project, above.

Importing a New Project

Guidelines for importing a project from a different repository are available. Projects can be imported from a variety of different sources.

Select the Invite Group tabgitlab projects 4

Sharing Projects with a Group

The primary mechanism to give a group access to a project is to make that group the owner of the project. If the project already belongs to another group, group sharing feature can be of use.

  • Use the left navigation menu to go to Members
  • Select the Invite Group tab
gitlab projects 5
  • Add the chosen group with the *maximum* access level of your choice.
  • Click Invite to share the project.
  • After sharing the project with the chosen group, the group will appear in the Project Members screen. The project will be listed on the group's dashboard.
gitlab projects 6

Note that you can only share a project with:

  • Groups for which you have an explicitly defined membership.
  • Groups that contain a nested subgroup or project for which you have an explicitly defined role.

Creating an Issue

Issues

Gitlab is arranged into different levels:

Groups > Subgroups > Projects > Issues

As volunteers and group members, you will be working primarily within your projects and with issues.

Issues are the fundamental medium for collaborating on ideas and planning work in the IEEE SA OPEN GitLab. They can be used to discuss the implementation of a new idea, track tasks and work status, accept feature proposals, ask questions, make support requests or bug reports, or elaborate on new code implementations.

Create a New Issue

There are many ways to create a new issue from within a project:

In any Project's Dashboard, click the Issues bar (shown in bright green below). The two views most frequently used to track are List and Boards. The List view is seen below. In this view, you can create a New Issue by clicking the dark green New Issue button at the top right.

gitlab issues 1

This will take you to the full-page New Issue form. Discussion of the different parts of the form is below in Elements of the New Issue Form.

gitlab issues 2

In the Boards view, a New Issue can be created by clicking the [+] icon in the Open column of the board, highlighted here in bright green.

gitlab issues 3

The New Issue form in the Boards view is smaller, but contains the same main elements as the full form. Its elements are discussed in the next section.

gitlab issues 4

From an open issue in your project, click the New Issue button (highlighted bright green below) to create a new issue in the same project. This button will take you to the full-page New Issue form, shown above in the List section.

gitlab issues 5

Elements of the New Issue Form

When you're creating a new issue, these are the elements to be completed:

  • Title - a short summary that describes the issue
  • Description - a complete description of the issue
  • Make Issue confidential - Most issues should not be confidential but available to the whole community.
  • Assignee - Issues should have assignees. If you don't know whom to assign the issue to, please assign it to yourself and ask for guidance when you next meet with your group, or reach out to the community in chat.
  • Due date - The date the task should be completed by.
  • Milestone - This is optional and not used by some groups.
  • Labels - The use of labels is discussed in further detail on a separate page.

Issue Duplication

To prevent duplication of issues for the same topic, GitLab searches for similar issues when new issues are being created.

When typing in the title in the New Issue page, GitLab searches titles and descriptions across all issues the user has access to in the current project. Up to five similar issues, sorted by most recently updated, are displayed below the title box.

Be Notified about an Issue

To keep track of an Issue that you are interested in, click on the issue in either List or Boards view. You will then see the screen below. Turn on notifications by toggling the switch at the bottom of the right sidebar (highlighted here in bright green). You will automatically receive notifications about issues that you create.

gitlab issues 6