GitLab Settings
This section provides an overview of configurable settings within the GitLab for groups and projects. These settings allow to tailor project and group-level behaviours, optimise pipeline performance, manage security protocols and enhance software development processes.
The following tables categorise settings as either Mandatory (Non-Negotiable), Best Practice (Optional), or provide a Recommended State for each setting. This format aims to guide the alignment of project’s configuration with SKAO standards and best practices, ensuring optimal setup for development and operational needs.
All other settings not presented here as Mandatory are considered “Optional” and are pre-configured to align with SKAO principles as Best Practice. This ensures that even default configurations adhere to our standards, simplifying the setup process and maintaining consistency across projects and groups.
For further insights and a brief overview directly within the platform, you can also refer to the settings section on the GitLab interface. This can provide practical context and help with navigating the settings in your own projects.
Group Variables
This section discusses the settings for variables that are applicable at the group level. Group variables are shared across all projects under a group in GitLab, providing a convenient way to manage and apply configurations uniformly. These variables can significantly streamline the setup of pipelines across multiple projects, ensuring consistency in environmental settings, credentials, and other configurations that are common across the group.
Understanding and correctly configuring these variables is crucial for maintaining efficiency and security at the group level.
General Settings
These settings apply to the overall configuration of GitLab groups, impacting the fundamental operations and access controls.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
Public |
Public |
|
Members cannot invite groups outside of SKAO and its subgroups |
Mandatory |
Enabled |
Enabled |
Mandatory |
Disabled |
Enabled |
|
Mandatory |
Disabled |
Enabled |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
No one |
No one |
|
Mandatory |
Owners |
Owners |
|
Users can request access (if visibility is public or internal) |
Mandatory |
Disabled |
Disabled |
Mandatory |
Disabled |
Disabled |
|
Mandatory |
Disabled |
Disabled |
Merge Request Settings
These settings are specific to managing and configuring merge requests within GitLab groups, ensuring proper workflow and review processes.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
Enabled |
Disabled |
|
Mandatory |
Disabled |
Disabled |
|
Best Practice Settings |
|||
Best Practice |
Enabled |
Disabled |
Repository Settings
These settings pertain to the configuration and management of repositories in GitLab groups, affecting how code is stored, accessed, and managed.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
main |
main |
|
Mandatory |
Protected |
Protected |
|
Best Practice Settings |
|||
Best Practice |
No one |
Maintainers |
|
Best Practice |
Disabled |
Disabled |
|
Best Practice |
Enabled |
Disabled |
|
Best Practice |
Disabled |
Disabled |
|
Best Practice |
Enabled |
Disabled |
CI/CD Settings
These settings are specific to managing and configuring CI/CD pipelines within GitLab groups, ensuring consistent and efficient workflows across multiple projects.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
Passwords: Masked |
Disabled |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Disabled |
Disabled |
|
Mandatory |
Disabled |
Disabled |
|
Best Practice Settings |
|||
Best Practice |
production; Allowed to deploy: Maintainers |
Disabled |
|
Best Practice |
Enabled |
Disabled |
Project Variables
Project variables are specific to each project in GitLab, providing a way to manage and apply configurations tailored to the needs of individual projects. These variables can significantly streamline the setup of pipelines within a project, ensuring consistency in environmental settings, credentials, and other configurations that are specific to the project.
Understanding and correctly configuring these variables is crucial for maintaining efficiency and security at the project level.
General Settings
These settings apply to the overall configuration of GitLab projects, impacting the fundamental operations and access controls.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
Public |
Public |
|
Mandatory |
Disabled |
Disabled |
|
Mandatory |
Disabled |
Disabled |
|
Mandatory |
Only Project Members |
Only Project Members |
|
Best Practice Settings |
|||
Best Practice |
Disabled |
Enabled |
|
Best Practice |
Disabled |
Enabled |
Repository Settings
These settings pertain to the configuration and management of the repository, affecting how code is stored, accessed, and managed.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
main |
main |
|
Best Practice Settings |
|||
Best Practice |
Enabled |
Disabled |
Merge Request Settings
These settings are specific to managing and configuring merge requests within GitLab projects, ensuring proper workflow and review processes.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Do not Allow |
Allow |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Disabled |
Disabled |
|
Mandatory |
Enabled |
Disabled |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Service name: Marvin |
Service name: Marvin |
|
Best Practice Settings |
|||
Automatically resolve merge request diff threads when they become outdated |
Mandatory |
Enabled |
Disabled |
Show link to create or view a merge request when pushing from the command line |
Best Practice |
Enabled |
Enabled |
Best Practice |
Enabled |
Enabled |
|
Best Practice |
Enabled |
Disabled |
|
Best Practice |
Enabled |
Disabled |
|
Best Practice |
Enabled |
Disabled |
CI/CD Settings
These settings are specific to managing and configuring CI/CD pipelines within individual GitLab projects.
Setting |
Requirement |
SKAO Required State |
Default State |
---|---|---|---|
Mandatory Settings |
|||
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Default |
Default |
|
Mandatory |
git fetch |
git fetch |
|
Mandatory |
Disabled |
Disabled |
|
Mandatory |
Enabled |
Enabled |
|
Mandatory |
Passwords: Masked |
Disabled |
|
Mandatory |
Only this project and any groups and projects in the allowlist |
Only this project and any groups and projects in the allowlist |
|
Best Practice Settings |
|||
Best Practice |
production; Allowed to deploy: Maintainers |
Disabled |
|
Best Practice |
50 |
20 |
|
Best Practice |
2h |
1h |