GitLab consists of many subprojects. A curated list of GitLab projects can be found at the GitLab Engineering projects page.
When creating a new project, please follow these steps:
gitlab-org/NEW_PROJECT
). Doing so creates context and permission inheritance complications. Ensure that the project is under a subgroup of:
gitlab-org
for anything related to the application.gitlab-com
for anything strictly company related.main
as the name of the default branch.projects.yml
.gitlab-org/gitlab
MIT License, but contact legal before using it.CONTRIBUTING.md
in the repository. It is easiest to simply copy-paste the gitlab-org/gitaly
DCO + License section verbatim.1. Add any further relevant details to the Contribution Guide. See Contribution Example.CONTRIBUTING.md
from the project's README.md
.Users can request access
setting disabled to discourage granting accidental external access.When changing the settings in an existing repository, it's important to keep communication in mind. In addition to discussing the change in an issue and announcing it in relevant chat channels (e.g., #development
), consider announcing the change in the Engineering Week-in-Review document. This is particularly important for changes to the GitLab repository.
Following is the default .gitlab-ci.yml
config that all projects under the gitlab-org
and gitlab-com
groups should use:
include:
- template: 'Workflows/MergeRequest-Pipelines.gitlab-ci.yml'
# Or if the project needs to support stable/security branches, use the following instead
workflow:
rules:
# For merge requests, create a pipeline.
- if: '$CI_MERGE_REQUEST_IID'
# For `master` branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
# For tags, create a pipeline.
- if: '$CI_COMMIT_TAG'
# For stable, and security branches, create a pipeline.
- if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/'
- if: '$CI_COMMIT_BRANCH =~ /^security\//'
default:
tags:
- gitlab-org
This:
workflow
to create pipelines for MR, master
, and tags only.gitlab-org
tag to be used by default which corresponds to cost-optimised runners, with no Docker support. Jobs that need Docker support would use the gitlab-org-docker
tag.If a job requires the usage of Docker, it needs to be defined only in the context of the specific job with the gitlab-org-docker
tag:
sast:
tags:
- gitlab-org-docker
If a job requires the usage of Windows (not yet supported), it needs to be defined only in the context of the specific
job with the gitlab-org-windows
tag:
windows_job:
tags:
- gitlab-org-windows
When publishing a project to a package repository, please follow these steps:
@gitlab.com
email
alias when creating the rubygems.org account and place the credentials in a
1Password vault for your team.